From f8a6fedfcf8615daf5ddc559cfe199a3e808f359 Mon Sep 17 00:00:00 2001 From: acidvegas Date: Sun, 29 Mar 2020 05:16:53 -0400 Subject: [PATCH] Initial commit --- .gitignore | 75 + Config | 793 ++ LICENSE | 340 + Makefile.in | 255 + Makefile.windows | 1084 ++ README.md | 58 + autoconf/Makefile | 3 + autoconf/config.guess | 1438 +++ autoconf/config.sub | 1810 +++ autoconf/install-sh | 0 autoconf/m4/ax_check_compile_flag.m4 | 72 + autoconf/m4/ax_check_link_flag.m4 | 71 + autoconf/m4/ax_pthread.m4 | 332 + autoconf/m4/unreal.m4 | 254 + autogen.sh | 11 + configure | 9027 +++++++++++++ configure.ac | 721 ++ doc/Authors | 148 + doc/Config.header | 32 + doc/Donation | 14 + doc/RELEASE-NOTES.md | 563 + doc/coding-guidelines | 123 + doc/compiling_win32.txt | 2 + doc/conf/badwords.conf | 99 + doc/conf/except.conf | 35 + doc/conf/ircd.motd | 47 + doc/conf/links.conf | 11 + doc/conf/modules.conf | 190 + doc/conf/modules.sources.list | 1 + doc/conf/opers.conf | 162 + doc/conf/remote.motd | 0 doc/conf/spamfilter.conf | 7 + doc/conf/tls/curl-ca-bundle.crt | 3432 +++++ doc/conf/unrealircd.hub.conf | 55 + doc/conf/unrealircd.link.conf | 7 + doc/conf/unrealircd.remote.conf | 185 + doc/tao.of.irc | 271 + doc/technical/005.txt | 180 + doc/technical/base64.txt | 11 + doc/technical/serverprotocol.txt | 2 + doc/translations.txt | 26 + extras/.indent.pro | 52 + extras/VStudioAnalyze.ruleset | 155 + extras/argon2-20181209.tar.gz | Bin 0 -> 55140 bytes extras/build-tests/nix/build | 74 + extras/build-tests/nix/configs/default | 24 + extras/build-tests/nix/run-tests | 44 + extras/build-tests/nix/run-tests.bbwrapper | 14 + extras/build-tests/nix/select-config | 114 + extras/build-tests/windows/build.bat | 86 + .../build-tests/windows/compilecmd/vs2019.bat | 18 + extras/c-ares.tar.gz | Bin 0 -> 1347687 bytes extras/curlinstall | 98 + extras/doxygen/Developers.md | 17 + extras/doxygen/Doxyfile | 2494 ++++ extras/doxygen/doxygen_custom.css | 4 + extras/doxygen/header.html | 56 + extras/patches/patch_spamfilter_conf | 40 + extras/patches/spamfilter.conf.patch | 328 + extras/pcre2.tar.gz | Bin 0 -> 2234905 bytes extras/security/apparmor/unrealircd | 27 + .../tls/cipherscan_profiles/baseline.txt | 27 + .../tls/cipherscan_profiles/openssl-101.txt | 27 + extras/tests/tls/tls-tests | 90 + extras/tls.cnf | 31 + extras/unreal.supp | 10 + extras/wrap-compiler-for-flag-check | 22 + include/channel.h | 40 + include/common.h | 240 + include/config.h | 327 + include/crypt_blowfish.h | 27 + include/dbuf.h | 101 + include/dns.h | 72 + include/dynconf.h | 375 + include/fdlist.h | 52 + include/h.h | 967 ++ include/ircsprintf.h | 23 + include/license.h | 48 + include/list.h | 592 + include/mempool.h | 105 + include/modules.h | 1379 ++ include/modversion.h | 68 + include/msg.h | 173 + include/numeric.h | 396 + include/openssl_hostname_validation.h | 81 + include/proto.h | 68 + include/resource.h | 59 + include/setup.h.in | 219 + include/struct.h | 2159 ++++ include/sys.h | 227 + include/types.h | 43 + include/unrealircd.h | 37 + include/url.h | 13 + include/version.h | 72 + include/whowas.h | 71 + include/windows/setup.h | 72 + src/Makefile.in | 246 + src/aliases.c | 287 + src/api-channelmode.c | 549 + src/api-clicap.c | 372 + src/api-command.c | 285 + src/api-efunctions.c | 366 + src/api-event.c | 211 + src/api-extban.c | 299 + src/api-history-backend.c | 197 + src/api-isupport.c | 335 + src/api-messagetag.c | 176 + src/api-moddata.c | 465 + src/api-usermode.c | 507 + src/auth.c | 567 + src/buildmod | 19 + src/channel.c | 1367 ++ src/conf.c | 10569 ++++++++++++++++ src/conf_preprocessor.c | 534 + src/crashreport.c | 890 ++ src/crule.c | 785 ++ src/crypt_blowfish.c | 907 ++ src/dbuf.c | 190 + src/debug.c | 160 + src/dispatch.c | 638 + src/dns.c | 742 ++ src/fdlist.c | 199 + src/hash.c | 1026 ++ src/ircd.c | 1525 +++ src/ircsprintf.c | 215 + src/list.c | 569 + .../UnrealIRCd.xcodeproj/project.pbxproj | 463 + .../contents.xcworkspacedata | 7 + src/macosx/UnrealIRCd/AppDelegate.swift | 55 + src/macosx/UnrealIRCd/AppModel.swift | 86 + .../UnrealIRCd/Base.lproj/Main.storyboard | 155 + src/macosx/UnrealIRCd/ChangeNotifier.swift | 46 + .../UnrealIRCd/ConfigurationModel.swift | 41 + src/macosx/UnrealIRCd/DaemonModel.swift | 40 + .../AppIcon.appiconset/Contents.json | 58 + src/macosx/UnrealIRCd/Info.plist | 36 + src/macosx/UnrealIRCd/ViewController.swift | 87 + src/macosx/UnrealIRCd/WindowController.swift | 23 + src/macosx/UnrealIRCd/logo.png | Bin 0 -> 1444 bytes src/macosx/UnrealIRCd/logo@2x.png | Bin 0 -> 1932 bytes src/macosx/UnrealIRCdTests/Info.plist | 24 + .../UnrealIRCdTests/UnrealIRCdTests.swift | 36 + src/match.c | 865 ++ src/mempool.c | 745 ++ src/misc.c | 1914 +++ src/modulemanager.c | 1692 +++ src/modules.c | 1454 +++ src/modules/Makefile.in | 647 + src/modules/account-notify.c | 76 + src/modules/account-tag.c | 98 + src/modules/addmotd.c | 88 + src/modules/addomotd.c | 88 + src/modules/admin.c | 86 + src/modules/antimixedutf8.c | 344 + src/modules/antirandom.c | 1003 ++ src/modules/authprompt.c | 479 + src/modules/away.c | 147 + src/modules/batch.c | 120 + src/modules/blacklist.c | 841 ++ src/modules/botmotd.c | 90 + src/modules/cap.c | 419 + src/modules/certfp.c | 157 + src/modules/chanmodes/Makefile.in | 129 + src/modules/chanmodes/censor.c | 335 + src/modules/chanmodes/delayjoin.c | 386 + src/modules/chanmodes/floodprot.c | 1490 +++ src/modules/chanmodes/history.c | 537 + src/modules/chanmodes/issecure.c | 278 + src/modules/chanmodes/link.c | 439 + src/modules/chanmodes/nocolor.c | 142 + src/modules/chanmodes/noctcp.c | 89 + src/modules/chanmodes/noinvite.c | 99 + src/modules/chanmodes/nokick.c | 85 + src/modules/chanmodes/noknock.c | 105 + src/modules/chanmodes/nonickchange.c | 81 + src/modules/chanmodes/nonotice.c | 89 + src/modules/chanmodes/operonly.c | 108 + src/modules/chanmodes/permanent.c | 97 + src/modules/chanmodes/regonly.c | 77 + src/modules/chanmodes/regonlyspeak.c | 108 + src/modules/chanmodes/secureonly.c | 201 + src/modules/chanmodes/stripcolor.c | 131 + src/modules/channeldb.c | 499 + src/modules/charsys.c | 1233 ++ src/modules/chghost.c | 157 + src/modules/chgident.c | 153 + src/modules/chgname.c | 127 + src/modules/cloak.c | 419 + src/modules/close.c | 81 + src/modules/connect.c | 155 + src/modules/connthrottle.c | 636 + src/modules/cycle.c | 81 + src/modules/dccallow.c | 252 + src/modules/dccdeny.c | 862 ++ src/modules/echo-message.c | 91 + src/modules/eos.c | 75 + src/modules/extbans/Makefile.in | 104 + src/modules/extbans/account.c | 92 + src/modules/extbans/certfp.c | 125 + src/modules/extbans/inchannel.c | 163 + src/modules/extbans/join.c | 78 + src/modules/extbans/msgbypass.c | 224 + src/modules/extbans/nickchange.c | 81 + src/modules/extbans/operclass.c | 104 + src/modules/extbans/partmsg.c | 71 + src/modules/extbans/quiet.c | 77 + src/modules/extbans/realname.c | 97 + src/modules/extbans/textban.c | 499 + src/modules/extbans/timedban.c | 505 + src/modules/globops.c | 87 + src/modules/help.c | 145 + src/modules/hideserver.c | 395 + src/modules/history.c | 125 + src/modules/history_backend_mem.c | 446 + src/modules/history_backend_null.c | 75 + src/modules/ident_lookup.c | 254 + src/modules/invite.c | 302 + src/modules/ircops.c | 141 + src/modules/ison.c | 104 + src/modules/join.c | 811 ++ src/modules/jointhrottle.c | 306 + src/modules/jumpserver.c | 266 + src/modules/kick.c | 373 + src/modules/kill.c | 190 + src/modules/knock.c | 169 + src/modules/labeled-response.c | 368 + src/modules/lag.c | 85 + src/modules/link-security.c | 281 + src/modules/links.c | 77 + src/modules/list.c | 484 + src/modules/locops.c | 76 + src/modules/lusers.c | 94 + src/modules/map.c | 173 + src/modules/md.c | 438 + src/modules/mdex.c | 317 + src/modules/message-ids.c | 166 + src/modules/message-tags.c | 306 + src/modules/message.c | 819 ++ src/modules/mkpasswd.c | 106 + src/modules/mode.c | 1937 +++ src/modules/module.def | 5 + src/modules/motd.c | 123 + src/modules/names.c | 201 + src/modules/netinfo.c | 141 + src/modules/nick.c | 1416 +++ src/modules/nocodes.c | 102 + src/modules/oper.c | 332 + src/modules/opermotd.c | 92 + src/modules/part.c | 220 + src/modules/pass.c | 141 + src/modules/pingpong.c | 200 + src/modules/plaintext-policy.c | 75 + src/modules/protoctl.c | 420 + src/modules/quit.c | 163 + src/modules/reputation.c | 885 ++ src/modules/require-module.c | 558 + src/modules/restrict-commands.c | 408 + src/modules/rmtkl.c | 293 + src/modules/rules.c | 92 + src/modules/sajoin.c | 279 + src/modules/samode.c | 86 + src/modules/sapart.c | 164 + src/modules/sasl.c | 445 + src/modules/sdesc.c | 92 + src/modules/sendsno.c | 103 + src/modules/sendumode.c | 107 + src/modules/server-time.c | 116 + src/modules/server.c | 1284 ++ src/modules/sethost.c | 152 + src/modules/setident.c | 131 + src/modules/setname.c | 118 + src/modules/silence.c | 240 + src/modules/sinfo.c | 163 + src/modules/sjoin.c | 906 ++ src/modules/snomasks/Makefile.in | 55 + src/modules/snomasks/dccreject.c | 70 + src/modules/sqline.c | 87 + src/modules/squit.c | 158 + src/modules/staff.c | 389 + src/modules/starttls.c | 122 + src/modules/stats.c | 1076 ++ src/modules/sts.c | 111 + src/modules/svsjoin.c | 97 + src/modules/svskill.c | 88 + src/modules/svslusers.c | 79 + src/modules/svsmode.c | 607 + src/modules/svsmotd.c | 118 + src/modules/svsnick.c | 115 + src/modules/svsnline.c | 157 + src/modules/svsnolag.c | 105 + src/modules/svsnoop.c | 95 + src/modules/svspart.c | 90 + src/modules/svssilence.c | 96 + src/modules/svssno.c | 133 + src/modules/svswatch.c | 80 + src/modules/swhois.c | 110 + src/modules/third/Makefile.in | 47 + src/modules/time.c | 66 + src/modules/tkl.c | 4955 ++++++++ src/modules/tkldb.c | 699 + src/modules/tls_antidos.c | 112 + src/modules/topic.c | 281 + src/modules/trace.c | 234 + src/modules/tsctl.c | 72 + src/modules/umode2.c | 74 + src/modules/unsqline.c | 74 + src/modules/user.c | 115 + src/modules/userhost-tag.c | 111 + src/modules/userhost.c | 113 + src/modules/userip-tag.c | 111 + src/modules/userip.c | 125 + src/modules/usermodes/Makefile.in | 91 + src/modules/usermodes/bot.c | 97 + src/modules/usermodes/censor.c | 270 + src/modules/usermodes/noctcp.c | 85 + src/modules/usermodes/nokick.c | 100 + src/modules/usermodes/privacy.c | 69 + src/modules/usermodes/privdeaf.c | 59 + src/modules/usermodes/regonlymsg.c | 72 + src/modules/usermodes/secureonlymsg.c | 86 + src/modules/usermodes/servicebot.c | 143 + src/modules/usermodes/showwhois.c | 76 + src/modules/vhost.c | 172 + src/modules/wallops.c | 77 + src/modules/watch.c | 266 + src/modules/webirc.c | 498 + src/modules/webredir.c | 201 + src/modules/websocket.c | 786 ++ src/modules/who_old.c | 865 ++ src/modules/whois.c | 349 + src/modules/whowas.c | 113 + src/modules/whox.c | 944 ++ src/numeric.c | 1056 ++ src/openssl_hostname_validation.c | 402 + src/operclass.c | 344 + src/parse.c | 747 ++ src/random.c | 522 + src/scache.c | 99 + src/send.c | 1202 ++ src/serv.c | 1281 ++ src/socket.c | 1534 +++ src/support.c | 1306 ++ src/tls.c | 1354 ++ src/updconf.c | 1730 +++ src/url.c | 458 + src/user.c | 701 + src/utf8.c | 223 + src/version.c.SH | 275 + src/whowas.c | 186 + src/windows/Icon1.ico | Bin 0 -> 18718 bytes src/windows/UnrealIRCd.exe.manifest | 22 + src/windows/bar.bmp | Bin 0 -> 13270 bytes src/windows/compilerhelp.c | 55 + src/windows/config.c | 56 + src/windows/def-clean.c | 39 + src/windows/editor.c | 769 ++ src/windows/gpl.rtf | 97 + src/windows/gplplusssl.rtf | 196 + src/windows/gui.c | 1122 ++ src/windows/hand.CUR | Bin 0 -> 326 bytes src/windows/makecert.bat | 6 + src/windows/resource.h | 108 + src/windows/rtf.c | 878 ++ src/windows/service.c | 148 + src/windows/toolbar.bmp | Bin 0 -> 822 bytes src/windows/unreal.bmp | Bin 0 -> 80826 bytes src/windows/unrealinst.iss | 193 + src/windows/unrealsvc.c | 212 + src/windows/unrealsvc.rc | 99 + src/windows/win.c | 341 + src/windows/win.h | 43 + src/windows/windebug.c | 370 + src/windows/wingui.rc | 415 + unrealircd.in | 315 + 374 files changed, 139378 insertions(+) create mode 100644 .gitignore create mode 100755 Config create mode 100644 LICENSE create mode 100644 Makefile.in create mode 100644 Makefile.windows create mode 100644 README.md create mode 100644 autoconf/Makefile create mode 100644 autoconf/config.guess create mode 100644 autoconf/config.sub create mode 100644 autoconf/install-sh create mode 100644 autoconf/m4/ax_check_compile_flag.m4 create mode 100644 autoconf/m4/ax_check_link_flag.m4 create mode 100644 autoconf/m4/ax_pthread.m4 create mode 100644 autoconf/m4/unreal.m4 create mode 100755 autogen.sh create mode 100755 configure create mode 100644 configure.ac create mode 100644 doc/Authors create mode 100644 doc/Config.header create mode 100644 doc/Donation create mode 100644 doc/RELEASE-NOTES.md create mode 100644 doc/coding-guidelines create mode 100644 doc/compiling_win32.txt create mode 100644 doc/conf/badwords.conf create mode 100644 doc/conf/except.conf create mode 100644 doc/conf/ircd.motd create mode 100644 doc/conf/links.conf create mode 100644 doc/conf/modules.conf create mode 100644 doc/conf/modules.sources.list create mode 100644 doc/conf/opers.conf create mode 100644 doc/conf/remote.motd create mode 100644 doc/conf/spamfilter.conf create mode 100644 doc/conf/tls/curl-ca-bundle.crt create mode 100644 doc/conf/unrealircd.hub.conf create mode 100644 doc/conf/unrealircd.link.conf create mode 100644 doc/conf/unrealircd.remote.conf create mode 100644 doc/tao.of.irc create mode 100644 doc/technical/005.txt create mode 100644 doc/technical/base64.txt create mode 100644 doc/technical/serverprotocol.txt create mode 100644 doc/translations.txt create mode 100644 extras/.indent.pro create mode 100755 extras/VStudioAnalyze.ruleset create mode 100644 extras/argon2-20181209.tar.gz create mode 100755 extras/build-tests/nix/build create mode 100644 extras/build-tests/nix/configs/default create mode 100755 extras/build-tests/nix/run-tests create mode 100755 extras/build-tests/nix/run-tests.bbwrapper create mode 100755 extras/build-tests/nix/select-config create mode 100644 extras/build-tests/windows/build.bat create mode 100644 extras/build-tests/windows/compilecmd/vs2019.bat create mode 100644 extras/c-ares.tar.gz create mode 100755 extras/curlinstall create mode 100644 extras/doxygen/Developers.md create mode 100644 extras/doxygen/Doxyfile create mode 100644 extras/doxygen/doxygen_custom.css create mode 100644 extras/doxygen/header.html create mode 100755 extras/patches/patch_spamfilter_conf create mode 100644 extras/patches/spamfilter.conf.patch create mode 100644 extras/pcre2.tar.gz create mode 100644 extras/security/apparmor/unrealircd create mode 100644 extras/tests/tls/cipherscan_profiles/baseline.txt create mode 100644 extras/tests/tls/cipherscan_profiles/openssl-101.txt create mode 100755 extras/tests/tls/tls-tests create mode 100644 extras/tls.cnf create mode 100644 extras/unreal.supp create mode 100755 extras/wrap-compiler-for-flag-check create mode 100644 include/channel.h create mode 100644 include/common.h create mode 100644 include/config.h create mode 100644 include/crypt_blowfish.h create mode 100644 include/dbuf.h create mode 100644 include/dns.h create mode 100644 include/dynconf.h create mode 100644 include/fdlist.h create mode 100644 include/h.h create mode 100644 include/ircsprintf.h create mode 100644 include/license.h create mode 100644 include/list.h create mode 100644 include/mempool.h create mode 100644 include/modules.h create mode 100644 include/modversion.h create mode 100644 include/msg.h create mode 100644 include/numeric.h create mode 100644 include/openssl_hostname_validation.h create mode 100644 include/proto.h create mode 100644 include/resource.h create mode 100644 include/setup.h.in create mode 100644 include/struct.h create mode 100644 include/sys.h create mode 100644 include/types.h create mode 100644 include/unrealircd.h create mode 100644 include/url.h create mode 100644 include/version.h create mode 100644 include/whowas.h create mode 100644 include/windows/setup.h create mode 100644 src/Makefile.in create mode 100644 src/aliases.c create mode 100644 src/api-channelmode.c create mode 100644 src/api-clicap.c create mode 100644 src/api-command.c create mode 100644 src/api-efunctions.c create mode 100644 src/api-event.c create mode 100644 src/api-extban.c create mode 100644 src/api-history-backend.c create mode 100644 src/api-isupport.c create mode 100644 src/api-messagetag.c create mode 100644 src/api-moddata.c create mode 100644 src/api-usermode.c create mode 100644 src/auth.c create mode 100755 src/buildmod create mode 100644 src/channel.c create mode 100644 src/conf.c create mode 100644 src/conf_preprocessor.c create mode 100644 src/crashreport.c create mode 100644 src/crule.c create mode 100644 src/crypt_blowfish.c create mode 100644 src/dbuf.c create mode 100644 src/debug.c create mode 100644 src/dispatch.c create mode 100644 src/dns.c create mode 100644 src/fdlist.c create mode 100644 src/hash.c create mode 100644 src/ircd.c create mode 100644 src/ircsprintf.c create mode 100644 src/list.c create mode 100644 src/macosx/UnrealIRCd.xcodeproj/project.pbxproj create mode 100644 src/macosx/UnrealIRCd.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 src/macosx/UnrealIRCd/AppDelegate.swift create mode 100644 src/macosx/UnrealIRCd/AppModel.swift create mode 100644 src/macosx/UnrealIRCd/Base.lproj/Main.storyboard create mode 100644 src/macosx/UnrealIRCd/ChangeNotifier.swift create mode 100644 src/macosx/UnrealIRCd/ConfigurationModel.swift create mode 100644 src/macosx/UnrealIRCd/DaemonModel.swift create mode 100644 src/macosx/UnrealIRCd/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 src/macosx/UnrealIRCd/Info.plist create mode 100644 src/macosx/UnrealIRCd/ViewController.swift create mode 100644 src/macosx/UnrealIRCd/WindowController.swift create mode 100644 src/macosx/UnrealIRCd/logo.png create mode 100644 src/macosx/UnrealIRCd/logo@2x.png create mode 100644 src/macosx/UnrealIRCdTests/Info.plist create mode 100644 src/macosx/UnrealIRCdTests/UnrealIRCdTests.swift create mode 100644 src/match.c create mode 100644 src/mempool.c create mode 100644 src/misc.c create mode 100644 src/modulemanager.c create mode 100644 src/modules.c create mode 100644 src/modules/Makefile.in create mode 100644 src/modules/account-notify.c create mode 100644 src/modules/account-tag.c create mode 100644 src/modules/addmotd.c create mode 100644 src/modules/addomotd.c create mode 100644 src/modules/admin.c create mode 100644 src/modules/antimixedutf8.c create mode 100644 src/modules/antirandom.c create mode 100644 src/modules/authprompt.c create mode 100644 src/modules/away.c create mode 100644 src/modules/batch.c create mode 100644 src/modules/blacklist.c create mode 100644 src/modules/botmotd.c create mode 100644 src/modules/cap.c create mode 100644 src/modules/certfp.c create mode 100644 src/modules/chanmodes/Makefile.in create mode 100644 src/modules/chanmodes/censor.c create mode 100644 src/modules/chanmodes/delayjoin.c create mode 100644 src/modules/chanmodes/floodprot.c create mode 100644 src/modules/chanmodes/history.c create mode 100644 src/modules/chanmodes/issecure.c create mode 100644 src/modules/chanmodes/link.c create mode 100644 src/modules/chanmodes/nocolor.c create mode 100644 src/modules/chanmodes/noctcp.c create mode 100644 src/modules/chanmodes/noinvite.c create mode 100644 src/modules/chanmodes/nokick.c create mode 100644 src/modules/chanmodes/noknock.c create mode 100644 src/modules/chanmodes/nonickchange.c create mode 100644 src/modules/chanmodes/nonotice.c create mode 100644 src/modules/chanmodes/operonly.c create mode 100644 src/modules/chanmodes/permanent.c create mode 100644 src/modules/chanmodes/regonly.c create mode 100644 src/modules/chanmodes/regonlyspeak.c create mode 100644 src/modules/chanmodes/secureonly.c create mode 100644 src/modules/chanmodes/stripcolor.c create mode 100644 src/modules/channeldb.c create mode 100644 src/modules/charsys.c create mode 100644 src/modules/chghost.c create mode 100644 src/modules/chgident.c create mode 100644 src/modules/chgname.c create mode 100644 src/modules/cloak.c create mode 100644 src/modules/close.c create mode 100644 src/modules/connect.c create mode 100644 src/modules/connthrottle.c create mode 100644 src/modules/cycle.c create mode 100644 src/modules/dccallow.c create mode 100644 src/modules/dccdeny.c create mode 100644 src/modules/echo-message.c create mode 100644 src/modules/eos.c create mode 100644 src/modules/extbans/Makefile.in create mode 100644 src/modules/extbans/account.c create mode 100644 src/modules/extbans/certfp.c create mode 100644 src/modules/extbans/inchannel.c create mode 100644 src/modules/extbans/join.c create mode 100644 src/modules/extbans/msgbypass.c create mode 100644 src/modules/extbans/nickchange.c create mode 100644 src/modules/extbans/operclass.c create mode 100644 src/modules/extbans/partmsg.c create mode 100644 src/modules/extbans/quiet.c create mode 100644 src/modules/extbans/realname.c create mode 100644 src/modules/extbans/textban.c create mode 100644 src/modules/extbans/timedban.c create mode 100644 src/modules/globops.c create mode 100644 src/modules/help.c create mode 100644 src/modules/hideserver.c create mode 100644 src/modules/history.c create mode 100644 src/modules/history_backend_mem.c create mode 100644 src/modules/history_backend_null.c create mode 100644 src/modules/ident_lookup.c create mode 100644 src/modules/invite.c create mode 100644 src/modules/ircops.c create mode 100644 src/modules/ison.c create mode 100644 src/modules/join.c create mode 100644 src/modules/jointhrottle.c create mode 100644 src/modules/jumpserver.c create mode 100644 src/modules/kick.c create mode 100644 src/modules/kill.c create mode 100644 src/modules/knock.c create mode 100644 src/modules/labeled-response.c create mode 100644 src/modules/lag.c create mode 100644 src/modules/link-security.c create mode 100644 src/modules/links.c create mode 100644 src/modules/list.c create mode 100644 src/modules/locops.c create mode 100644 src/modules/lusers.c create mode 100644 src/modules/map.c create mode 100644 src/modules/md.c create mode 100644 src/modules/mdex.c create mode 100644 src/modules/message-ids.c create mode 100644 src/modules/message-tags.c create mode 100644 src/modules/message.c create mode 100644 src/modules/mkpasswd.c create mode 100644 src/modules/mode.c create mode 100644 src/modules/module.def create mode 100644 src/modules/motd.c create mode 100644 src/modules/names.c create mode 100644 src/modules/netinfo.c create mode 100644 src/modules/nick.c create mode 100644 src/modules/nocodes.c create mode 100644 src/modules/oper.c create mode 100644 src/modules/opermotd.c create mode 100644 src/modules/part.c create mode 100644 src/modules/pass.c create mode 100644 src/modules/pingpong.c create mode 100644 src/modules/plaintext-policy.c create mode 100644 src/modules/protoctl.c create mode 100644 src/modules/quit.c create mode 100644 src/modules/reputation.c create mode 100644 src/modules/require-module.c create mode 100644 src/modules/restrict-commands.c create mode 100644 src/modules/rmtkl.c create mode 100644 src/modules/rules.c create mode 100644 src/modules/sajoin.c create mode 100644 src/modules/samode.c create mode 100644 src/modules/sapart.c create mode 100644 src/modules/sasl.c create mode 100644 src/modules/sdesc.c create mode 100644 src/modules/sendsno.c create mode 100644 src/modules/sendumode.c create mode 100644 src/modules/server-time.c create mode 100644 src/modules/server.c create mode 100644 src/modules/sethost.c create mode 100644 src/modules/setident.c create mode 100644 src/modules/setname.c create mode 100644 src/modules/silence.c create mode 100644 src/modules/sinfo.c create mode 100644 src/modules/sjoin.c create mode 100644 src/modules/snomasks/Makefile.in create mode 100644 src/modules/snomasks/dccreject.c create mode 100644 src/modules/sqline.c create mode 100644 src/modules/squit.c create mode 100644 src/modules/staff.c create mode 100644 src/modules/starttls.c create mode 100644 src/modules/stats.c create mode 100644 src/modules/sts.c create mode 100644 src/modules/svsjoin.c create mode 100644 src/modules/svskill.c create mode 100644 src/modules/svslusers.c create mode 100644 src/modules/svsmode.c create mode 100644 src/modules/svsmotd.c create mode 100644 src/modules/svsnick.c create mode 100644 src/modules/svsnline.c create mode 100644 src/modules/svsnolag.c create mode 100644 src/modules/svsnoop.c create mode 100644 src/modules/svspart.c create mode 100644 src/modules/svssilence.c create mode 100644 src/modules/svssno.c create mode 100644 src/modules/svswatch.c create mode 100644 src/modules/swhois.c create mode 100644 src/modules/third/Makefile.in create mode 100644 src/modules/time.c create mode 100644 src/modules/tkl.c create mode 100644 src/modules/tkldb.c create mode 100644 src/modules/tls_antidos.c create mode 100644 src/modules/topic.c create mode 100644 src/modules/trace.c create mode 100644 src/modules/tsctl.c create mode 100644 src/modules/umode2.c create mode 100644 src/modules/unsqline.c create mode 100644 src/modules/user.c create mode 100644 src/modules/userhost-tag.c create mode 100644 src/modules/userhost.c create mode 100644 src/modules/userip-tag.c create mode 100644 src/modules/userip.c create mode 100644 src/modules/usermodes/Makefile.in create mode 100644 src/modules/usermodes/bot.c create mode 100644 src/modules/usermodes/censor.c create mode 100644 src/modules/usermodes/noctcp.c create mode 100644 src/modules/usermodes/nokick.c create mode 100644 src/modules/usermodes/privacy.c create mode 100644 src/modules/usermodes/privdeaf.c create mode 100644 src/modules/usermodes/regonlymsg.c create mode 100644 src/modules/usermodes/secureonlymsg.c create mode 100644 src/modules/usermodes/servicebot.c create mode 100644 src/modules/usermodes/showwhois.c create mode 100644 src/modules/vhost.c create mode 100644 src/modules/wallops.c create mode 100644 src/modules/watch.c create mode 100644 src/modules/webirc.c create mode 100644 src/modules/webredir.c create mode 100644 src/modules/websocket.c create mode 100644 src/modules/who_old.c create mode 100644 src/modules/whois.c create mode 100644 src/modules/whowas.c create mode 100644 src/modules/whox.c create mode 100644 src/numeric.c create mode 100644 src/openssl_hostname_validation.c create mode 100644 src/operclass.c create mode 100644 src/parse.c create mode 100644 src/random.c create mode 100644 src/scache.c create mode 100644 src/send.c create mode 100644 src/serv.c create mode 100644 src/socket.c create mode 100644 src/support.c create mode 100644 src/tls.c create mode 100644 src/updconf.c create mode 100644 src/url.c create mode 100644 src/user.c create mode 100644 src/utf8.c create mode 100644 src/version.c.SH create mode 100644 src/whowas.c create mode 100644 src/windows/Icon1.ico create mode 100644 src/windows/UnrealIRCd.exe.manifest create mode 100644 src/windows/bar.bmp create mode 100644 src/windows/compilerhelp.c create mode 100644 src/windows/config.c create mode 100644 src/windows/def-clean.c create mode 100644 src/windows/editor.c create mode 100644 src/windows/gpl.rtf create mode 100755 src/windows/gplplusssl.rtf create mode 100644 src/windows/gui.c create mode 100644 src/windows/hand.CUR create mode 100755 src/windows/makecert.bat create mode 100644 src/windows/resource.h create mode 100644 src/windows/rtf.c create mode 100644 src/windows/service.c create mode 100644 src/windows/toolbar.bmp create mode 100644 src/windows/unreal.bmp create mode 100644 src/windows/unrealinst.iss create mode 100644 src/windows/unrealsvc.c create mode 100644 src/windows/unrealsvc.rc create mode 100644 src/windows/win.c create mode 100644 src/windows/win.h create mode 100644 src/windows/windebug.c create mode 100644 src/windows/wingui.rc create mode 100644 unrealircd.in diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..46780c6 --- /dev/null +++ b/.gitignore @@ -0,0 +1,75 @@ +# Ignore configure step +aclocal.m4 +autom4te.cache +config.log +conftest.* +config.settings +extras/pcre2* +extras/c-ares* +config.status +extras/ircdcron/ircd.cron +extras/ircdcron/ircdchk +src/modules/snomasks/Makefile +src/modules/chanmodes/Makefile +src/modules/extbans/Makefile +src/modules/usermodes/Makefile +src/modules/Makefile +src/modules/third/Makefile +/Makefile +/src/Makefile +/unrealircd +include/setup.h + +# Ignore tags file +tags + +# Ignore editor files +*\#* +*~ + +# Ignore SSL Stuff +server.cert.pem +server.key.pem +server.req.pem +tls.rnd + +# Ignores for platform stuff +.DS_Store + +# Ignores for build artifacts +*.so +*.o +*.dSYM +*.dylib +src/ircd +src/version.c +src/include + +# Ignores for mac stuff +## Various settings +*.pbxuser +!default.pbxuser +*.mode1v3 +!default.mode1v3 +*.mode2v3 +!default.mode2v3 +*.perspectivev3 +!default.perspectivev3 +xcuserdata + +## Other +*.xccheckout +*.moved-aside +*.xcuserstate +*.xcscmblueprint + +## Obj-C/Swift specific +*.hmap +*.ipa + +src/macosx/build/ +DerivedData +src/macosx/pods/ + +# Doxygen generated files +doc/doxygen/ diff --git a/Config b/Config new file mode 100755 index 0000000..28ccb7f --- /dev/null +++ b/Config @@ -0,0 +1,793 @@ +#!/bin/sh +# +# Config script for UnrealIRCd +# (C) 2001-2019 The UnrealIRCd Team +# +# This configure script is free software; the UnrealIRCd Team gives +# unlimited permission to copy, distribute and modify as long as the +# copyright headers stay intact +# +# +# Rewritten completely to be an interface to autoconf by codemastr +# This was inspired by the config by Michael Graff (explorer@flame.org) +# but was written from scratch + +# In order to be faster than the old Config, this assumes that all information +# in the cache file is valid and therefore doesn't check it, so if you messed with +# default values thats your problem :P + +# some bits edited by baafie on March 17 2004, every change marked. + + +RUN_CONFIGURE () { +ARG=" " + +if [ -z "$BINDIR" -o -z "$DATADIR" -o -z "$CONFDIR" -o -z "$MODULESDIR" -o -z "$LOGDIR" -o -z "$CACHEDIR" -o -z "$DOCDIR" -o -z "$TMPDIR" -o -z "$PRIVATELIBDIR" ]; then + echo "Sorry './Config -quick' cannot be used because your 'config.settings'" + echo "file either does not exist or is from an old UnrealIRCd version" + echo "(older than UnrealIRCd 5.0.0)." + echo "" + echo "Please run './Config' without -quick and answer all questions." + echo "" + exit +fi + + +mkdir -p $TMPDIR +mkdir -p $PRIVATELIBDIR + +# Do this even if we're not in advanced mode +if [ "$SHOWLISTMODES" = "1" ] ; then + ARG="$ARG--with-showlistmodes " +fi +if [ "$ADVANCED" = "1" ] ; then +if [ "$NOOPEROVERRIDE" = "1" ] ; then + ARG="$ARG--with-no-operoverride " +fi +if [ "$OPEROVERRIDEVERIFY" = "1" ] ; then + ARG="$ARG--with-operoverride-verify " +fi +fi +if test x"$SSLDIR" = "x" ; then +ARG="$ARG--enable-ssl " +else +ARG="$ARG--enable-ssl=$SSLDIR " +fi +if [ "$REMOTEINC" = "1" ] ; then +ARG="$ARG--enable-libcurl=$CURLDIR " +fi +if [ "$PREFIXAQ" != "1" ]; then +ARG="$ARG--disable-prefixaq " +fi +if [ "$MAXCONNECTIONS_REQUEST" != "auto" ]; then + ARG="$ARG--with-maxconnections=$MAXCONNECTIONS_REQUEST " +fi + +ARG="$ARG--with-bindir=$BINDIR " +ARG="$ARG--with-datadir=$DATADIR " +ARG="$ARG--with-pidfile=$DATADIR/unrealircd.pid " +ARG="$ARG--with-confdir=$CONFDIR " +ARG="$ARG--with-modulesdir=$MODULESDIR " +ARG="$ARG--with-logdir=$LOGDIR " +ARG="$ARG--with-cachedir=$CACHEDIR " +ARG="$ARG--with-docdir=$DOCDIR " +ARG="$ARG--with-tmpdir=$TMPDIR " +ARG="$ARG--with-privatelibdir=$PRIVATELIBDIR " +ARG="$ARG--with-scriptdir=$BASEPATH " +ARG="$ARG--with-nick-history=$NICKNAMEHISTORYLENGTH " +ARG="$ARG--with-permissions=$DEFPERM " +ARG="$ARG--enable-dynamic-linking " +ARG="$ARG $EXTRAPARA " +CONF="./configure $ARG" +# remove possibly old instances of curl in ~/unrealircd/lib/ +rm -f $PRIVATELIBDIR/*curl* 1>/dev/null 2>&1 +# Ensure we install curl even if someone does ./Config -quick... +if [ "x$CURLDIR" = "x$UNREALCWD/extras/curl" ]; then + INSTALLCURL=1 +fi +if [ "x$INSTALLCURL" = "x1" ]; then + extras/curlinstall "$PRIVATELIBDIR" || exit 1 +fi +echo $CONF +$CONF || exit 1 +cd "$UNREALCWD" +if [ "$QUICK" != "1" ] ; then +if [ ! -f $CONFDIR/tls/server.cert.pem -a ! -f $CONFDIR/ssl/server.cert.pem ]; then +export OPENSSLPATH +TEST="" +while [ -z "$TEST" ] ; do + if [ "$GENCERTIFICATE" = "1" ] ; then + TEST="Yes" + else + TEST="No" + fi + echo "" + echo "Do you want to generate an SSL certificate for the IRCd?" + echo "Only answer No if you already have one." + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + cc=$TEST + fi + case "$cc" in + [Yy]*) + GENCERTIFICATE="1" + ;; + [Nn]*) + GENCERTIFICATE="" + ;; + *) + echo "" + echo "You must enter either Yes or No" + TEST="" + ;; + esac +done +if [ "$GENCERTIFICATE" = 1 ]; then + make pem + echo "Certificate created successfully." + sleep 1 +else + echo "Ok, not generating SSL certificate. Make sure that the certificate and key" + echo "are installed in conf/tls/server.crt.pem and conf/tls/server.key.pem prior to starting the IRCd." +fi +else +echo "SSL certificate already exists in configuration directory, no need to regenerate." +fi +fi + +# Silently force a 'make clean' as otherwise part (or whole) of the +# compiled source could be using different settings than the user +# just requested when re-running ./Config. +make clean 1>/dev/null 2>&1 +} + +RUN_ADVANCED () { +TEST="" +while [ -z "$TEST" ] ; do + if [ "$SHOWLISTMODES" = "1" ] ; then + TEST="Yes" + else + TEST="No" + fi + echo "" + echo "Do you want to show the modes a channel has set in the /list output?" + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + cc=$TEST + fi + case "$cc" in + [Yy]*) + SHOWLISTMODES="1" + ;; + [Nn]*) + SHOWLISTMODES="" + ;; + *) + echo "" + echo "You must enter either Yes or No" + TEST="" + ;; + esac +done + +TEST="" +while [ -z "$TEST" ] ; do + if [ "$NOOPEROVERRIDE" = "1" ] ; then + TEST="Yes" + else + TEST="No" + fi + echo "" + echo "Do you want to disable oper override?" + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + cc=$TEST + fi + case "$cc" in + [Yy]*) + NOOPEROVERRIDE="1" + ;; + [Nn]*) + NOOPEROVERRIDE="" + ;; + *) + echo "" + echo "You must enter either Yes or No" + TEST="" + ;; + esac +done + +TEST="" +while [ -z "$TEST" ] ; do + if [ "$OPEROVERRIDEVERIFY" = "1" ] ; then + TEST="Yes" + else + TEST="No" + fi + echo "" + echo "Do you want to require opers to /invite themselves into a +s or +p channel?" + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + cc=$TEST + fi + case "$cc" in + [Yy]*) + OPEROVERRIDEVERIFY="1" + ;; + [Nn]*) + OPEROVERRIDEVERIFY="" + ;; + *) + echo "" + echo "You must enter either Yes or No" + TEST="" + ;; + esac +done + +} +c="" +n="" +UNREALCWD="`pwd`" +BASEPATH="$HOME/unrealircd" +DEFPERM="0600" +SSLDIR="" +NICKNAMEHISTORYLENGTH="100" +MAXCONNECTIONS_REQUEST="auto" +REMOTEINC="1" +CURLDIR="" +PREFIXAQ="0" +SHOWLISTMODES="0" +NOOPEROVERRIDE="" +OPEROVERRIDEVERIFY="" +GENCERTIFICATE="1" +EXTRAPARA="" +if [ "`eval echo -n 'a'`" = "-n a" ] ; then + c="\c" +else + n="-n" +fi + + +#parse arguments +NOCACHE="" +IMPORTEDSETTINGS="" +NOINTRO="" +QUICK="" +CLEAN="" +ADVANCED="" +while [ $# -ge 1 ] ; do + if [ $1 = "--help" ] ; then + echo "Config utility for UnrealIRCd" + echo "-----------------------------" + echo "Syntax: ./Config [options]" + echo "-nocache Ignore settings saved in config.settings" + echo "-nointro Skip intro (release notes, etc)" + echo "-quick Skip questions, go straight to configure" + echo "-advanced Include additional advanced questions" + echo "-clean Clean ./configure cache" + exit 0 + elif [ $1 = "-nocache" ] ; then + NOCACHE="1" + elif [ $1 = "-nointro" ] ; then + NOINTRO="1" + elif [ $1 = "-quick" -o $1 = "-q" ] ; then + QUICK="1" + echo "running quick config" + if [ -f "config.settings" ] ; then + . ./config.settings + fi + RUN_CONFIGURE + cd "$UNREALCWD" + exit 0 + elif [ $1 = "-clean" -o $1 = "-C" ] ; then + CLEAN="1" + elif [ $1 = "-advanced" ] ; then + PREADVANCED="1" + fi + shift 1 +done + +if [ "$PREADVANCED" = "1" ] ; then + ADVANCED="1" +elif [ "$ADVANCED" = "1" ]; then + ADVANCED="" +fi + +if [ -n "$CLEAN" ] ; then + rm -f config.cache +fi + +if [ "`id -u`" = "0" ]; then + echo "ERROR: You cannot build or run UnrealIRCd as root" + echo "" + echo "Please create a separate account for building and running UnrealIRCd." + echo "See https://www.unrealircd.org/docs/Do_not_run_as_root" + exit +fi + +clear + + if [ -f "doc/Config.header" -a -z "$NOINTRO" ] ; then + more doc/Config.header + echo "" + echo $n "[Press Enter to continue]" + read cc + clear + fi + +echo "We will now ask you a number of questions. You can just press ENTER to accept the defaults!" +echo "" + +if [ -z "$NOCACHE" ] ; then + # This needs to be updated each release so auto-upgrading works for settings, modules, etc!!: + UNREALRELEASES="unrealircd-5.0.2 unrealircd-5.0.1 unrealircd-5.0.0 unrealircd-5.0.0-rc2 unrealircd-5.0.0-rc1" + if [ -f "config.settings" ]; then + . ./config.settings + else + # Try to load a previous config.settings + for x in $UNREALRELEASES + do + if [ -f ../$x/config.settings ]; then + IMPORTEDSETTINGS="../$x" + break + fi + done + echo "If you have previously installed UnrealIRCd on this shell then you can specify a" + echo "directory here so I can import the build settings and third party modules" + echo "to make your life a little easier." + if [ ! -z "$IMPORTEDSETTINGS" ]; then + echo "Found previous installation in: $IMPORTEDSETTINGS." + echo "You can enter a different path or type 'none' if you don't want to use it." + echo "Just press Enter to accept the default settings." + else + echo "If you install UnrealIRCd for the first time on this shell, then just hit Enter"; + fi + + TEST="$IMPORTEDSETTINGS" + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ]; then + IMPORTEDSETTINGS="$TEST" + else + IMPORTEDSETTINGS="$cc" + fi + if [ "$IMPORTEDSETTINGS" = "none" ]; then + IMPORTEDSETTINGS="" + fi + if [ "$IMPORTEDSETTINGS" != "" ]; then + if [ -d $IMPORTEDSETTINGS/conf ]; then + echo "ERROR: Directory $IMPORTEDSETTINGS is an INSTALLATION directory (eg /home/irc/unrealircd)." + echo "This question was about a SOURCE directory (eg /home/irc/unrealircd-5.0.0)." + exit + fi + if [ ! -f $IMPORTEDSETTINGS/config.settings ]; then + echo "Directory $IMPORTEDSETTINGS does not exist or does not contain a config.settings file" + exit + fi + COPYMODULES="1" + if grep -q TOPICNICKISNUH $IMPORTEDSETTINGS/config.settings; then + echo "Directory $IMPORTEDSETTINGS seems to be UnrealIRCd 4.x (or older)." + echo "I will copy the settings but not any 3rd party modules, as they are incompatible with 5.x." + COPYMODULES="0" + fi + # Actually load the settings + . $IMPORTEDSETTINGS/config.settings + if [ "$COPYMODULES" = "1" ]; then + # Copy over 3rd party modules (also deals with 0 file cases, hence the silly looking code) + for f in $IMPORTEDSETTINGS/src/modules/third/*.c + do + [ -e "$f" ] && cp $f src/modules/third/ + done + fi + fi + fi + # If we just imported settings and the curl dir is set to + # something like /home/xxx/unrealircd-5.x.y/extras/curl/ + # (what we call 'local-curl') then remove this setting as + # it would refer to the old UnrealIRCd installation. + if [ ! -z "$IMPORTEDSETTINGS" ]; then + if echo "$CURLDIR"|grep -qi unrealircd; then + CURLDIR="" + fi + fi +fi + +TEST="$BASEPATH" +echo "" +echo "In what directory do you want to install UnrealIRCd?" +echo "(Note: UnrealIRCd 5 will need to be installed somewhere." +echo " If this directory does not exist it will be created.)" +echo $n "[$TEST] -> $c" +read cc +if [ -z "$cc" ] ; then + BASEPATH=$TEST +else + BASEPATH=`eval echo $cc` # modified +fi +if [ "$BASEPATH" = "$UNREALCWD" ]; then + echo "" + echo "ERROR: The installation directory cannot be the same as the directory" + echo " containing the source code ($UNREALCWD)." + echo " HINT: Usually the directory containing the source is $HOME/unrealircd-5.x.y" + echo " and the installation directory you would need to enter is $HOME/unrealircd" + exit 1 +fi + +# TODO: For -advanced we could prompt the user. +BINDIR="$BASEPATH/bin" +DATADIR="$BASEPATH/data" +CONFDIR="$BASEPATH/conf" +MODULESDIR="$BASEPATH/modules" +LOGDIR="$BASEPATH/logs" +CACHEDIR="$BASEPATH/cache" +DOCDIR="$BASEPATH/doc" +TMPDIR="$BASEPATH/tmp" +PRIVATELIBDIR="$BASEPATH/lib" + +TEST="" +while [ -z "$TEST" ] ; do + TEST="$DEFPERM" + echo "" + echo "What should the default permissions for your configuration files be? (Set this to 0 to disable)" + echo "It is strongly recommended that you use 0600 to prevent unwanted reading of the file" + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + DEFPERM=$TEST + break + fi + case "$cc" in + [0-9]*) + DEFPERM="$cc" + ;; + *) + echo "" + echo "You must enter a number" + TEST="" + ;; + esac + +done + + + + +echo "" +echo "If you want, you can manually enter the path to OpenSSL/LibreSSL here." +echo "In most cases you can leave this blank and it will be detected automatically." + +if [ -z "$SSLDIR" ]; then + uname|grep -q Darwin + if [ "$?" = 0 ]; then + echo "Looks like you're on a Mac - El Capitan and higher require" + echo "a 3rd party OpenSSL installation. We recommend using homebrew" + echo "to install OpenSSL, but you may install it any other way as well." + echo "We are selecting the default homebrew OpenSSL path - but you can" + echo "change it to another path if you have installed OpenSSL another way" + SSLDIR="/usr/local/opt/openssl/" + fi +fi + +TEST="$SSLDIR" +echo $n "[$TEST] -> $c" + read cc +if [ -z "$cc" ] ; then + SSLDIR="$TEST" +else + SSLDIR=`eval echo $cc` # modified +fi + +TEST="" +while [ -z "$TEST" ] ; do + if [ "$REMOTEINC" = "1" ] ; then + TEST="Yes" + else + TEST="No" + fi + echo "" + echo "Do you want to enable remote includes?" + echo "This allows stuff like this in your configuration file:" + echo "include \"http://www.somesite.org/files/opers.conf\";" + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + cc=$TEST + fi + case "$cc" in + [Yy]*) + REMOTEINC="1" + ;; + [Nn]*) + REMOTEINC="" + CURLDIR="" + ;; + *) + echo "" + echo "You must enter either Yes or No" + TEST="" + ;; + esac +done + +if [ "$REMOTEINC" = "1" ] ; then + if [ ! -d "$CURLDIR" ]; then + # Reset any previous CURLDIR if it doesn't exist (anymore) + CURLDIR="" + fi + + INSTALLCURL="0" + SUGGESTCURLDIR="" + + if [ -d "/usr/local/include/curl" ]; then + SUGGESTCURLDIR="/usr/local" + fi + if [ -d "/usr/include/curl" ]; then + SUGGESTCURLDIR="/usr" + fi + # This one also works for /usr/include/x86_64-linux-gnu and friends: + if [ -f "/usr/bin/curl-config" ]; then + SUGGESTCURLDIR="/usr" + fi + + GOTASYNC=0 + if [ "x$SUGGESTCURLDIR" != "x" ]; then + # Check if it's of any use: a curl without async dns (cares) hangs the entire ircd.. + # normally this is done in ./configure but now we're forced to do it also here.. + if "$SUGGESTCURLDIR"/bin/curl-config --features | grep -q -e AsynchDNS; then + GOTASYNC="1" + fi + if [ "$GOTASYNC" != "1" ]; then + SUGGESTCURLDIRBAD="$CURLDIR" + SUGGESTCURLDIR="" + fi + fi + + if [ "x$CURLDIR" = "x$HOME/curl" ]; then + if [ "x$SUGGESTCURLDIR" != "x" ]; then + # I guess some people will complain about this, but if system wide cURL is available + # and many people have old defaults then this is much preferred: + echo "" + echo "WARNING: Your previous (potentially old) setting is to use cURL from $HOME/curl." + echo "However, your operating system also provides a working cURL." + echo "I am therefore changing the setting to: $SUGGESTCURLDIR" + CURLDIR="$SUGGESTCURLDIR" + else + echo "" + echo "WARNING: We no longer use $HOME/curl nowadays." + echo "Use the automatic download and install feature below." + CURLDIR="" + fi + fi + + if [ "x$CURLDIR" = "x" ]; then + CURLDIR="$SUGGESTCURLDIR" + # NOTE: CURLDIR may still be empty after this + + # System curl has no asyncdns, so install our own. + if [ "$GOTASYNC" != "1" ]; then + CURLDIR="" + fi + + # Need to output it here, as the HOME check from above may cause this to be no longer relevant. + if [ "x$CURLDIR" = "x" -a "x$SUGGESTCURLDIRBAD" != "x" ]; then + echo "Curl library was found in $SUGGESTCURLDIRBAD, but it does not support Asynchronous DNS (not compiled with c-ares)" + echo "so it's of no use to us as it would stall the IRCd on REHASH." + fi + fi + + # Final check + if [ "x$CURLDIR" != "x" ]; then + "$CURLDIR/bin/curl-config" --features 2>/dev/null | grep -q -e AsynchDNS + if [ "$?" != 0 ]; then + echo "Curl from $CURLDIR seems unusable ($CURLDIR/bin/curl-config does not exist)" + CURLDIR="" + fi + fi + + if [ "x$CURLDIR" = "x" ]; then + # Still empty? + TEST="" + while [ -z "$TEST" ] ; do + TEST="Yes" + echo "" + echo "Do you want me to automatically download and install curl for you?" + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + cc=$TEST + fi + case "$cc" in + [Yy]*) + INSTALLCURL="1" + CURLDIR="$UNREALCWD/extras/curl" + ;; + [Nn]*) + INSTALLCURL="0" + ;; + *) + echo "" + echo "You must enter either Yes or No" + TEST="" + ;; + esac + done + fi + + if [ "$INSTALLCURL" != "1" ]; then + TEST="" + while [ -z "$TEST" ] ; do + TEST="$CURLDIR" + echo "" + echo "Specify the directory you installed libcurl to" + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + cc=$TEST + else + TEST=$cc + CURLDIR=`eval echo $cc` # modified + fi + done + fi +fi + + +TEST="" +while [ -z "$TEST" ] ; do + if [ "$PREFIXAQ" = "1" ] ; then + TEST="Yes" + else + TEST="No" + fi + echo "" + echo "Do you want to enable prefixes for chanadmin and chanowner?" + echo "This will give +a the & prefix and ~ for +q (just like +o is @)" + echo "Supported by the major clients (mIRC, xchat, epic, eggdrop, Klient," + echo "PJIRC, irssi, CGI:IRC, etc.)" + echo "This feature should be enabled/disabled network-wide." + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + cc=$TEST + fi + case "$cc" in + [Yy]*) + PREFIXAQ="1" + ;; + [Nn]*) + PREFIXAQ="" + ;; + *) + echo "" + echo "You must enter either Yes or No" + TEST="" + ;; + esac +done + +TEST="" +while [ -z "$TEST" ] ; do + TEST="$NICKNAMEHISTORYLENGTH" + echo "" + echo "How far back do you want to keep the nickname history?" + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + NICKNAMEHISTORYLENGTH=$TEST + break + fi + case "$cc" in + [1-9]*) + NICKNAMEHISTORYLENGTH="$cc" + ;; + *) + echo "" + echo "You must enter a number" + TEST="" + ;; + esac +done + +echo "" +TEST="" +while [ -z "$TEST" ] ; do + TEST="$MAXCONNECTIONS_REQUEST" + echo "" + echo "What is the maximum number of sockets (and file descriptors) that" + echo "UnrealIRCd may use?" + echo "It is recommended to leave this at the default setting 'auto'," + echo "which at present results in a limit of up to 8192, depending on" + echo "the system. When you boot UnrealIRCd later you will always see" + echo "the effective limit." + echo $n "[$TEST] -> $c" + read cc + if [ -z "$cc" ] ; then + MAXCONNECTIONS_REQUEST=$TEST + break + fi + case "$cc" in + auto) + MAXCONNECTIONS_REQUEST="$cc" + ;; + [1-9][0-9][0-9]*) + MAXCONNECTIONS_REQUEST="$cc" + ;; + *) + echo "" + echo "You must to enter a number greater than or equal to 100." + echo "Or enter 'auto' to leave it at automatic, which is recommended." + TEST="" + ;; + esac +done +if [ -n "$ADVANCED" ] ; then + RUN_ADVANCED +fi + +TEST="$EXTRAPARA" +echo "" +echo "Would you like to pass any custom parameters to configure?" +echo "Most people don't need this and can just press ENTER." +echo "Otherwise, see \`./configure --help' and write them here:" +echo $n "[$TEST] -> $c" +read EXTRAPARA +if [ -z "$EXTRAPARA" ]; then + EXTRAPARA="$TEST" +fi + +rm -f config.settings +cat > config.settings << __EOF__ +# +BASEPATH="$BASEPATH" +BINDIR="$BINDIR" +DATADIR="$DATADIR" +CONFDIR="$CONFDIR" +MODULESDIR="$MODULESDIR" +LOGDIR="$LOGDIR" +CACHEDIR="$CACHEDIR" +DOCDIR="$DOCDIR" +TMPDIR="$TMPDIR" +PRIVATELIBDIR="$PRIVATELIBDIR" +PREFIXAQ="$PREFIXAQ" +MAXCONNECTIONS_REQUEST="$MAXCONNECTIONS_REQUEST" +NICKNAMEHISTORYLENGTH="$NICKNAMEHISTORYLENGTH" +DEFPERM="$DEFPERM" +SSLDIR="$SSLDIR" +REMOTEINC="$REMOTEINC" +CURLDIR="$CURLDIR" +SHOWLISTMODES="$SHOWLISTMODES" +NOOPEROVERRIDE="$NOOPEROVERRIDE" +OPEROVERRIDEVERIFY="$OPEROVERRIDEVERIFY" +GENCERTIFICATE="$GENCERTIFICATE" +EXTRAPARA="$EXTRAPARA" +ADVANCED="$ADVANCED" +__EOF__ +RUN_CONFIGURE +cd "$UNREALCWD" +cat << __EOF__ + + _______________________________________________________________________ +| | +| UnrealIRCd Compile-Time Config | +|_______________________________________________________________________| +|_______________________________________________________________________| +| | +| Now all you have to do is type 'make' and let it compile. When that's | +| done, you will receive other instructions on what to do next. | +| | +|_______________________________________________________________________| +|_______________________________________________________________________| +| - The UnrealIRCd Team - | +| | +| * Bram Matthys (Syzop) syzop@unrealircd.org | +| * Gottem gottem@unrealircd.org | +| * i i@unrealircd.org | +|_______________________________________________________________________| +__EOF__ + diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d60c31a --- /dev/null +++ b/LICENSE @@ -0,0 +1,340 @@ + GNU GENERAL PUBLIC LICENSE + Version 2, June 1991 + + Copyright (C) 1989, 1991 Free Software Foundation, Inc. + 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The licenses for most software are designed to take away your +freedom to share and change it. By contrast, the GNU General Public +License is intended to guarantee your freedom to share and change free +software--to make sure the software is free for all its users. This +General Public License applies to most of the Free Software +Foundation's software and to any other program whose authors commit to +using it. (Some other Free Software Foundation software is covered by +the GNU Library General Public License instead.) You can apply it to +your programs, too. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +this service if you wish), that you receive source code or can get it +if you want it, that you can change the software or use pieces of it +in new free programs; and that you know you can do these things. + + To protect your rights, we need to make restrictions that forbid +anyone to deny you these rights or to ask you to surrender the rights. +These restrictions translate to certain responsibilities for you if you +distribute copies of the software, or if you modify it. + + For example, if you distribute copies of such a program, whether +gratis or for a fee, you must give the recipients all the rights that +you have. You must make sure that they, too, receive or can get the +source code. And you must show them these terms so they know their +rights. + + We protect your rights with two steps: (1) copyright the software, and +(2) offer you this license which gives you legal permission to copy, +distribute and/or modify the software. + + Also, for each author's protection and ours, we want to make certain +that everyone understands that there is no warranty for this free +software. If the software is modified by someone else and passed on, we +want its recipients to know that what they have is not the original, so +that any problems introduced by others will not reflect on the original +authors' reputations. + + Finally, any free program is threatened constantly by software +patents. We wish to avoid the danger that redistributors of a free +program will individually obtain patent licenses, in effect making the +program proprietary. To prevent this, we have made it clear that any +patent must be licensed for everyone's free use or not licensed at all. + + The precise terms and conditions for copying, distribution and +modification follow. + + GNU GENERAL PUBLIC LICENSE + TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION + + 0. This License applies to any program or other work which contains +a notice placed by the copyright holder saying it may be distributed +under the terms of this General Public License. The "Program", below, +refers to any such program or work, and a "work based on the Program" +means either the Program or any derivative work under copyright law: +that is to say, a work containing the Program or a portion of it, +either verbatim or with modifications and/or translated into another +language. (Hereinafter, translation is included without limitation in +the term "modification".) Each licensee is addressed as "you". + +Activities other than copying, distribution and modification are not +covered by this License; they are outside its scope. The act of +running the Program is not restricted, and the output from the Program +is covered only if its contents constitute a work based on the +Program (independent of having been made by running the Program). +Whether that is true depends on what the Program does. + + 1. You may copy and distribute verbatim copies of the Program's +source code as you receive it, in any medium, provided that you +conspicuously and appropriately publish on each copy an appropriate +copyright notice and disclaimer of warranty; keep intact all the +notices that refer to this License and to the absence of any warranty; +and give any other recipients of the Program a copy of this License +along with the Program. + +You may charge a fee for the physical act of transferring a copy, and +you may at your option offer warranty protection in exchange for a fee. + + 2. You may modify your copy or copies of the Program or any portion +of it, thus forming a work based on the Program, and copy and +distribute such modifications or work under the terms of Section 1 +above, provided that you also meet all of these conditions: + + a) You must cause the modified files to carry prominent notices + stating that you changed the files and the date of any change. + + b) You must cause any work that you distribute or publish, that in + whole or in part contains or is derived from the Program or any + part thereof, to be licensed as a whole at no charge to all third + parties under the terms of this License. + + c) If the modified program normally reads commands interactively + when run, you must cause it, when started running for such + interactive use in the most ordinary way, to print or display an + announcement including an appropriate copyright notice and a + notice that there is no warranty (or else, saying that you provide + a warranty) and that users may redistribute the program under + these conditions, and telling the user how to view a copy of this + License. (Exception: if the Program itself is interactive but + does not normally print such an announcement, your work based on + the Program is not required to print an announcement.) + +These requirements apply to the modified work as a whole. If +identifiable sections of that work are not derived from the Program, +and can be reasonably considered independent and separate works in +themselves, then this License, and its terms, do not apply to those +sections when you distribute them as separate works. But when you +distribute the same sections as part of a whole which is a work based +on the Program, the distribution of the whole must be on the terms of +this License, whose permissions for other licensees extend to the +entire whole, and thus to each and every part regardless of who wrote it. + +Thus, it is not the intent of this section to claim rights or contest +your rights to work written entirely by you; rather, the intent is to +exercise the right to control the distribution of derivative or +collective works based on the Program. + +In addition, mere aggregation of another work not based on the Program +with the Program (or with a work based on the Program) on a volume of +a storage or distribution medium does not bring the other work under +the scope of this License. + + 3. You may copy and distribute the Program (or a work based on it, +under Section 2) in object code or executable form under the terms of +Sections 1 and 2 above provided that you also do one of the following: + + a) Accompany it with the complete corresponding machine-readable + source code, which must be distributed under the terms of Sections + 1 and 2 above on a medium customarily used for software interchange; or, + + b) Accompany it with a written offer, valid for at least three + years, to give any third party, for a charge no more than your + cost of physically performing source distribution, a complete + machine-readable copy of the corresponding source code, to be + distributed under the terms of Sections 1 and 2 above on a medium + customarily used for software interchange; or, + + c) Accompany it with the information you received as to the offer + to distribute corresponding source code. (This alternative is + allowed only for noncommercial distribution and only if you + received the program in object code or executable form with such + an offer, in accord with Subsection b above.) + +The source code for a work means the preferred form of the work for +making modifications to it. For an executable work, complete source +code means all the source code for all modules it contains, plus any +associated interface definition files, plus the scripts used to +control compilation and installation of the executable. However, as a +special exception, the source code distributed need not include +anything that is normally distributed (in either source or binary +form) with the major components (compiler, kernel, and so on) of the +operating system on which the executable runs, unless that component +itself accompanies the executable. + +If distribution of executable or object code is made by offering +access to copy from a designated place, then offering equivalent +access to copy the source code from the same place counts as +distribution of the source code, even though third parties are not +compelled to copy the source along with the object code. + + 4. You may not copy, modify, sublicense, or distribute the Program +except as expressly provided under this License. Any attempt +otherwise to copy, modify, sublicense or distribute the Program is +void, and will automatically terminate your rights under this License. +However, parties who have received copies, or rights, from you under +this License will not have their licenses terminated so long as such +parties remain in full compliance. + + 5. You are not required to accept this License, since you have not +signed it. However, nothing else grants you permission to modify or +distribute the Program or its derivative works. These actions are +prohibited by law if you do not accept this License. Therefore, by +modifying or distributing the Program (or any work based on the +Program), you indicate your acceptance of this License to do so, and +all its terms and conditions for copying, distributing or modifying +the Program or works based on it. + + 6. Each time you redistribute the Program (or any work based on the +Program), the recipient automatically receives a license from the +original licensor to copy, distribute or modify the Program subject to +these terms and conditions. You may not impose any further +restrictions on the recipients' exercise of the rights granted herein. +You are not responsible for enforcing compliance by third parties to +this License. + + 7. If, as a consequence of a court judgment or allegation of patent +infringement or for any other reason (not limited to patent issues), +conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot +distribute so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you +may not distribute the Program at all. For example, if a patent +license would not permit royalty-free redistribution of the Program by +all those who receive copies directly or indirectly through you, then +the only way you could satisfy both it and this License would be to +refrain entirely from distribution of the Program. + +If any portion of this section is held invalid or unenforceable under +any particular circumstance, the balance of the section is intended to +apply and the section as a whole is intended to apply in other +circumstances. + +It is not the purpose of this section to induce you to infringe any +patents or other property right claims or to contest validity of any +such claims; this section has the sole purpose of protecting the +integrity of the free software distribution system, which is +implemented by public license practices. Many people have made +generous contributions to the wide range of software distributed +through that system in reliance on consistent application of that +system; it is up to the author/donor to decide if he or she is willing +to distribute software through any other system and a licensee cannot +impose that choice. + +This section is intended to make thoroughly clear what is believed to +be a consequence of the rest of this License. + + 8. If the distribution and/or use of the Program is restricted in +certain countries either by patents or by copyrighted interfaces, the +original copyright holder who places the Program under this License +may add an explicit geographical distribution limitation excluding +those countries, so that distribution is permitted only in or among +countries not thus excluded. In such case, this License incorporates +the limitation as if written in the body of this License. + + 9. The Free Software Foundation may publish revised and/or new versions +of the General Public License from time to time. Such new versions will +be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + +Each version is given a distinguishing version number. If the Program +specifies a version number of this License which applies to it and "any +later version", you have the option of following the terms and conditions +either of that version or of any later version published by the Free +Software Foundation. If the Program does not specify a version number of +this License, you may choose any version ever published by the Free Software +Foundation. + + 10. If you wish to incorporate parts of the Program into other free +programs whose distribution conditions are different, write to the author +to ask for permission. For software which is copyrighted by the Free +Software Foundation, write to the Free Software Foundation; we sometimes +make exceptions for this. Our decision will be guided by the two goals +of preserving the free status of all derivatives of our free software and +of promoting the sharing and reuse of software generally. + + NO WARRANTY + + 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY +FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN +OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES +PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED +OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS +TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE +PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, +REPAIR OR CORRECTION. + + 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR +REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, +INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING +OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED +TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY +YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER +PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE +POSSIBILITY OF SUCH DAMAGES. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +convey the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 2 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + + +Also add information on how to contact you by electronic and paper mail. + +If the program is interactive, make it output a short notice like this +when it starts in an interactive mode: + + Gnomovision version 69, Copyright (C) year name of author + Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. + This is free software, and you are welcome to redistribute it + under certain conditions; type `show c' for details. + +The hypothetical commands `show w' and `show c' should show the appropriate +parts of the General Public License. Of course, the commands you use may +be called something other than `show w' and `show c'; they could even be +mouse-clicks or menu items--whatever suits your program. + +You should also get your employer (if you work as a programmer) or your +school, if any, to sign a "copyright disclaimer" for the program, if +necessary. Here is a sample; alter the names: + + Yoyodyne, Inc., hereby disclaims all copyright interest in the program + `Gnomovision' (which makes passes at compilers) written by James Hacker. + + , 1 April 1989 + Ty Coon, President of Vice + +This General Public License does not permit incorporating your program into +proprietary programs. If your program is a subroutine library, you may +consider it more useful to permit linking proprietary applications with the +library. If this is what you want to do, use the GNU Library General +Public License instead of this License. diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 0000000..48853d6 --- /dev/null +++ b/Makefile.in @@ -0,0 +1,255 @@ +#/************************************************************************ +#* IRC - Internet Relay Chat, Makefile +#* Copyright (C) 1990, Jarkko Oikarinen +#* +#* This program is free software; you can redistribute it and/or modify +#* it under the terms of the GNU General Public License as published by +#* the Free Software Foundation; either version 1, or (at your option) +#* any later version. +#* +#* This program is distributed in the hope that it will be useful, +#* but WITHOUT ANY WARRANTY; without even the implied warranty of +#* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +#* GNU General Public License for more details. +#* +#* You should have received a copy of the GNU General Public License +#* along with this program; if not, write to the Free Software +#* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +#* +#* $Id$ +#*/ + +CC=@CC@ +INCLUDEDIR=@UNRLINCDIR@ +NETWORKSDIR= +FROMDOS=/home/cmunk/bin/4dos + +# [CHANGEME] +# Default flags: +# Change XCFLAGS if you don't like what Config puts there. Same with +# IRCDLIBS. +# +# If you are configuring by hand, try "-O -g" for XCFLAGS, and leave +# IRCDLIBS blank. If that fails, try recomendations below. +# + +#XCFLAGS=-O -g -export-dynamic +IRCDLIBS=@IRCDLIBS@ @PCRE2_LIBS@ @ARGON2_LIBS@ @CARES_LIBS@ @PTHREAD_LIBS@ +CRYPTOLIB=@CRYPTOLIB@ +OPENSSLINCLUDES= + +XCFLAGS=@PTHREAD_CFLAGS@ @PCRE2_CFLAGS@ @ARGON2_CFLAGS@ @CARES_CFLAGS@ @CFLAGS@ @HARDEN_CFLAGS@ @CPPFLAGS@ +# +# use the following on MIPS: +#CFLAGS= -systype bsd43 -DSYSTYPE_BSD43 -I$(INCLUDEDIR) +# For Irix 4.x (SGI), use the following: +#CFLAGS= -g -cckr -I$(INCLUDEDIR) +# +# on NEXT use: +#CFLAGS=-bsd -I$(INCLUDEDIR) +#on NeXT other than 2.0: +#IRCDLIBS=-lsys_s +# +# AIX 370 flags +#CFLAGS=-D_BSD -Hxa -I$(INCLUDEDIR) +#IRCDLIBS=-lbsd +# +# Dynix/ptx V2.0.x +#CFLAGS= -I$(INCLUDEDIR) -O -Xo +#IRCDLIBS= -lsocket -linet -lnsl -lseq +# +# Dynix/ptx V1.x.x +#IRCDLIBS= -lsocket -linet -lnsl -lseq +# +#use the following on SUN OS without nameserver libraries inside libc +#IRCDLIBS=-lresolv +# +# Solaris 2 +#IRCDLIBS=-lsocket -lnsl -lresolv -L/usr/ucblib -R/usr/ucblib -lgen +# +# ESIX +#CFLAGS=-O -I$(INCLUDEDIR) -I/usr/ucbinclude +#IRCDLIBS=-L/usr/ucblib -L/usr/lib -lsocket -lucb -lns -lnsl +# +# LDFLAGS - flags to send the loader (ld). SunOS users may want to add +# -Bstatic here. +# +#LDFLAGS=-Bstatic +# +#Dell SVR4 +#CC=gcc +#CFLAGS= -I$(INCLUDEDIR) -O2 +#IRCDLIBS=-lsocket -lnsl -lucb + +# [CHANGEME] +# IRCDMODE is the mode you want the binary to be. +# The 4 at the front is important (allows for setuidness) +# +# WARNING: if you are making ircd SUID or SGID, check config.h to make sure +# you are not defining CMDLINE_CONFIG +IRCDMODE = 711 + +URL=@URL@ + +# Where is your openssl binary +OPENSSLPATH=@OPENSSLPATH@ + +CFLAGS=-I$(INCLUDEDIR) $(XCFLAGS) +XLDFLAGS=@LDFLAGS_PRIVATELIBS@ @HARDEN_LDFLAGS@ @LDFLAGS@ +LDFLAGS=$(XLDFLAGS) + +SHELL=/bin/sh +SUBDIRS=src +BINDIR=@BINDIR@ +INSTALL=@INSTALL@ +RM=@RM@ +CP=@CP@ +TOUCH=@TOUCH@ +RES= +all: build + +MAKEARGS = 'CFLAGS=${CFLAGS}' 'CC=${CC}' 'IRCDLIBS=${IRCDLIBS}' \ + 'LDFLAGS=${LDFLAGS}' 'IRCDMODE=${IRCDMODE}' \ + 'RES=${RES}' 'BINDIR=${BINDIR}' 'INSTALL=${INSTALL}' \ + 'INCLUDEDIR=${INCLUDEDIR}' \ + 'RM=${RM}' 'CP=${CP}' 'TOUCH=${TOUCH}' \ + 'SHELL=${SHELL}' \ + 'CRYPTOLIB=${CRYPTOLIB}' \ + 'CRYPTOINCLUDES=${CRYPTOINCLUDES}' \ + 'URL=${URL}' + +custommodule: + @if test -z "${MODULEFILE}"; then echo "Please set MODULEFILE when calling \`\`make custommodule''. For example, \`\`make custommodule MODULEFILE=callerid''." >&2; exit 1; fi + +cd src; ${MAKE} ${MAKEARGS} MODULEFILE=${MODULEFILE} 'EXLIBS=${EXLIBS}' custommodule + +server: Makefile +build: Makefile + -@if [ ! -f include/setup.h ] ; then \ + echo "Hmm...doesn't look like you've run Config..."; \ + echo "Doing so now."; \ + sh Config; \ + fi + @+for i in $(SUBDIRS); do \ + echo "Building $$i";\ + ( cd $$i; ${MAKE} ${MAKEARGS} build; ) \ + done + @echo '' + @echo '* UnrealIRCd compiled successfully' + @echo '* YOU ARE NOT DONE YET! Run "make install" to install UnrealIRCd !' + @echo '' + +clean: + $(RM) -f *~ \#* core *.orig include/*.orig + @+for i in $(SUBDIRS); do \ + echo "Cleaning $$i";\ + ( cd $$i; ${MAKE} ${MAKEARGS} clean; ) \ + done + -@if [ -f include/setup.h ] ; then \ + echo "To really restart installation, remove include/setup.h" ; \ + fi + +cleandir: clean + rm -rf include/setup.h Makefile Settings + +distclean: cleandir + rm -rf extras/*.bak extras/*.tar extras/c-ares + rm -rf extras/c-ares-* extras/tre-* + rm -rf config.log config.settings *.pem ircd.* unrealircd + rm -rf Makefile config.status + +depend: + @+for i in $(SUBDIRS); do \ + echo "Making dependencies in $$i";\ + ( cd $$i; ${MAKE} ${MAKEARGS} depend; ) \ + done + +install: all + $(INSTALL) -m 0700 -d @BINDIR@ + $(INSTALL) -m 0700 src/ircd @BINDIR@/unrealircd + $(INSTALL) -m 0700 -d @DOCDIR@ + $(INSTALL) -m 0600 doc/Authors doc/coding-guidelines doc/tao.of.irc @DOCDIR@ + $(INSTALL) -m 0700 -d @CONFDIR@ + $(INSTALL) -m 0600 doc/conf/*.conf @CONFDIR@ + $(INSTALL) -m 0600 doc/conf/*.motd @CONFDIR@ + $(INSTALL) -m 0600 doc/conf/modules.sources.list @CONFDIR@ + $(INSTALL) -m 0700 unrealircd @SCRIPTDIR@ + $(INSTALL) -m 0700 -d @MODULESDIR@ + @rm -f @MODULESDIR@/*.so 1>/dev/null 2>&1 + $(INSTALL) -m 0700 src/modules/*.so @MODULESDIR@ + $(INSTALL) -m 0700 -d @MODULESDIR@/usermodes + @rm -f @MODULESDIR@/usermodes/*.so 1>/dev/null 2>&1 + $(INSTALL) -m 0700 src/modules/usermodes/*.so @MODULESDIR@/usermodes + $(INSTALL) -m 0700 -d @MODULESDIR@/chanmodes + @rm -f @MODULESDIR@/chanmodes/*.so 1>/dev/null 2>&1 + $(INSTALL) -m 0700 src/modules/chanmodes/*.so @MODULESDIR@/chanmodes + $(INSTALL) -m 0700 -d @MODULESDIR@/snomasks + @rm -f @MODULESDIR@/snomasks/*.so 1>/dev/null 2>&1 + $(INSTALL) -m 0700 src/modules/snomasks/*.so @MODULESDIR@/snomasks + $(INSTALL) -m 0700 -d @MODULESDIR@/extbans + @rm -f @MODULESDIR@/extbans/*.so 1>/dev/null 2>&1 + $(INSTALL) -m 0700 src/modules/extbans/*.so @MODULESDIR@/extbans + @#If the conf/ssl directory exists then rename it here to conf/tls + @#and add a symlink for backwards compatibility (so that f.e. certbot + @#doesn't randomly fail after an upgrade to U5). + -@if [ -d "@CONFDIR@/ssl" ] ; then \ + mv "@CONFDIR@/ssl" "@CONFDIR@/tls" ; \ + ln -s "@CONFDIR@/tls" "@CONFDIR@/ssl" ; \ + fi + $(INSTALL) -m 0700 -d @CONFDIR@/tls + $(INSTALL) -m 0600 doc/conf/tls/curl-ca-bundle.crt @CONFDIR@/tls + @# delete modules/cap directory, to avoid confusing with U4 to U5 upgrades: + rm -rf @MODULESDIR@/cap + $(INSTALL) -m 0700 -d @MODULESDIR@/third + @rm -f @MODULESDIR@/third/*.so 1>/dev/null 2>&1 + @#This step can fail with zero files, so we ignore exit status: + -$(INSTALL) -m 0700 src/modules/third/*.so @MODULESDIR@/third + $(INSTALL) -m 0700 -d @TMPDIR@ + $(INSTALL) -m 0700 -d @CACHEDIR@ + $(INSTALL) -m 0700 -d @PERMDATADIR@ + $(INSTALL) -m 0700 -d @LOGDIR@ + -@if [ ! -f "@CONFDIR@/tls/server.cert.pem" ] ; then \ + $(INSTALL) -m 0600 server.req.pem @CONFDIR@/tls ; \ + $(INSTALL) -m 0600 server.key.pem @CONFDIR@/tls ; \ + $(INSTALL) -m 0600 server.cert.pem @CONFDIR@/tls ; \ + fi + @echo '' + @echo '* UnrealIRCd is now installed.' + + -@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \ + echo '* Leave this directory and run "cd @SCRIPTDIR@" now' ; \ + fi + @echo '* Directory layout:' + -@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \ + echo ' * Base directory: @SCRIPTDIR@' ; \ + fi + @echo ' * Configuration files: @CONFDIR@' + @echo ' * Log files: @LOGDIR@' + @echo ' * Modules: @MODULESDIR@' + @echo '* To start/stop UnrealIRCd run: @SCRIPTDIR@/unrealircd"' + @echo '' + @echo '* Consult the documentation online at:' + @echo ' * https://www.unrealircd.org/docs/' + @echo ' * https://www.unrealircd.org/docs/FAQ' + @echo '* You may also wish to install a cron job to ensure UnrealIRCd is always running:' + @echo ' * https://www.unrealircd.org/docs/Cron_job' + @echo '' + -@if [ "@SCRIPTDIR@/bin" = "@BINDIR@" ] ; then \ + echo 'Again, be sure to change to the @SCRIPTDIR@ directory!' ; \ + fi + +pem: extras/tls.cnf + @echo "Generating server key..." + $(OPENSSLPATH) ecparam -out server.key.pem -name secp384r1 -genkey + @echo "Generating certificate request..." + $(OPENSSLPATH) req -new \ + -config extras/tls.cnf -sha256 -out server.req.pem \ + -key server.key.pem -nodes + @echo "Generating self-signed certificate..." + $(OPENSSLPATH) req -x509 -days 3650 -sha256 -in server.req.pem \ + -key server.key.pem -out server.cert.pem + @echo "Setting permissions on server.*.pem files..." + chmod o-rwx server.req.pem server.key.pem server.cert.pem + chmod g-rwx server.req.pem server.key.pem server.cert.pem + +Makefile: config.status Makefile.in + ./config.status diff --git a/Makefile.windows b/Makefile.windows new file mode 100644 index 0000000..d8acb23 --- /dev/null +++ b/Makefile.windows @@ -0,0 +1,1084 @@ +# +# UnrealIRCd Makefile - codemastr +# +CC=cl +LINK=link +RC=rc +MT=mt + +############################ USER CONFIGURATION ############################ + +# You are encouraged NOT to set these values here, but instead make a batch file +# which passes all these arguments to nmake, like: +# nmake -f makefile.windows LIBRESSL_INC_DIR="c:\dev\libressl" etc etc... +# Both ways will work, but if you use a batch file it's easier with +# upgrading UnrealIRCd as you won't have to edit this makefile again. + +### PCRE2 ### +#PCRE2_LIB_DIR="C:\dev\pcre2\build\release" +#PCRE2_INC_DIR="C:\dev\pcre2" +#PCRE2LIB="pcre2-8.lib" + +### ARGON2 ### +#ARGON2_LIB_DIR="C:\dev\argon2\vs2015\build" +#ARGON2_INC_DIR="C:\dev\argon2\include" +#ARGON2LIB="Argon2RefDll.lib" + +### C-ARES #### +#CARES_LIB_DIR="C:\dev\c-ares\vc\cares\dll-release" +#CARES_INC_DIR="C:\dev\c-ares" +#CARESLIB="cares.lib" + +##### REMOTE INCLUDES #### +#To enable remote include support you must have libcurl installed on your +#system and it must have ares support enabled. +# +# +#To enable remote includes uncomment the next line: +#USE_REMOTEINC=1 +# +#If your libcurl library and include files are not in your compiler's +#default locations, specify the locations here: +#LIBCURL_INC_DIR="c:\dev\curl\include" +#LIBCURL_LIB_DIR="c:\dev\curl\lib" +# +# +### END REMOTE INCLUDES ## + +####### SSL/TLS SUPPORT (MANDATORY) ###### +#Use LibreSSL or OpenSSL. Define paths and libraries: +#LIBRESSL_INC_DIR="c:\dev\libressl\include" +#LIBRESSL_LIB_DIR="c:\dev\libressl\lib" +#SSLLIB=libcrypto-38.lib libssl-39.lib libtls-11.lib +#The version numbers of the 3 libraries in the last line change +#every libressl release. So be sure to update after any libressl upgrade. +######### END SSL/TLS ######## + +###### _EXTRA_ DEBUGGING ##### +# We always build releases with debugging information, since otherwise +# we cannot trace the source of a crash. Plus we do not mind the extra +# performance hit caused by not enabling super-optimization, tracing +# crashes properly is more important. +# You can choose (at your own risk) to enable EVEN MORE debugging, +# note that this causes /MDd to be used instead of /MD which can make +# libraries incompatible, plus all the other side-effects such as +# requiring a different dll we do not ship (and maybe you are not even +# allowed to ship due to license agreements), etc... +# In any case, this probably should not be used, unless debugging a +# problem locally, in which case it can be useful. +#DEBUGEXTRA=1 +# +# +#### END RELEASE BUILD ### + +############################# END CONFIGURATION ############################ + +!IFDEF CARES_INC_DIR +CARES_INC=/I "$(CARES_INC_DIR)" +!ENDIF +!IFDEF CARES_LIB_DIR +CARES_LIB=/LIBPATH:"$(CARES_LIB_DIR)" +!ENDIF + +!IFDEF PCRE2_INC_DIR +PCRE2_INC=/I "$(PCRE2_INC_DIR)" +!ENDIF +!IFDEF PCRE2_LIB_DIR +PCRE2_LIB=/LIBPATH:"$(PCRE2_LIB_DIR)" +!ENDIF + +!IFDEF ARGON2_INC_DIR +ARGON2_INC=/I "$(ARGON2_INC_DIR)" +!ENDIF +!IFDEF ARGON2_LIB_DIR +ARGON2_LIB=/LIBPATH:"$(ARGON2_LIB_DIR)" +!ENDIF + +!IFDEF USE_REMOTEINC +CURLCFLAGS=/D USE_LIBCURL +CURLOBJ=SRC/URL.OBJ +CURLLIB=libcurl.lib +!IFDEF LIBCURL_INC_DIR +LIBCURL_INC=/I "$(LIBCURL_INC_DIR)" +!ENDIF +!IFDEF LIBCURL_LIB_DIR +LIBCURL_LIB=/LIBPATH:"$(LIBCURL_LIB_DIR)" +!ENDIF +!ENDIF + +!IFDEF LIBRESSL_INC_DIR +LIBRESSL_INC=/I "$(LIBRESSL_INC_DIR)" +!ENDIF +!IFDEF LIBRESSL_LIB_DIR +LIBRESSL_LIB=/LIBPATH:"$(LIBRESSL_LIB_DIR)" +!ENDIF + +!IFDEF DEBUGEXTRA +DBGCFLAG=/MDd /Zi /Od +DBGCFLAGST=/MTd /Zi /Od +DBGLFLAG=/debug +MODDBGCFLAG=/LDd /MDd /Zi +!ELSE +DBGCFLAG=/MD /Zi +DBGCFLAGST=/MT /Zi +DBGLFLAG=/debug +MODDBGCFLAG=/LDd /MD /Zi +!ENDIF + +STDOPTIONS=$(PCRE2_INC) $(ARGON2_INC) $(CARES_INC) $(LIBCURL_INC) $(LIBRESSL_INC) /J /I ./INCLUDE /nologo \ + $(CURLCFLAGS) /D FD_SETSIZE=16384 $(SSLCFLAGS) /D _CRT_SECURE_NO_DEPRECATE /D _CRT_NONSTDC_NO_DEPRECATE \ + /D FAKELAG_CONFIGURABLE=1 \ + /W3 /wd4267 /wd4101 /wd4018 /wd4244 /wd4996 /WX \ + /analyze:ruleset extras\VStudioAnalyze.ruleset +STDLIBS=$(CARES_LIB) $(CARESLIB) $(PCRE2_LIB) $(PCRE2LIB) $(ARGON2_LIB) $(ARGON2LIB) \ + $(LIBRESSL_LIB) $(SSLLIB) $(LIBCURL_LIB) $(CURLLIB) +CFLAGS=$(DBGCFLAG) $(STDOPTIONS) /c /Fosrc/ +CFLAGSST=$(DBGCFLAGST) $(STDOPTIONS) /c /Fosrc/ +LFLAGS=kernel32.lib user32.lib gdi32.lib shell32.lib ws2_32.lib advapi32.lib \ + dbghelp.lib oldnames.lib comctl32.lib comdlg32.lib $(STDLIBS) \ + /def:UnrealIRCd.def /implib:UnrealIRCd.lib \ + /nologo $(DBGLFLAG) /out:UnrealIRCd.exe +MODCFLAGS=$(MODDBGCFLAG) $(STDOPTIONS) /D DYNAMIC_LINKING /D MODULE_COMPILE +MODLFLAGS=/link /def:src/modules/module.def UnrealIRCd.lib ws2_32.lib $(STDLIBS) + +INCLUDES=./include/struct.h ./include/config.h ./include/sys.h \ + ./include/common.h ./include/version.h ./include/h.h ./include/numeric.h \ + ./include/msg.h ./include/setup.h ./include/dynconf.h + +EXP_OBJ_FILES=SRC/CHANNEL.OBJ SRC/SEND.OBJ SRC/SOCKET.OBJ \ + SRC/CONF.OBJ SRC/CONF_PREPROCESSOR.OBJ \ + SRC/FDLIST.OBJ SRC/DBUF.OBJ \ + SRC/HASH.OBJ SRC/PARSE.OBJ SRC/IRCD.OBJ \ + SRC/WHOWAS.OBJ \ + SRC/MISC.OBJ SRC/MATCH.OBJ SRC/CRULE.OBJ \ + SRC/DEBUG.OBJ SRC/SUPPORT.OBJ SRC/LIST.OBJ \ + SRC/NUMERIC.OBJ \ + SRC/SERV.OBJ SRC/USER.OBJ \ + SRC/VERSION.OBJ SRC/IRCSPRINTF.OBJ \ + SRC/SCACHE.OBJ SRC/DNS.OBJ SRC/MODULES.OBJ \ + SRC/ALIASES.OBJ SRC/API-EVENT.OBJ SRC/API-USERMODE.OBJ SRC/AUTH.OBJ SRC/TLS.OBJ \ + SRC/RANDOM.OBJ SRC/API-CHANNELMODE.OBJ SRC/API-MODDATA.OBJ SRC/MEMPOOL.OBJ \ + SRC/DISPATCH.OBJ SRC/API-ISUPPORT.OBJ SRC/API-COMMAND.OBJ \ + SRC/API-CLICAP.OBJ SRC/API-MESSAGETAG.OBJ SRC/API-HISTORY-BACKEND.OBJ \ + SRC/API-EXTBAN.OBJ SRC/API-EFUNCTIONS.OBJ SRC/CRYPT_BLOWFISH.OBJ \ + SRC/OPERCLASS.OBJ SRC/UPDCONF.OBJ SRC/CRASHREPORT.OBJ \ + SRC/OPENSSL_HOSTNAME_VALIDATION.OBJ \ + SRC/UTF8.OBJ $(CURLOBJ) + +OBJ_FILES=$(EXP_OBJ_FILES) SRC/GUI.OBJ SRC/SERVICE.OBJ SRC/WINDEBUG.OBJ SRC/RTF.OBJ \ + SRC/EDITOR.OBJ SRC/WIN.OBJ + +DLL_FILES=SRC/MODULES/CLOAK.DLL \ + SRC/MODULES/CHGHOST.DLL SRC/MODULES/SDESC.DLL SRC/MODULES/SETIDENT.DLL \ + SRC/MODULES/SETNAME.DLL SRC/MODULES/SETHOST.DLL SRC/MODULES/CHGIDENT.DLL \ + SRC/MODULES/SVSMOTD.DLL SRC/MODULES/SVSNLINE.DLL SRC/MODULES/WHO_OLD.DLL \ + SRC/MODULES/WHOX.DLL \ + SRC/MODULES/SWHOIS.DLL SRC/MODULES/SVSMODE.DLL SRC/MODULES/AWAY.DLL \ + SRC/MODULES/SVSNOOP.DLL SRC/MODULES/MKPASSWD.DLL \ + SRC/MODULES/SVSNICK.DLL \ + SRC/MODULES/CHGNAME.DLL \ + SRC/MODULES/LAG.DLL SRC/MODULES/MESSAGE.DLL \ + SRC/MODULES/OPER.DLL SRC/MODULES/PINGPONG.DLL SRC/MODULES/QUIT.DLL \ + SRC/MODULES/SENDUMODE.DLL \ + SRC/MODULES/SQLINE.DLL SRC/MODULES/KILL.DLL SRC/MODULES/TSCTL.DLL \ + SRC/MODULES/UNSQLINE.DLL \ + SRC/MODULES/WHOIS.DLL SRC/MODULES/TKL.DLL SRC/MODULES/VHOST.DLL \ + SRC/MODULES/CYCLE.DLL SRC/MODULES/SVSJOIN.DLL SRC/MODULES/SVSPART.DLL \ + SRC/MODULES/SVSLUSERS.DLL SRC/MODULES/SVSWATCH.DLL SRC/MODULES/SVSSILENCE.DLL \ + SRC/MODULES/SENDSNO.DLL SRC/MODULES/SVSSNO.DLL SRC/MODULES/SAJOIN.DLL \ + SRC/MODULES/SAPART.DLL SRC/MODULES/SAMODE.DLL SRC/MODULES/KICK.DLL \ + SRC/MODULES/TOPIC.DLL SRC/MODULES/INVITE.DLL SRC/MODULES/LIST.DLL \ + SRC/MODULES/TIME.DLL SRC/MODULES/SVSKILL.DLL SRC/MODULES/KNOCK.DLL \ + SRC/MODULES/UMODE2.DLL SRC/MODULES/SQUIT.DLL SRC/MODULES/PROTOCTL.DLL \ + SRC/MODULES/SJOIN.DLL SRC/MODULES/PASS.DLL SRC/MODULES/USERHOST.DLL \ + SRC/MODULES/ISON.DLL SRC/MODULES/SILENCE.DLL \ + SRC/MODULES/ADDMOTD.DLL SRC/MODULES/ADDOMOTD.DLL SRC/MODULES/WALLOPS.DLL \ + SRC/MODULES/GLOBOPS.DLL SRC/MODULES/LOCOPS.DLL \ + SRC/MODULES/ADMIN.DLL SRC/MODULES/TRACE.DLL SRC/MODULES/NETINFO.DLL \ + SRC/MODULES/LINKS.DLL SRC/MODULES/HELP.DLL SRC/MODULES/RULES.DLL \ + SRC/MODULES/CLOSE.DLL SRC/MODULES/MAP.DLL SRC/MODULES/EOS.DLL \ + SRC/MODULES/SERVER.DLL SRC/MODULES/STATS.DLL \ + SRC/MODULES/DCCDENY.DLL SRC/MODULES/WHOWAS.DLL \ + SRC/MODULES/CONNECT.DLL SRC/MODULES/DCCALLOW.DLL SRC/MODULES/USERIP.DLL \ + SRC/MODULES/NICK.DLL SRC/MODULES/USER.DLL SRC/MODULES/MODE.DLL \ + SRC/MODULES/WATCH.DLL SRC/MODULES/PART.DLL SRC/MODULES/JOIN.DLL \ + SRC/MODULES/MOTD.DLL SRC/MODULES/OPERMOTD.DLL SRC/MODULES/BOTMOTD.DLL \ + SRC/MODULES/LUSERS.DLL SRC/MODULES/NAMES.DLL SRC/MODULES/SVSNOLAG.DLL \ + SRC/MODULES/STARTTLS.DLL \ + SRC/MODULES/WEBREDIR.DLL \ + SRC/MODULES/CAP.DLL \ + SRC/MODULES/SASL.DLL \ + SRC/MODULES/TLS_ANTIDOS.DLL \ + SRC/MODULES/MD.DLL \ + SRC/MODULES/CERTFP.DLL \ + SRC/MODULES/WEBIRC.DLL \ + SRC/MODULES/WEBSOCKET.DLL \ + SRC/MODULES/BLACKLIST.DLL \ + SRC/MODULES/JOINTHROTTLE.DLL \ + SRC/MODULES/ANTIRANDOM.DLL \ + SRC/MODULES/HIDESERVER.DLL \ + SRC/MODULES/JUMPSERVER.DLL \ + SRC/MODULES/IRCOPS.DLL \ + SRC/MODULES/STAFF.DLL \ + SRC/MODULES/NOCODES.DLL \ + SRC/MODULES/CHARSYS.DLL \ + SRC/MODULES/ANTIMIXEDUTF8.DLL \ + SRC/MODULES/AUTHPROMPT.DLL \ + SRC/MODULES/SINFO.DLL \ + SRC/MODULES/REPUTATION.DLL \ + SRC/MODULES/CONNTHROTTLE.DLL \ + SRC/MODULES/CHANMODES/CENSOR.DLL \ + SRC/MODULES/CHANMODES/DELAYJOIN.DLL \ + SRC/MODULES/CHANMODES/FLOODPROT.DLL \ + SRC/MODULES/CHANMODES/ISSECURE.DLL \ + SRC/MODULES/CHANMODES/LINK.DLL \ + SRC/MODULES/CHANMODES/NOCOLOR.DLL \ + SRC/MODULES/CHANMODES/NOCTCP.DLL \ + SRC/MODULES/CHANMODES/NOINVITE.DLL \ + SRC/MODULES/CHANMODES/NOKICK.DLL \ + SRC/MODULES/CHANMODES/NOKNOCK.DLL \ + SRC/MODULES/CHANMODES/NONICKCHANGE.DLL \ + SRC/MODULES/CHANMODES/NONOTICE.DLL \ + SRC/MODULES/CHANMODES/OPERONLY.DLL \ + SRC/MODULES/CHANMODES/PERMANENT.DLL \ + SRC/MODULES/CHANMODES/REGONLY.DLL \ + SRC/MODULES/CHANMODES/REGONLYSPEAK.DLL \ + SRC/MODULES/CHANMODES/SECUREONLY.DLL \ + SRC/MODULES/CHANMODES/STRIPCOLOR.DLL \ + SRC/MODULES/CHANMODES/HISTORY.DLL \ + SRC/MODULES/USERMODES/CENSOR.DLL \ + SRC/MODULES/USERMODES/NOCTCP.DLL \ + SRC/MODULES/USERMODES/BOT.DLL \ + SRC/MODULES/USERMODES/SERVICEBOT.DLL \ + SRC/MODULES/USERMODES/SHOWWHOIS.DLL \ + SRC/MODULES/USERMODES/PRIVACY.DLL \ + SRC/MODULES/USERMODES/NOKICK.DLL \ + SRC/MODULES/USERMODES/REGONLYMSG.DLL \ + SRC/MODULES/USERMODES/PRIVDEAF.DLL \ + SRC/MODULES/USERMODES/SECUREONLYMSG.DLL \ + SRC/MODULES/SNOMASKS/DCCREJECT.DLL \ + SRC/MODULES/EXTBANS/ACCOUNT.DLL \ + SRC/MODULES/EXTBANS/INCHANNEL.DLL \ + SRC/MODULES/EXTBANS/JOIN.DLL \ + SRC/MODULES/EXTBANS/NICKCHANGE.DLL \ + SRC/MODULES/EXTBANS/QUIET.DLL \ + SRC/MODULES/EXTBANS/REALNAME.DLL \ + SRC/MODULES/EXTBANS/OPERCLASS.DLL \ + SRC/MODULES/EXTBANS/CERTFP.DLL \ + SRC/MODULES/EXTBANS/TEXTBAN.DLL \ + SRC/MODULES/EXTBANS/MSGBYPASS.DLL \ + SRC/MODULES/EXTBANS/TIMEDBAN.DLL \ + SRC/MODULES/EXTBANS/PARTMSG.DLL \ + SRC/MODULES/ACCOUNT-NOTIFY.DLL \ + SRC/MODULES/MESSAGE-TAGS.DLL \ + SRC/MODULES/BATCH.DLL \ + SRC/MODULES/ACCOUNT-TAG.DLL \ + SRC/MODULES/LABELED-RESPONSE.DLL \ + SRC/MODULES/LINK-SECURITY.DLL \ + SRC/MODULES/MESSAGE-IDS.DLL \ + SRC/MODULES/PLAINTEXT-POLICY.DLL \ + SRC/MODULES/SERVER-TIME.DLL \ + SRC/MODULES/STS.DLL \ + SRC/MODULES/TKLDB.DLL \ + SRC/MODULES/CHANNELDB.DLL \ + SRC/MODULES/HISTORY_BACKEND_MEM.DLL \ + SRC/MODULES/HISTORY_BACKEND_NULL.DLL \ + SRC/MODULES/RESTRICT-COMMANDS.DLL \ + SRC/MODULES/RMTKL.DLL \ + SRC/MODULES/ECHO-MESSAGE.DLL \ + SRC/MODULES/USERIP-TAG.DLL \ + SRC/MODULES/USERHOST-TAG.DLL \ + SRC/MODULES/REQUIRE-MODULE.DLL \ + SRC/MODULES/IDENT_LOOKUP.DLL \ + SRC/MODULES/HISTORY.DLL + + +ALL: CONF UNREALSVC.EXE UnrealIRCd.exe MODULES + +CLEAN: + -@erase *.obj >NUL + -@erase src\*.obj >NUL + -@erase src\win.res >NUL + -@erase src\version.c >NUL + -@erase src\windows\*.obj >NUL + -@erase src\modules\*.obj >NUL + -@erase src\modules\*.lib >NUL + -@erase src\modules\*.pdb >NUL + -@erase src\modules\*.dll >NUL + -@erase src\modules\*.exp >NUL + -@erase src\modules\*.ilk >NUL + -@erase src\modules\chanmodes\*.obj >NUL + -@erase src\modules\chanmodes\*.lib >NUL + -@erase src\modules\chanmodes\*.pdb >NUL + -@erase src\modules\chanmodes\*.dll >NUL + -@erase src\modules\chanmodes\*.exp >NUL + -@erase src\modules\chanmodes\*.ilk >NUL + -@erase src\modules\usermodes\*.obj >NUL + -@erase src\modules\usermodes\*.lib >NUL + -@erase src\modules\usermodes\*.pdb >NUL + -@erase src\modules\usermodes\*.dll >NUL + -@erase src\modules\usermodes\*.exp >NUL + -@erase src\modules\usermodes\*.ilk >NUL + -@erase src\modules\snomasks\*.obj >NUL + -@erase src\modules\snomasks\*.lib >NUL + -@erase src\modules\snomasks\*.pdb >NUL + -@erase src\modules\snomasks\*.dll >NUL + -@erase src\modules\snomasks\*.exp >NUL + -@erase src\modules\snomasks\*.ilk >NUL + -@erase src\modules\extbans\*.obj >NUL + -@erase src\modules\extbans\*.lib >NUL + -@erase src\modules\extbans\*.pdb >NUL + -@erase src\modules\extbans\*.dll >NUL + -@erase src\modules\extbans\*.exp >NUL + -@erase src\modules\extbans\*.ilk >NUL + -@erase .\*.exe >NUL + -@erase UnrealIRCd.lib >NUL + +./UNREALSVC.EXE: SRC/UNREALSVC.OBJ SRC/WINDOWS/UNREALSVC.RES + $(LINK) $(DBGLFLAGST) advapi32.lib src/unrealsvc.obj src/windows/unrealsvc.res + +CONF: + -@copy include\windows\setup.h include\setup.h >NUL + $(CC) src/windows/config.c + -@config.exe + + + +./UnrealIRCd.exe: $(OBJ_FILES) src/windows/win.res + $(LINK) $(LFLAGS) $(OBJ_FILES) src/windows/win.res /MAP + -@erase src\windows\win.res + $(MT) -manifest src\windows\UnrealIRCd.exe.manifest -outputresource:UnrealIRCd.exe;1 +!IFNDEF DEBUGEXTRA + @echo Standard version built +!ELSE + @echo Extra-Debug version built ... +!ENDIF + +#Source files + +src/version.obj: src/version.c + $(CC) $(CFLAGS) src/version.c + +src/parse.obj: src/parse.c $(INCLUDES) + $(CC) $(CFLAGS) src/parse.c + +src/socket.obj: src/socket.c $(INCLUDES) + $(CC) $(CFLAGS) src/socket.c + +src/dbuf.obj: src/dbuf.c $(INCLUDES) ./include/dbuf.h + $(CC) $(CFLAGS) src/dbuf.c + +src/ircsprintf.obj: src/ircsprintf.c $(INCLUDES) + $(CC) $(CFLAGS) src/ircsprintf.c + +src/fdlist.obj: src/fdlist.c $(INCLUDES) + $(CC) $(CFLAGS) src/fdlist.c + +src/dynconf.obj: src/dynconf.c $(INCLUDES) ./include/dbuf.h \ + ./include/channel.h ./include/whowas.h + $(CC) $(CFLAGS) src/dynconf.c + +src/send.obj: src/send.c $(INCLUDES) + $(CC) $(CFLAGS) src/send.c + +src/match.obj: src/match.c $(INCLUDES) + $(CC) $(CFLAGS) src/match.c + +src/support.obj: src/support.c $(INCLUDES) + $(CC) $(CFLAGS) src/support.c + +src/channel.obj: src/channel.c $(INCLUDES) ./include/channel.h + $(CC) $(CFLAGS) src/channel.c + +src/class.obj: src/class.c $(INCLUDES) ./include/class.h + $(CC) $(CFLAGS) src/class.c + +src/ircd.obj: src/ircd.c $(INCLUDES) + $(CC) $(CFLAGS) src/ircd.c + +src/list.obj: src/list.c $(INCLUDES) + $(CC) $(CFLAGS) src/list.c + +src/dns.obj: src/dns.c $(INCLUDES) + $(CC) $(CFLAGS) src/dns.c + +src/conf.obj: src/conf.c $(INCLUDES) + $(CC) $(CFLAGS) src/conf.c + +src/conf_preprocessor.obj: src/conf_preprocessor.c $(INCLUDES) + $(CC) $(CFLAGS) src/conf_preprocessor.c + +src/debug.obj: src/debug.c $(INCLUDES) + $(CC) $(CFLAGS) src/debug.c + +src/numeric.obj: src/numeric.c $(INCLUDES) + $(CC) $(CFLAGS) src/numeric.c + +src/misc.obj: src/misc.c $(INCLUDES) ./include/dbuf.h + $(CC) $(CFLAGS) src/misc.c + +src/scache.obj: src/scache.c $(INCLUDES) ./include/dbuf.h + $(CC) $(CFLAGS) src/scache.c + +src/socks.obj: src/socks.c $(INCLUDES) + $(CC) $(CFLAGS) src/socks.c + +src/aliases.obj: src/aliases.c $(INCLUDES) + $(CC) $(CFLAGS) src/aliases.c + +src/user.obj: src/user.c $(INCLUDES) ./include/dbuf.h \ + ./include/channel.h ./include/whowas.h + $(CC) $(CFLAGS) src/user.c + +src/serv.obj: src/serv.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h + $(CC) $(CFLAGS) src/serv.c + +src/whowas.obj: src/whowas.c $(INCLUDES) ./include/dbuf.h ./include/whowas.h + $(CC) $(CFLAGS) src/whowas.c + +src/hash.obj: src/hash.c $(INCLUDES) + $(CC) $(CFLAGS) src/hash.c + +src/crule.obj: src/crule.c $(INCLUDES) + $(CC) $(CFLAGS) src/crule.c + +src/gui.obj: src/windows/gui.c $(INCLUDES) ./include/resource.h + $(CC) $(CFLAGS) src/windows/gui.c + +src/rtf.obj: src/windows/rtf.c $(INCLUDES) ./src/windows/win.h + $(CC) $(CFLAGS) src/windows/rtf.c + +src/editor.obj: src/windows/editor.c $(INCLUDES) ./include/resource.h ./src/windows/win.h + $(CC) $(CFLAGS) src/windows/editor.c + +src/service.obj: src/windows/service.c $(INCLUDES) + $(CC) $(CFLAGS) src/windows/service.c + +src/windebug.obj: src/windows/windebug.c $(INCLUDES) + $(CC) $(CFLAGS) src/windows/windebug.c + +src/win.obj: src/windows/win.c $(INCLUDES) + $(CC) $(CFLAGS) src/windows/win.c + +src/unrealsvc.obj: src/windows/unrealsvc.c $(INCLUDES) + $(CC) $(CFLAGSST) src/windows/unrealsvc.c + +src/modules.obj: src/modules.c $(INCLUDES) + $(CC) $(CFLAGS) src/modules.c + +src/api-event.obj: src/api-event.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-event.c + +src/api-usermode.obj: src/api-usermode.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-usermode.c + +src/auth.obj: src/auth.c $(INCLUDES) + $(CC) $(CFLAGS) src/auth.c + +src/random.obj: src/random.c $(INCLUDES) + $(CC) $(CFLAGS) src/random.c + +src/api-channelmode.obj: src/api-channelmode.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-channelmode.c + +src/api-moddata.obj: src/api-moddata.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-moddata.c + +src/mempool.obj: src/mempool.c $(INCLUDES) + $(CC) $(CFLAGS) src/mempool.c + +src/dispatch.obj: src/dispatch.c $(INCLUDES) + $(CC) $(CFLAGS) src/dispatch.c + +src/url.obj: src/url.c $(INCLUDES) ./include/url.h + $(CC) $(CFLAGS) src/url.c + +src/api-extban.obj: src/api-extban.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-extban.c + +src/api-efunctions.obj: src/api-efunctions.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-efunctions.c + +src/api-isupport.obj: src/api-isupport.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-isupport.c + +src/api-command.obj: src/api-command.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-command.c + +src/api-clicap.obj: src/api-clicap.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-clicap.c + +src/api-messagetag.obj: src/api-messagetag.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-messagetag.c + +src/api-history-backend.obj: src/api-history-backend.c $(INCLUDES) + $(CC) $(CFLAGS) src/api-history-backend.c + +src/tls.obj: src/tls.c $(INCLUDES) + $(CC) $(CFLAGS) src/tls.c + +src/crypt_blowfish.obj: src/crypt_blowfish.c $(INCLUDES) + $(CC) $(CFLAGS) src/crypt_blowfish.c + +src/operclass.obj: src/operclass.c $(INCLUDES) ./include/dbuf.h + $(CC) $(CFLAGS) src/operclass.c + +src/updconf.obj: src/updconf.c $(INCLUDES) ./include/dbuf.h + $(CC) $(CFLAGS) src/updconf.c + +src/utf8.obj: src/utf8.c $(INCLUDES) ./include/dbuf.h + $(CC) $(CFLAGS) src/utf8.c + +src/windows/win.res: src/windows/wingui.rc + $(RC) /l 0x409 /fosrc/windows/win.res /i ./include /i ./src \ + /d NDEBUG src/windows/wingui.rc + +src/windows/unrealsvc.res: src/windows/unrealsvc.rc + $(RC) /l 0x409 /fosrc/windows/unrealsvc.res /i ./include /i ./src \ + /d NDEBUG src/windows/unrealsvc.rc + +################# Modules ################# + +CUSTOMMODULE: src/modules/third/$(MODULEFILE).c + $(CC) $(MODCFLAGS) src/modules/third/$(MODULEFILE).c /Fesrc/modules/third/ /Fosrc/modules/third/ $(MODLFLAGS) \ + /OUT:src/modules/third/$(MODULEFILE).dll $(EXLIBS) + +SYMBOLFILE: + $(CC) src/windows/def-clean.c + dlltool --output-def UnrealIRCd.def.in --export-all-symbols $(EXP_OBJ_FILES) + def-clean UnrealIRCd.def.in UnrealIRCd.def + +MODULES: $(DLL_FILES) + +src/modules/cloak.dll: src/modules/cloak.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/cloak.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/chghost.dll: src/modules/chghost.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/chghost.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/chgident.dll: src/modules/chgident.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/chgident.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/sdesc.dll: src/modules/sdesc.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/sdesc.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/sethost.dll: src/modules/sethost.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/sethost.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/setident.dll: src/modules/setident.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/setident.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/setname.dll: src/modules/setname.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/setname.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svsmotd.dll: src/modules/svsmotd.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svsmotd.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svsmode.dll: src/modules/svsmode.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svsmode.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/tkl.dll: src/modules/tkl.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/tkl.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/swhois.dll: src/modules/swhois.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/swhois.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svsnline.dll: src/modules/svsnline.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svsnline.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/who_old.dll: src/modules/who_old.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/who_old.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/whox.dll: src/modules/whox.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/whox.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/away.dll: src/modules/away.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/away.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/mkpasswd.dll: src/modules/mkpasswd.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/mkpasswd.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svsnoop.dll: src/modules/svsnoop.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svsnoop.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svsnick.dll: src/modules/svsnick.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svsnick.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/chgname.dll: src/modules/chgname.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/chgname.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/kill.dll: src/modules/kill.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/kill.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/lag.dll: src/modules/lag.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/lag.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/message.dll: src/modules/message.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/message.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/oper.dll: src/modules/oper.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/oper.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/pingpong.dll: src/modules/pingpong.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/pingpong.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/quit.dll: src/modules/quit.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/quit.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/sendumode.dll: src/modules/sendumode.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/sendumode.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/sqline.dll: src/modules/sqline.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/sqline.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/tsctl.dll: src/modules/tsctl.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/tsctl.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/unsqline.dll: src/modules/unsqline.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/unsqline.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/whois.dll: src/modules/whois.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/whois.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/vhost.dll: src/modules/vhost.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/vhost.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/cycle.dll: src/modules/cycle.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/cycle.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svsjoin.dll: src/modules/svsjoin.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svsjoin.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svspart.dll: src/modules/svspart.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svspart.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svslusers.dll: src/modules/svslusers.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svslusers.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svswatch.dll: src/modules/svswatch.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svswatch.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svssilence.dll: src/modules/svssilence.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svssilence.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/sendsno.dll: src/modules/sendsno.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/sendsno.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svssno.dll: src/modules/svssno.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svssno.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/sajoin.dll: src/modules/sajoin.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/sajoin.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/sapart.dll: src/modules/sapart.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/sapart.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/samode.dll: src/modules/samode.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/samode.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/kick.dll: src/modules/kick.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/kick.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/topic.dll: src/modules/topic.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/topic.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/invite.dll: src/modules/invite.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/invite.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/list.dll: src/modules/list.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/list.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/time.dll: src/modules/time.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/time.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svskill.dll: src/modules/svskill.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svskill.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/sjoin.dll: src/modules/sjoin.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/sjoin.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/pass.dll: src/modules/pass.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/pass.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/userhost.dll: src/modules/userhost.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/userhost.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/ison.dll: src/modules/ison.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/ison.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/silence.dll: src/modules/silence.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/silence.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/knock.dll: src/modules/knock.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/knock.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/umode2.dll: src/modules/umode2.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/umode2.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/squit.dll: src/modules/squit.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/squit.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/protoctl.dll: src/modules/protoctl.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/protoctl.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/addmotd.dll: src/modules/addmotd.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/addmotd.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/addomotd.dll: src/modules/addomotd.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/addomotd.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/wallops.dll: src/modules/wallops.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/wallops.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/admin.dll: src/modules/admin.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/admin.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/globops.dll: src/modules/globops.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/globops.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/locops.dll: src/modules/locops.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/locops.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/trace.dll: src/modules/trace.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/trace.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/netinfo.dll: src/modules/netinfo.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/netinfo.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/links.dll: src/modules/links.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/links.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/help.dll: src/modules/help.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/help.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/rules.dll: src/modules/rules.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/rules.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/close.dll: src/modules/close.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/close.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/map.dll: src/modules/map.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/map.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/eos.dll: src/modules/eos.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/eos.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/server.dll: src/modules/server.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/server.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/stats.dll: src/modules/stats.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/stats.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/dccdeny.dll: src/modules/dccdeny.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/dccdeny.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/whowas.dll: src/modules/whowas.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/whowas.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/connect.dll: src/modules/connect.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/connect.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/dccallow.dll: src/modules/dccallow.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/dccallow.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/userip.dll: src/modules/userip.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/userip.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/nick.dll: src/modules/nick.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/nick.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/user.dll: src/modules/user.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/user.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/mode.dll: src/modules/mode.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/mode.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/watch.dll: src/modules/watch.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/watch.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/part.dll: src/modules/part.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/part.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/join.dll: src/modules/join.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/join.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/motd.dll: src/modules/motd.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/motd.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/opermotd.dll: src/modules/opermotd.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/opermotd.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/botmotd.dll: src/modules/botmotd.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/botmotd.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/lusers.dll: src/modules/lusers.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/lusers.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/names.dll: src/modules/names.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/names.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/md.dll: src/modules/md.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/md.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/certfp.dll: src/modules/certfp.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/certfp.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/webirc.dll: src/modules/webirc.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/webirc.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/websocket.dll: src/modules/websocket.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/websocket.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/blacklist.dll: src/modules/blacklist.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/blacklist.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/jointhrottle.dll: src/modules/jointhrottle.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/jointhrottle.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/svsnolag.dll: src/modules/svsnolag.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/svsnolag.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/starttls.dll: src/modules/starttls.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/starttls.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/webredir.dll: src/modules/webredir.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/webredir.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/cap.dll: src/modules/cap.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/cap.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/sasl.dll: src/modules/sasl.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/sasl.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/tls_antidos.dll: src/modules/tls_antidos.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/tls_antidos.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/antirandom.dll: src/modules/antirandom.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/antirandom.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/hideserver.dll: src/modules/hideserver.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/hideserver.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/jumpserver.dll: src/modules/jumpserver.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/jumpserver.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/ircops.dll: src/modules/ircops.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/ircops.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/staff.dll: src/modules/staff.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/staff.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/nocodes.dll: src/modules/nocodes.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/nocodes.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/charsys.dll: src/modules/charsys.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/charsys.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/antimixedutf8.dll: src/modules/antimixedutf8.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/antimixedutf8.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/authprompt.dll: src/modules/authprompt.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/authprompt.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/sinfo.dll: src/modules/sinfo.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/sinfo.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/reputation.dll: src/modules/reputation.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/reputation.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/connthrottle.dll: src/modules/connthrottle.c $(INCLUDES) + $(CC) $(MODCFLAGS) src/modules/connthrottle.c /Fesrc/modules/ /Fosrc/modules/ $(MODLFLAGS) + +src/modules/chanmodes/censor.dll: src/modules/chanmodes/censor.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/censor.c $(MODLFLAGS) + +src/modules/chanmodes/delayjoin.dll: src/modules/chanmodes/delayjoin.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/delayjoin.c $(MODLFLAGS) + +src/modules/chanmodes/floodprot.dll: src/modules/chanmodes/floodprot.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/floodprot.c $(MODLFLAGS) + +src/modules/chanmodes/issecure.dll: src/modules/chanmodes/issecure.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/issecure.c $(MODLFLAGS) + +src/modules/chanmodes/link.dll: src/modules/chanmodes/link.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/link.c $(MODLFLAGS) + +src/modules/chanmodes/nocolor.dll: src/modules/chanmodes/nocolor.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/nocolor.c $(MODLFLAGS) + +src/modules/chanmodes/noctcp.dll: src/modules/chanmodes/noctcp.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/noctcp.c $(MODLFLAGS) + +src/modules/chanmodes/noinvite.dll: src/modules/chanmodes/noinvite.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/noinvite.c $(MODLFLAGS) + +src/modules/chanmodes/nokick.dll: src/modules/chanmodes/nokick.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/nokick.c $(MODLFLAGS) + +src/modules/chanmodes/noknock.dll: src/modules/chanmodes/noknock.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/noknock.c $(MODLFLAGS) + +src/modules/chanmodes/nonickchange.dll: src/modules/chanmodes/nonickchange.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/nonickchange.c $(MODLFLAGS) + +src/modules/chanmodes/nonotice.dll: src/modules/chanmodes/nonotice.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/nonotice.c $(MODLFLAGS) + +src/modules/chanmodes/operonly.dll: src/modules/chanmodes/operonly.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/operonly.c $(MODLFLAGS) + +src/modules/chanmodes/permanent.dll: src/modules/chanmodes/permanent.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/permanent.c $(MODLFLAGS) + +src/modules/chanmodes/regonly.dll: src/modules/chanmodes/regonly.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/regonly.c $(MODLFLAGS) + +src/modules/chanmodes/regonlyspeak.dll: src/modules/chanmodes/regonlyspeak.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/regonlyspeak.c $(MODLFLAGS) + +src/modules/chanmodes/secureonly.dll: src/modules/chanmodes/secureonly.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/secureonly.c $(MODLFLAGS) + +src/modules/chanmodes/stripcolor.dll: src/modules/chanmodes/stripcolor.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/stripcolor.c $(MODLFLAGS) + +src/modules/chanmodes/history.dll: src/modules/chanmodes/history.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/chanmodes/ /Fesrc/modules/chanmodes/ src/modules/chanmodes/history.c $(MODLFLAGS) + +src/modules/usermodes/censor.dll: src/modules/usermodes/censor.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/usermodes/ /Fesrc/modules/usermodes/ src/modules/usermodes/censor.c $(MODLFLAGS) + +src/modules/usermodes/noctcp.dll: src/modules/usermodes/noctcp.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/usermodes/ /Fesrc/modules/usermodes/ src/modules/usermodes/noctcp.c $(MODLFLAGS) + +src/modules/usermodes/bot.dll: src/modules/usermodes/bot.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/usermodes/ /Fesrc/modules/usermodes/ src/modules/usermodes/bot.c $(MODLFLAGS) + +src/modules/usermodes/servicebot.dll: src/modules/usermodes/servicebot.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/usermodes/ /Fesrc/modules/usermodes/ src/modules/usermodes/servicebot.c $(MODLFLAGS) + +src/modules/usermodes/showwhois.dll: src/modules/usermodes/showwhois.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/usermodes/ /Fesrc/modules/usermodes/ src/modules/usermodes/showwhois.c $(MODLFLAGS) + +src/modules/usermodes/privacy.dll: src/modules/usermodes/privacy.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/usermodes/ /Fesrc/modules/usermodes/ src/modules/usermodes/privacy.c $(MODLFLAGS) + +src/modules/usermodes/nokick.dll: src/modules/usermodes/nokick.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/usermodes/ /Fesrc/modules/usermodes/ src/modules/usermodes/nokick.c $(MODLFLAGS) + +src/modules/usermodes/regonlymsg.dll: src/modules/usermodes/regonlymsg.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/usermodes/ /Fesrc/modules/usermodes/ src/modules/usermodes/regonlymsg.c $(MODLFLAGS) + +src/modules/usermodes/privdeaf.dll: src/modules/usermodes/privdeaf.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/usermodes/ /Fesrc/modules/usermodes/ src/modules/usermodes/privdeaf.c $(MODLFLAGS) + +src/modules/usermodes/secureonlymsg.dll: src/modules/usermodes/secureonlymsg.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/usermodes/ /Fesrc/modules/usermodes/ src/modules/usermodes/secureonlymsg.c $(MODLFLAGS) + +src/modules/snomasks/dccreject.dll: src/modules/snomasks/dccreject.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/snomasks/ /Fesrc/modules/snomasks/ src/modules/snomasks/dccreject.c $(MODLFLAGS) + +src/modules/extbans/account.dll: src/modules/extbans/account.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/account.c $(MODLFLAGS) + +src/modules/extbans/inchannel.dll: src/modules/extbans/inchannel.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/inchannel.c $(MODLFLAGS) + +src/modules/extbans/join.dll: src/modules/extbans/join.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/join.c $(MODLFLAGS) + +src/modules/extbans/nickchange.dll: src/modules/extbans/nickchange.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/nickchange.c $(MODLFLAGS) + +src/modules/extbans/quiet.dll: src/modules/extbans/quiet.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/quiet.c $(MODLFLAGS) + +src/modules/extbans/realname.dll: src/modules/extbans/realname.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/realname.c $(MODLFLAGS) + +src/modules/extbans/operclass.dll: src/modules/extbans/operclass.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/operclass.c $(MODLFLAGS) + +src/modules/extbans/certfp.dll: src/modules/extbans/certfp.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/certfp.c $(MODLFLAGS) + +src/modules/extbans/textban.dll: src/modules/extbans/textban.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/textban.c $(MODLFLAGS) + +src/modules/extbans/msgbypass.dll: src/modules/extbans/msgbypass.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/msgbypass.c $(MODLFLAGS) + +src/modules/extbans/timedban.dll: src/modules/extbans/timedban.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/timedban.c $(MODLFLAGS) + +src/modules/extbans/partmsg.dll: src/modules/extbans/partmsg.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/extbans/ /Fesrc/modules/extbans/ src/modules/extbans/partmsg.c $(MODLFLAGS) + +src/modules/account-notify.dll: src/modules/account-notify.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/account-notify.c $(MODLFLAGS) + +src/modules/message-tags.dll: src/modules/message-tags.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/message-tags.c $(MODLFLAGS) + +src/modules/batch.dll: src/modules/batch.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/batch.c $(MODLFLAGS) + +src/modules/account-tag.dll: src/modules/account-tag.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/account-tag.c $(MODLFLAGS) + +src/modules/labeled-response.dll: src/modules/labeled-response.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/labeled-response.c $(MODLFLAGS) + +src/modules/link-security.dll: src/modules/link-security.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/link-security.c $(MODLFLAGS) + +src/modules/message-ids.dll: src/modules/message-ids.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/message-ids.c $(MODLFLAGS) + +src/modules/plaintext-policy.dll: src/modules/plaintext-policy.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/plaintext-policy.c $(MODLFLAGS) + +src/modules/server-time.dll: src/modules/server-time.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/server-time.c $(MODLFLAGS) + +src/modules/sts.dll: src/modules/sts.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/sts.c $(MODLFLAGS) + +src/modules/tkldb.dll: src/modules/tkldb.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/tkldb.c $(MODLFLAGS) + +src/modules/channeldb.dll: src/modules/channeldb.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/channeldb.c $(MODLFLAGS) + +src/modules/history_backend_mem.dll: src/modules/history_backend_mem.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/history_backend_mem.c $(MODLFLAGS) + +src/modules/history_backend_null.dll: src/modules/history_backend_null.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/history_backend_null.c $(MODLFLAGS) + +src/modules/restrict-commands.dll: src/modules/restrict-commands.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/restrict-commands.c $(MODLFLAGS) + +src/modules/rmtkl.dll: src/modules/rmtkl.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/rmtkl.c $(MODLFLAGS) + +src/modules/echo-message.dll: src/modules/echo-message.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/echo-message.c $(MODLFLAGS) + +src/modules/userip-tag.dll: src/modules/userip-tag.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/userip-tag.c $(MODLFLAGS) + +src/modules/userhost-tag.dll: src/modules/userhost-tag.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/userhost-tag.c $(MODLFLAGS) + +src/modules/require-module.dll: src/modules/require-module.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/require-module.c $(MODLFLAGS) + +src/modules/ident_lookup.dll: src/modules/ident_lookup.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/ident_lookup.c $(MODLFLAGS) + +src/modules/history.dll: src/modules/history.c $(INCLUDES) + $(CC) $(MODCFLAGS) /Fosrc/modules/ /Fesrc/modules/ src/modules/history.c $(MODLFLAGS) + +dummy: diff --git a/README.md b/README.md new file mode 100644 index 0000000..cf4a267 --- /dev/null +++ b/README.md @@ -0,0 +1,58 @@ +[![Twitter Follow](https://img.shields.io/twitter/follow/Unreal_IRCd.svg?style=social&label=Follow)](https://twitter.com/Unreal_IRCd) + +## About UnrealIRCd +UnrealIRCd is an Open Source IRC Server, serving thousands of networks since 1999. +It runs on Linux, OS X and Windows and is currently the most widely deployed IRCd +with a market share of 42%. UnrealIRCd is a highly advanced IRCd with a strong +focus on modularity, an advanced and highly configurable configuration file. +Key features include SSL/TLS, cloaking, its advanced anti-flood and anti-spam systems, +swear filtering and module support. We are also particularly proud on our extensive +online documentation. + +## How to get started +Please consult our excellent online documentation at https://www.unrealircd.org/docs/ +when setting up the IRCd! + +### Step 1: Installation +#### Windows +Simply download the UnrealIRCd Windows version from www.unrealircd.org + +Alternatively you can compile UnrealIRCd for Windows yourself. However this is not straightforward and thus not recommended. + +#### *BSD/Linux/macOS +Do the following steps under a separate account for running UnrealIRCd, +[do NOT compile or run as root](https://www.unrealircd.org/docs/Do_not_run_as_root). + +### Step 1: Compile the IRCd + +* Run `./Config` +* Run `make` +* Run `make install` +* Now change to the directory where you installed UnrealIRCd, e.g. `cd /home/xxxx/unrealircd` + +### Step 2: Configuration +Configuration files are stored in the conf/ folder by default (eg: /home/xxxx/unrealircd/conf) + +#### Create a configuration file +If you are new, then you need to create your own configuration file: +Copy conf/examples/example.conf to conf/ and call it unrealircd.conf. +Then open it in an editor and carefully modify it using the documentation and FAQ as a guide (see below). + +### Step 3: Booting + +#### Linux/*BSD/macOS +Run `./unrealircd start` in the directory where you installed UnrealIRCd. + +#### Windows +Start -> All Programs -> UnrealIRCd -> UnrealIRCd + +## Documentation & FAQ +You can find the **documentation** online at: https://www.unrealircd.org/docs/ + +We also have a good **FAQ**: https://www.unrealircd.org/docs/FAQ + +## Website, support, and other links ## +* https://www.unrealircd.org - Our main website +* https://forums.unrealircd.org - Support +* https://bugs.unrealircd.org - Bug tracker +* ircs://irc.unrealircd.org:6697/unreal-support - IRC support diff --git a/autoconf/Makefile b/autoconf/Makefile new file mode 100644 index 0000000..5402a68 --- /dev/null +++ b/autoconf/Makefile @@ -0,0 +1,3 @@ +all: + @autoconf + cp configure .. \ No newline at end of file diff --git a/autoconf/config.guess b/autoconf/config.guess new file mode 100644 index 0000000..f7eb141 --- /dev/null +++ b/autoconf/config.guess @@ -0,0 +1,1438 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2015 Free Software Foundation, Inc. + +timestamp='2015-03-04' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2015 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > $dummy.c ; + for c in cc gcc c89 c99 ; do + if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "${UNAME_SYSTEM}" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval $set_cc_for_build + cat <<-EOF > $dummy.c + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^LIBC' | sed 's, ,,g'` + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + /sbin/$sysctl 2>/dev/null || \ + /usr/sbin/$sysctl 2>/dev/null || \ + echo unknown)` + case "${UNAME_MACHINE_ARCH}" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo ${UNAME_MACHINE_ARCH} | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo ${UNAME_MACHINE_ARCH} | sed -ne 's,^.*\(eb\)$,\1,p'` + machine=${arch}${endian}-unknown + ;; + *) machine=${UNAME_MACHINE_ARCH}-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently, or will in the future. + case "${UNAME_MACHINE_ARCH}" in + arm*|earm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval $set_cc_for_build + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "${UNAME_MACHINE_ARCH}" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo ${UNAME_MACHINE_ARCH} | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "${UNAME_VERSION}" in + Debian*) + release='-gnu' + ;; + *) + release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "${machine}-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-bitrig${UNAME_RELEASE} + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} + exit ;; + *:ekkoBSD:*:*) + echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} + exit ;; + *:SolidBSD:*:*) + echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd${UNAME_RELEASE} + exit ;; + *:MirBSD:*:*) + echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE="alpha" ;; + "EV4.5 (21064)") + UNAME_MACHINE="alpha" ;; + "LCA4 (21066/21068)") + UNAME_MACHINE="alpha" ;; + "EV5 (21164)") + UNAME_MACHINE="alphaev5" ;; + "EV5.6 (21164A)") + UNAME_MACHINE="alphaev56" ;; + "EV5.6 (21164PC)") + UNAME_MACHINE="alphapca56" ;; + "EV5.7 (21164PC)") + UNAME_MACHINE="alphapca57" ;; + "EV6 (21264)") + UNAME_MACHINE="alphaev6" ;; + "EV6.7 (21264A)") + UNAME_MACHINE="alphaev67" ;; + "EV6.8CB (21264C)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8AL (21264B)") + UNAME_MACHINE="alphaev68" ;; + "EV6.8CX (21264D)") + UNAME_MACHINE="alphaev68" ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE="alphaev69" ;; + "EV7 (21364)") + UNAME_MACHINE="alphaev7" ;; + "EV7.9 (21364A)") + UNAME_MACHINE="alphaev79" ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Alpha\ *:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # Should we change UNAME_MACHINE based on the output of uname instead + # of the specific Alpha model? + echo alpha-pc-interix + exit ;; + 21064:Windows_NT:50:3) + echo alpha-dec-winnt3.5 + exit ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo ${UNAME_MACHINE}-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix${UNAME_RELEASE} + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux${UNAME_RELEASE} + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval $set_cc_for_build + SUN_ARCH="i386" + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH="x86_64" + fi + fi + echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos${UNAME_RELEASE} + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos${UNAME_RELEASE} + ;; + sun4) + echo sparc-sun-sunos${UNAME_RELEASE} + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos${UNAME_RELEASE} + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint${UNAME_RELEASE} + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint${UNAME_RELEASE} + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint${UNAME_RELEASE} + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint${UNAME_RELEASE} + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten${UNAME_RELEASE} + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten${UNAME_RELEASE} + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix${UNAME_RELEASE} + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix${UNAME_RELEASE} + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix${UNAME_RELEASE} + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && + dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`$dummy $dummyarg` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos${UNAME_RELEASE} + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] + then + if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ + [ ${TARGET_BINARY_INTERFACE}x = x ] + then + echo m88k-dg-dgux${UNAME_RELEASE} + else + echo m88k-dg-dguxbcs${UNAME_RELEASE} + fi + else + echo i586-dg-dgux${UNAME_RELEASE} + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} + fi + echo ${IBM_ARCH}-ibm-aix${IBM_REV} + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + case "${UNAME_MACHINE}" in + 9000/31? ) HP_ARCH=m68000 ;; + 9000/[34]?? ) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "${sc_cpu_version}" in + 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 + 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "${sc_kernel_bits}" in + 32) HP_ARCH="hppa2.0n" ;; + 64) HP_ARCH="hppa2.0w" ;; + '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "${HP_ARCH}" = "" ]; then + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ ${HP_ARCH} = "hppa2.0w" ] + then + eval $set_cc_for_build + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH="hppa2.0w" + else + HP_ARCH="hppa64" + fi + fi + echo ${HP_ARCH}-hp-hpux${HPUX_REV} + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux${HPUX_REV} + exit ;; + 3050*:HI-UX:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo ${UNAME_MACHINE}-unknown-osf1mk + else + echo ${UNAME_MACHINE}-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` + FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:BSD/OS:*:*) + echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case ${UNAME_PROCESSOR} in + amd64) + echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + *) + echo ${UNAME_PROCESSOR}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; + esac + exit ;; + i*:CYGWIN*:*) + echo ${UNAME_MACHINE}-pc-cygwin + exit ;; + *:MINGW64*:*) + echo ${UNAME_MACHINE}-pc-mingw64 + exit ;; + *:MINGW*:*) + echo ${UNAME_MACHINE}-pc-mingw32 + exit ;; + *:MSYS*:*) + echo ${UNAME_MACHINE}-pc-msys + exit ;; + i*:windows32*:*) + # uname -m includes "-pc" on this system. + echo ${UNAME_MACHINE}-mingw32 + exit ;; + i*:PW*:*) + echo ${UNAME_MACHINE}-pc-pw32 + exit ;; + *:Interix*:*) + case ${UNAME_MACHINE} in + x86) + echo i586-pc-interix${UNAME_RELEASE} + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix${UNAME_RELEASE} + exit ;; + IA64) + echo ia64-unknown-interix${UNAME_RELEASE} + exit ;; + esac ;; + [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) + echo i${UNAME_MACHINE}-pc-mks + exit ;; + 8664:Windows_NT:*) + echo x86_64-pc-mks + exit ;; + i*:Windows_NT*:* | Pentium*:Windows_NT*:*) + # How do we know it's Interix rather than the generic POSIX subsystem? + # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we + # UNAME_MACHINE based on the output of uname instead of i386? + echo i586-pc-interix + exit ;; + i*:UWIN*:*) + echo ${UNAME_MACHINE}-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + p*:CYGWIN*:*) + echo powerpcle-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` + exit ;; + *:GNU:*:*) + # the GNU system + echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-${LIBC}`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-${LIBC} + exit ;; + i*86:Minix:*:*) + echo ${UNAME_MACHINE}-pc-minix + exit ;; + aarch64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC="gnulibc1" ; fi + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + arm*:Linux:*:*) + eval $set_cc_for_build + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabi + else + echo ${UNAME_MACHINE}-unknown-linux-${LIBC}eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + cris:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + crisv32:Linux:*:*) + echo ${UNAME_MACHINE}-axis-linux-${LIBC} + exit ;; + e2k:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + frv:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + hexagon:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:Linux:*:*) + echo ${UNAME_MACHINE}-pc-linux-${LIBC} + exit ;; + ia64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m32r*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + m68*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval $set_cc_for_build + sed 's/^ //' << EOF >$dummy.c + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep '^CPU'` + test x"${CPU}" != x && { echo "${CPU}-unknown-linux-${LIBC}"; exit; } + ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-${LIBC} + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-${LIBC} + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-${LIBC} + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-${LIBC} ;; + PA8*) echo hppa2.0-unknown-linux-${LIBC} ;; + *) echo hppa-unknown-linux-${LIBC} ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-${LIBC} + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-${LIBC} + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-${LIBC} + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-${LIBC} + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo ${UNAME_MACHINE}-ibm-linux-${LIBC} + exit ;; + sh64*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sh*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + tile*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + vax:Linux:*:*) + echo ${UNAME_MACHINE}-dec-linux-${LIBC} + exit ;; + x86_64:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + xtensa*:Linux:*:*) + echo ${UNAME_MACHINE}-unknown-linux-${LIBC} + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo ${UNAME_MACHINE}-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo ${UNAME_MACHINE}-unknown-stop + exit ;; + i*86:atheos:*:*) + echo ${UNAME_MACHINE}-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo ${UNAME_MACHINE}-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos${UNAME_RELEASE} + exit ;; + i*86:*DOS:*:*) + echo ${UNAME_MACHINE}-pc-msdosdjgpp + exit ;; + i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) + UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} + else + echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo ${UNAME_MACHINE}-pc-sco$UNAME_REL + else + echo ${UNAME_MACHINE}-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configury will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos${UNAME_RELEASE} + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos${UNAME_RELEASE} + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos${UNAME_RELEASE} + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos${UNAME_RELEASE} + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv${UNAME_RELEASE} + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo ${UNAME_MACHINE}-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo ${UNAME_MACHINE}-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux${UNAME_RELEASE} + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv${UNAME_RELEASE} + else + echo mips-unknown-sysv${UNAME_RELEASE} + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux${UNAME_RELEASE} + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux${UNAME_RELEASE} + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux${UNAME_RELEASE} + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux${UNAME_RELEASE} + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux${UNAME_RELEASE} + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux${UNAME_RELEASE} + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Rhapsody:*:*) + echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval $set_cc_for_build + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test `echo "$UNAME_RELEASE" | sed -e 's/\..*//'` -le 10 ; then + if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = "x86"; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-?:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk${UNAME_RELEASE} + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk${UNAME_RELEASE} + exit ;; + NSR-?:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk${UNAME_RELEASE} + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = "386"; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo ${UNAME_MACHINE}-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux${UNAME_RELEASE} + exit ;; + *:DragonFly:*:*) + echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "${UNAME_MACHINE}" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' + exit ;; + i*86:rdos:*:*) + echo ${UNAME_MACHINE}-pc-rdos + exit ;; + i*86:AROS:*:*) + echo ${UNAME_MACHINE}-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo ${UNAME_MACHINE}-unknown-esx + exit ;; +esac + +cat >&2 < in order to provide the needed +information to handle your system. + +config.guess timestamp = $timestamp + +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = ${UNAME_MACHINE} +UNAME_RELEASE = ${UNAME_RELEASE} +UNAME_SYSTEM = ${UNAME_SYSTEM} +UNAME_VERSION = ${UNAME_VERSION} +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/autoconf/config.sub b/autoconf/config.sub new file mode 100644 index 0000000..8f1229c --- /dev/null +++ b/autoconf/config.sub @@ -0,0 +1,1810 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2015 Free Software Foundation, Inc. + +timestamp='2015-03-08' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS + $0 [OPTION] ALIAS + +Canonicalize a configuration name. + +Operation modes: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2015 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo $1 + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo $1 | sed 's/-[^-]*$//'` + if [ $basic_machine != $1 ] + then os=`echo $1 | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` + ;; + -windowsnt*) + os=`echo $os | sed -e 's/windowsnt/winnt/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pdp11 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | we32k \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pyramid-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx?-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-unknown + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2* | dpx2*-bull) + basic_machine=m68k-bull + os=-sysv3 + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppa-next) + os=-nextstep3 + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + i386-vsta | vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo $basic_machine | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + m88k-omron*) + basic_machine=m88k-omron + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next ) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle | ppc-le | powerpc-little) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little | ppc64-le | powerpc64-little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh) + basic_machine=sh-hitachi + os=-hms + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + sh64) + basic_machine=sh64-unknown + ;; + sparclite-wrs | simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo $basic_machine | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + z8k-*-coff) + basic_machine=z8k-unknown + os=-sim + ;; + z80-*-coff) + basic_machine=z80-unknown + os=-sim + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp10) + # there are many clones, so DEC is not a safe bet + basic_machine=pdp10-unknown + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) + basic_machine=sparc-sun + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases + # that might get confused with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -svr4*) + os=-sysv4 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # First accept the basic system types. + # The portable systems comes first. + # Each alternative MUST END IN A *, to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* | -tirtos*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo $os | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo $os | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo $os | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -osfrose*) + os=-osfrose + ;; + -osf*) + os=-osf + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2 ) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -es1800*) + os=-ose + ;; + -xenix) + os=-xenix + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -aros*) + os=-aros + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -nacl*) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + *-be) + os=-beos + ;; + *-haiku) + os=-haiku + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next ) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-next) + os=-nextstep3 + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` + ;; +esac + +echo $basic_machine$os +exit + +# Local variables: +# eval: (add-hook 'write-file-hooks 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/autoconf/install-sh b/autoconf/install-sh new file mode 100644 index 0000000..e69de29 diff --git a/autoconf/m4/ax_check_compile_flag.m4 b/autoconf/m4/ax_check_compile_flag.m4 new file mode 100644 index 0000000..c3a8d69 --- /dev/null +++ b/autoconf/m4/ax_check_compile_flag.m4 @@ -0,0 +1,72 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_compile_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_COMPILE_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the current language's compiler +# or gives an error. (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the current language's default +# flags (e.g. CFLAGS) when the check is done. The check is thus made with +# the flags: "CFLAGS EXTRA-FLAGS FLAG". This can for example be used to +# force the compiler to issue an error when a bad flag is given. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,LINK}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 2 + +AC_DEFUN([AX_CHECK_COMPILE_FLAG], +[AC_PREREQ(2.59)dnl for _AC_LANG_PREFIX +AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_[]_AC_LANG_ABBREV[]flags_$4_$1])dnl +AC_CACHE_CHECK([whether _AC_LANG compiler accepts $1], CACHEVAR, [ + ax_check_save_flags=$[]_AC_LANG_PREFIX[]FLAGS + _AC_LANG_PREFIX[]FLAGS="$[]_AC_LANG_PREFIX[]FLAGS $4 $1" + AC_COMPILE_IFELSE([AC_LANG_PROGRAM()], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + _AC_LANG_PREFIX[]FLAGS=$ax_check_save_flags]) +AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes], + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_COMPILE_FLAGS diff --git a/autoconf/m4/ax_check_link_flag.m4 b/autoconf/m4/ax_check_link_flag.m4 new file mode 100644 index 0000000..e2d0d36 --- /dev/null +++ b/autoconf/m4/ax_check_link_flag.m4 @@ -0,0 +1,71 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_check_link_flag.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_LINK_FLAG(FLAG, [ACTION-SUCCESS], [ACTION-FAILURE], [EXTRA-FLAGS]) +# +# DESCRIPTION +# +# Check whether the given FLAG works with the linker or gives an error. +# (Warnings, however, are ignored) +# +# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on +# success/failure. +# +# If EXTRA-FLAGS is defined, it is added to the linker's default flags +# when the check is done. The check is thus made with the flags: "LDFLAGS +# EXTRA-FLAGS FLAG". This can for example be used to force the linker to +# issue an error when a bad flag is given. +# +# NOTE: Implementation based on AX_CFLAGS_GCC_OPTION. Please keep this +# macro in sync with AX_CHECK_{PREPROC,COMPILE}_FLAG. +# +# LICENSE +# +# Copyright (c) 2008 Guido U. Draheim +# Copyright (c) 2011 Maarten Bosmans +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 2 + +AC_DEFUN([AX_CHECK_LINK_FLAG], +[AS_VAR_PUSHDEF([CACHEVAR],[ax_cv_check_ldflags_$4_$1])dnl +AC_CACHE_CHECK([whether the linker accepts $1], CACHEVAR, [ + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS $4 $1" + AC_LINK_IFELSE([AC_LANG_PROGRAM()], + [AS_VAR_SET(CACHEVAR,[yes])], + [AS_VAR_SET(CACHEVAR,[no])]) + LDFLAGS=$ax_check_save_flags]) +AS_IF([test x"AS_VAR_GET(CACHEVAR)" = xyes], + [m4_default([$2], :)], + [m4_default([$3], :)]) +AS_VAR_POPDEF([CACHEVAR])dnl +])dnl AX_CHECK_LINK_FLAGS diff --git a/autoconf/m4/ax_pthread.m4 b/autoconf/m4/ax_pthread.m4 new file mode 100644 index 0000000..d383ad5 --- /dev/null +++ b/autoconf/m4/ax_pthread.m4 @@ -0,0 +1,332 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_pthread.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# +# DESCRIPTION +# +# This macro figures out how to build C programs using POSIX threads. It +# sets the PTHREAD_LIBS output variable to the threads library and linker +# flags, and the PTHREAD_CFLAGS output variable to any special C compiler +# flags that are needed. (The user can also force certain compiler +# flags/libs to be tested by setting these environment variables.) +# +# Also sets PTHREAD_CC to any special C compiler that is needed for +# multi-threaded programs (defaults to the value of CC otherwise). (This +# is necessary on AIX to use the special cc_r compiler alias.) +# +# NOTE: You are assumed to not only compile your program with these flags, +# but also link it with them as well. e.g. you should link with +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# +# If you are only building threads programs, you may wish to use these +# variables in your default LIBS, CFLAGS, and CC: +# +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" +# +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant +# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name +# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# +# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the +# PTHREAD_PRIO_INHERIT symbol is defined when compiling with +# PTHREAD_CFLAGS. +# +# ACTION-IF-FOUND is a list of shell commands to run if a threads library +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it +# is not found. If ACTION-IF-FOUND is not specified, the default action +# will define HAVE_PTHREAD. +# +# Please let the authors know if this macro fails on any platform, or if +# you have any other suggestions or comments. This macro was based on work +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help +# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by +# Alejandro Forero Cuervo to the autoconf macro repository. We are also +# grateful for the helpful feedback of numerous users. +# +# Updated for Autoconf 2.68 by Daniel Richard G. +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2011 Daniel Richard G. +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 21 + +AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) +AC_DEFUN([AX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_LANG_PUSH([C]) +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) + AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes]) + AC_MSG_RESULT([$ax_pthread_ok]) + if test x"$ax_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case ${host_os} in + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; + + darwin*) + ax_pthread_flags="-pthread $ax_pthread_flags" + ;; +esac + +# Clang doesn't consider unrecognized options an error unless we specify +# -Werror. We throw in some extra Clang-specific options to ensure that +# this doesn't happen for GCC, which also accepts -Werror. + +AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags]) +save_CFLAGS="$CFLAGS" +ax_pthread_extra_flags="-Werror" +CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])], + [AC_MSG_RESULT([yes])], + [ax_pthread_extra_flags= + AC_MSG_RESULT([no])]) +CFLAGS="$save_CFLAGS" + +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do + + case $flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $flag]) + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$flag]) + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; }], + [pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */])], + [ax_pthread_ok=yes], + []) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + AC_MSG_RESULT([$ax_pthread_ok]) + if test "x$ax_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$ax_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + AC_MSG_CHECKING([for joinable pthread attribute]) + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [int attr = $attr; return attr /* ; */])], + [attr_name=$attr; break], + []) + done + AC_MSG_RESULT([$attr_name]) + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name], + [Define to necessary symbol if this constant + uses a non-standard name on your system.]) + fi + + AC_MSG_CHECKING([if more special flags are required for pthreads]) + flag=no + case ${host_os} in + aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; + osf* | hpux*) flag="-D_REENTRANT";; + solaris*) + if test "$GCC" = "yes"; then + flag="-D_REENTRANT" + else + # TODO: What about Clang on Solaris? + flag="-mt -D_REENTRANT" + fi + ;; + esac + AC_MSG_RESULT([$flag]) + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], + [ax_cv_PTHREAD_PRIO_INHERIT], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[int i = PTHREAD_PRIO_INHERIT;]])], + [ax_cv_PTHREAD_PRIO_INHERIT=yes], + [ax_cv_PTHREAD_PRIO_INHERIT=no]) + ]) + AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"], + [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])]) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != xyes; then + case $host_os in + aix*) + AS_CASE(["x/$CC"], + [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], + [#handle absolute path differently from PATH based program lookup + AS_CASE(["x$CC"], + [x/*], + [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])], + [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])]) + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + +AC_SUBST([PTHREAD_LIBS]) +AC_SUBST([PTHREAD_CFLAGS]) +AC_SUBST([PTHREAD_CC]) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$ax_pthread_ok" = xyes; then + ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) + : +else + ax_pthread_ok=no + $2 +fi +AC_LANG_POP +])dnl AX_PTHREAD diff --git a/autoconf/m4/unreal.m4 b/autoconf/m4/unreal.m4 new file mode 100644 index 0000000..a77b095 --- /dev/null +++ b/autoconf/m4/unreal.m4 @@ -0,0 +1,254 @@ +#serial 1 + +dnl Macro: unreal_CHECK_TYPE_SIZES +dnl originally called unet_CHECK_TYPE_SIZES +dnl +dnl Check the size of several types and define a valid int16_t and int32_t. +dnl +AC_DEFUN([unreal_CHECK_TYPE_SIZES], +[dnl Check type sizes +AC_CHECK_SIZEOF(short) +AC_CHECK_SIZEOF(int) +AC_CHECK_SIZEOF(long) +if test "$ac_cv_sizeof_int" = 2 ; then + AC_CHECK_TYPE(int16_t, int) + AC_CHECK_TYPE(u_int16_t, unsigned int) +elif test "$ac_cv_sizeof_short" = 2 ; then + AC_CHECK_TYPE(int16_t, short) + AC_CHECK_TYPE(u_int16_t, unsigned short) +else + AC_MSG_ERROR([Cannot find a type with size of 16 bits]) +fi +if test "$ac_cv_sizeof_int" = 4 ; then + AC_CHECK_TYPE(int32_t, int) + AC_CHECK_TYPE(u_int32_t, unsigned int) +elif test "$ac_cv_sizeof_short" = 4 ; then + AC_CHECK_TYPE(int32_t, short) + AC_CHECK_TYPE(u_int32_t, unsigned short) +elif test "$ac_cv_sizeof_long" = 4 ; then + AC_CHECK_TYPE(int32_t, long) + AC_CHECK_TYPE(u_int32_t, unsigned long) +else + AC_MSG_ERROR([Cannot find a type with size of 32 bits]) +fi +AC_CHECK_SIZEOF(rlim_t) +if test "$ac_cv_sizeof_rlim_t" = 8 ; then +AC_DEFINE([LONG_LONG_RLIM_T], [], [Define if rlim_t is long long]) +fi +]) + +AC_DEFUN([CHECK_LIBCURL], +[ + AC_ARG_ENABLE(libcurl, + [AC_HELP_STRING([--enable-libcurl=DIR],[enable libcurl (remote include) support])], + [enable_curl=$enableval], + [enable_curl=no]) + + AS_IF([test "x$enable_curl" != "xno"], + [ + dnl sane, default directory for Operating System-managed libcURL + dnl (when --enable-libcurl is passed without any arguments). On + dnl systems with stuff in /usr/local, /usr/local/bin should already + dnl be in PATH. On sane systems, this will invoke the curl-config + dnl installed by the package manager. + CURLCONFIG="curl-config" + AS_IF([test "x$enable_curl" != "xyes"], + [CURLCONFIG="$enable_curl/bin/curl-config"]) + + AC_MSG_CHECKING([$CURLCONFIG]) + AS_IF([$CURLCONFIG --version 2>/dev/null >/dev/null], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_FAILURE([Could not find curl-config, try editing --enable-libcurl])]) + + CURLCFLAG="`$CURLCONFIG --cflags`" + CURLLIBS="`$CURLCONFIG --libs`" + + dnl This test must be this way because of #3981 + AS_IF([$CURLCONFIG --libs | grep -q -e ares], + [CURLUSESCARES="1"], + [CURLUSESCARES="0"]) + + dnl sanity warnings + AS_IF([test -z "${CURLLIBS}"], + [AC_MSG_WARN([CURLLIBS is empty, that probably means that I could not find $enable_curl/bin/curl-config])]) + + dnl Ok this is ugly, basically we need to strip the version of c-ares that curl uses + dnl because we want to use our own version (which is hopefully fully binary + dnl compatible with the curl one as well). + dnl Therefore we need to strip the cares libs in a weird way... + dnl If anyone can come up with something better and still portable (no awk!?) + dnl then let us know. -- Syzop + dnl + dnl It is dangerous to mix and match cURL with potentially ABI-incompatible versions of + dnl c-ares, just use --with-system-cares. + dnl Thus, make sure to use --with-system-cares when using system-cURL. If the user + dnl wants bundled c-ares + system libcURL, then we should filter out c-ares + dnl flags. _Only_ in that case should we mess with the flags. -- ohnobinki + + AS_IF([test "x$has_system_cares" = "xno" && test "x$BUILDDIR/extras/curl" != "x$enable_curl" && test "$CURLUSESCARES" != "0" ], + [ + AC_MSG_ERROR([[ + + You have decided to build unrealIRCd with libcURL (remote includes) support. + However, you have system-installed c-ares support has either been disabled + (--without-system-cares) or is unavailable. + Because UnrealIRCd will use a bundled copy of c-ares which may be incompatible + with the system-installed libcURL, this is a bad idea which may result in error + messages looking like: + + \`\`[error] unrealircd.conf:9: include: error downloading '(http://example.net/ex.conf)': Could not resolve host: example.net (Successful completion)'' + + Or UnrealIRCd might even crash. + + Please build UnrealIRCd with --with-system-cares when enabling --enable-libcurl +]]) + ]) + + dnl Make sure that linking against cURL works rather than letting the user + dnl find out after compiling most of his program. ~ohnobinki + IRCDLIBS="$IRCDLIBS $CURLLIBS" + CFLAGS="$CFLAGS $CURLCFLAG" + AC_DEFINE([USE_LIBCURL], [], [Define if you have libcurl installed to get remote includes and MOTD support]) + + AC_MSG_CHECKING([curl_easy_init() in $CURLLIBS]) + LIBS_SAVEDA="$LIBS" + CFLAGS_SAVEDA="$CFLAGS" + + LIBS="$IRCDLIBS $IRCDLIBS_CURL_CARES" + CFLAGS="$CFLAGS $CFLAGS_CURL_CARES" + AC_LINK_IFELSE( + [ + AC_LANG_PROGRAM( + [[#include ]], + [[CURL *curl = curl_easy_init();]]) + ], + [AC_MSG_RESULT([yes])], + [AC_MSG_RESULT([no]) + AC_MSG_FAILURE([You asked for libcURL (remote includes) support, but it can't be found at $enable_curl]) + ]) + LIBS="$LIBS_SAVEDA" + CFLAGS="$CFLAGS_SAVEDA" + + URL="url.o" + AC_SUBST(URL) + ]) dnl AS_IF(enable_curl) +]) + +dnl the following 2 macros are based on CHECK_SSL by Mark Ethan Trostler + +AC_DEFUN([CHECK_SSL], +[ +AC_ARG_ENABLE(ssl, + [AC_HELP_STRING([--enable-ssl=],[enable ssl will check /usr/local/opt/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr])], + [], + [enable_ssl=no]) +AS_IF([test $enable_ssl != "no"], + [ + AC_MSG_CHECKING([for OpenSSL]) + for dir in $enable_ssl /usr/local/opt/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr; do + ssldir="$dir" + if test -f "$dir/include/openssl/ssl.h"; then + AC_MSG_RESULT([found in $ssldir/include/openssl]) + found_ssl="yes"; + if test ! "$ssldir" = "/usr" ; then + CFLAGS="$CFLAGS -I$ssldir/include"; + fi + break + fi + if test -f "$dir/include/ssl.h"; then + AC_MSG_RESULT([found in $ssldir/include]) + found_ssl="yes"; + if test ! "$ssldir" = "/usr" ; then + CFLAGS="$CFLAGS -I$ssldir/include"; + fi + break + fi + done + if test x_$found_ssl != x_yes; then + AC_MSG_RESULT(not found) + echo "" + echo "Apparently you do not have both the openssl binary and openssl development libraries installed." + echo "The following packages are required:" + echo "1) The library package is often called 'openssl-dev', 'openssl-devel' or 'libssl-dev'" + echo "2) The binary package is usually called 'openssl'." + echo "NOTE: you or your system administrator needs to install the library AND the binary package." + echo "After doing so, simply re-run ./Config" + exit 1 + else + CRYPTOLIB="-lssl -lcrypto"; + if test ! "$ssldir" = "/usr" ; then + LDFLAGS="$LDFLAGS -L$ssldir/lib"; + dnl check if binary path exists + if test -f "$ssldir/bin/openssl"; then + OPENSSLPATH="$ssldir/bin/openssl"; + fi + fi + dnl linking require -ldl? + AC_MSG_CHECKING([OpenSSL linking with -ldl]) + SAVE_LIBS="$LIBS" + LIBS="$LIBS $CRYPTOLIB -ldl" + AC_TRY_LINK([#include ], [ERR_clear_error();], + [ + AC_MSG_RESULT(yes) + CRYPTOLIB="$CRYPTOLIB -ldl" + ], + [ + AC_MSG_RESULT(no) + + dnl linking require both -ldl and -lpthread? + AC_MSG_CHECKING([OpenSSL linking with -ldl and -lpthread]) + LIBS="$SAVE_LIBS $CRYPTOLIB -ldl -lpthread" + AC_TRY_LINK([#include ], [ERR_clear_error();], + [ + AC_MSG_RESULT(yes) + CRYPTOLIB="$CRYPTOLIB -ldl -lpthread" + ], + [ + AC_MSG_RESULT(no) + ]) + ]) + LIBS="$SAVE_LIBS" + fi + ]) +]) + +AC_DEFUN([CHECK_SSL_CTX_SET1_CURVES_LIST], +[ +AC_MSG_CHECKING([for SSL_CTX_set1_curves_list in SSL library]) +AC_LANG_PUSH(C) +SAVE_LIBS="$LIBS" +LIBS="$LIBS $CRYPTOLIB" +AC_TRY_LINK([#include ], + [SSL_CTX *ctx = NULL; SSL_CTX_set1_curves_list(ctx, "test");], + has_function=1, + has_function=0) +LIBS="$SAVE_LIBS" +AC_LANG_POP(C) +if test $has_function = 1; then + AC_MSG_RESULT([yes]) + AC_DEFINE([HAS_SSL_CTX_SET1_CURVES_LIST], [], [Define if ssl library has SSL_CTX_set1_curves_list]) +else + AC_MSG_RESULT([no]) +fi +]) + +AC_DEFUN([CHECK_SSL_CTX_SET_MIN_PROTO_VERSION], +[ +AC_MSG_CHECKING([for SSL_CTX_set_min_proto_version in SSL library]) +AC_LANG_PUSH(C) +SAVE_LIBS="$LIBS" +LIBS="$LIBS $CRYPTOLIB" +AC_TRY_LINK([#include ], + [SSL_CTX *ctx = NULL; SSL_CTX_set_min_proto_version(ctx, TLS1_VERSION);], + has_function=1, + has_function=0) +LIBS="$SAVE_LIBS" +AC_LANG_POP(C) +if test $has_function = 1; then + AC_MSG_RESULT([yes]) + AC_DEFINE([HAS_SSL_CTX_SET_MIN_PROTO_VERSION], [], [Define if ssl library has SSL_CTX_set_min_proto_version]) +else + AC_MSG_RESULT([no]) +fi +]) diff --git a/autogen.sh b/autogen.sh new file mode 100755 index 0000000..2bfc13e --- /dev/null +++ b/autogen.sh @@ -0,0 +1,11 @@ +#!/bin/bash +echo "Regenerating 'configure' and headers..." +echo "NOTE: Normally only UnrealIRCd developers run this command!!" + +cd "$(dirname "${0}")" + +ACLOCAL_AMFLAGS=(-I autoconf/m4) + +aclocal "${ACLOCAL_AMFLAGS[@]}" +autoconf +autoheader diff --git a/configure b/configure new file mode 100755 index 0000000..125017a --- /dev/null +++ b/configure @@ -0,0 +1,9027 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.69 for unrealircd 5.0.3.1. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +as_fn_exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ); then : + +else + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1" + if (eval "$as_required") 2>/dev/null; then : + as_have_required=yes +else + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null; then : + +else + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir/$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$as_shell"; } 2>/dev/null; then : + CONFIG_SHELL=$as_shell as_have_required=yes + if { $as_echo "$as_bourne_compatible""$as_suggested" | as_run=a "$as_shell"; } 2>/dev/null; then : + break 2 +fi +fi + done;; + esac + as_found=false +done +$as_found || { if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + { $as_echo "$as_bourne_compatible""$as_required" | as_run=a "$SHELL"; } 2>/dev/null; then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi; } +IFS=$as_save_IFS + + + if test "x$CONFIG_SHELL" != x; then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +$as_echo "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno; then : + $as_echo "$0: This script requires a shell more modern than all" + $as_echo "$0: the shells that I found on your system." + if test x${ZSH_VERSION+set} = xset ; then + $as_echo "$0: In particular, zsh $ZSH_VERSION has bugs and should" + $as_echo "$0: be upgraded to zsh 4.3.4 or later." + else + $as_echo "$0: Please tell bug-autoconf@gnu.org and +$0: https://bugs.unrealircd.org/ about your system, +$0: including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='unrealircd' +PACKAGE_TARNAME='unrealircd' +PACKAGE_VERSION='5.0.3.1' +PACKAGE_STRING='unrealircd 5.0.3.1' +PACKAGE_BUGREPORT='https://bugs.unrealircd.org/' +PACKAGE_URL='https://unrealircd.org/' + +ac_unique_file="src/ircd.c" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef STDC_HEADERS +# include +# include +#else +# ifdef HAVE_STDLIB_H +# include +# endif +#endif +#ifdef HAVE_STRING_H +# if !defined STDC_HEADERS && defined HAVE_MEMORY_H +# include +# endif +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_subst_vars='LTLIBOBJS +LIBOBJS +UNRLINCDIR +IRCDLIBS +URL +PTHREAD_CFLAGS +PTHREAD_LIBS +PTHREAD_CC +ax_pthread_config +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +CARES_LIBS +CARES_CFLAGS +ARGON2_LIBS +ARGON2_CFLAGS +PCRE2_LIBS +PCRE2_CFLAGS +PKG_CONFIG_LIBDIR +PKG_CONFIG_PATH +PKG_CONFIG +LDFLAGS_PRIVATELIBS +PIDFILE +DOCDIR +PERMDATADIR +TMPDIR +CACHEDIR +LOGDIR +MODULESDIR +CONFDIR +SCRIPTDIR +BINDIR +BUILDDIR +DYNAMIC_LDFLAGS +MODULEFLAGS +CRYPTOLIB +EGREP +GREP +CPP +HARDEN_BINLDFLAGS +HARDEN_BINCFLAGS +HARDEN_LDFLAGS +HARDEN_CFLAGS +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +PKGCONFIG +GUNZIP +GMAKE +MAKER +INSTALL +OPENSSLPATH +TOUCH +CP +RM +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +PATH_SEPARATOR +SHELL' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_hardening +with_nick_history +with_permissions +with_bindir +with_scriptdir +with_confdir +with_builddir +with_modulesdir +with_logdir +with_cachedir +with_tmpdir +with_datadir +with_docdir +with_pidfile +with_privatelibdir +with_maxconnections +enable_prefixaq +with_showlistmodes +with_no_operoverride +with_operoverride_verify +with_system_pcre2 +with_system_argon2 +with_system_cares +enable_ssl +enable_dynamic_linking +enable_werror +enable_asan +enable_libcurl +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +PKG_CONFIG +PKG_CONFIG_PATH +PKG_CONFIG_LIBDIR +PCRE2_CFLAGS +PCRE2_LIBS +ARGON2_CFLAGS +ARGON2_LIBS +CARES_CFLAGS +CARES_LIBS' + + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + # Accept the important Cygnus configure options, so we can diagnose typos. + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: $ac_useropt" + ac_useropt_orig=$ac_useropt + ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures unrealircd 5.0.3.1 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/unrealircd] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of unrealircd 5.0.3.1:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-hardening Enable compiler and linker options to frustrate + memory corruption exploits [yes] + --disable-prefixaq Disable chanadmin (+a) and chanowner (+q) prefixes + --enable-ssl= enable ssl will check /usr/local/opt/openssl + /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg + /usr/sfw /usr/local /usr + --disable-dynamic-linking + Make the IRCd statically link with shared objects + rather than dynamically (noone knows if disabling + dynamic linking actually does anything or not) + --enable-werror Turn compilation warnings into errors (-Werror) + --enable-asan Enable address sanitizer and other debugging + options, not recommended for production servers! + --enable-libcurl=DIR enable libcurl (remote include) support + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-nick-history=length + Specify the length of the nickname history + --with-permissions=permissions + Specify the default permissions for configuration + files + --with-bindir=path Specify the directory for the unrealircd binary + --with-scriptdir=path Specify the directory for the unrealircd start-stop + script + --with-confdir=path Specify the directory where configuration files are + stored + --with-builddir=path Specify the build directory + --with-modulesdir=path Specify the directory for loadable modules + --with-logdir=path Specify the directory where log files are stored + --with-cachedir=path Specify the directory where cached files are stored + --with-tmpdir=path Specify the directory where private temporary files + are stored. Should not be readable or writable by + others, so not /tmp!! + --with-datadir=path Specify the directory where permanent data is stored + --with-docdir=path Specify the directory where documentation is stored + --with-pidfile=path Specify the path of the pid file + --with-privatelibdir=path + Specify the directory where private libraries are + stored. Disable when building a package for a distro + --with-maxconnections=size + Specify the max file descriptors to use + --with-showlistmodes Specify whether modes are shown in /list + --with-no-operoverride Disable OperOverride + --with-operoverride-verify + Require opers to invite themselves to +s/+p channels + --without-system-pcre2 Use the system pcre2 package instead of bundled, + discovered using pkg-config + --without-system-argon2 Use bundled version instead of system argon2 + library. Normally autodetected via pkg-config + --without-system-cares Use bundled version instead of system c-ares. + Normally autodetected via pkg-config. + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + PKG_CONFIG path to pkg-config utility + PKG_CONFIG_PATH + directories to add to pkg-config's search path + PKG_CONFIG_LIBDIR + path overriding pkg-config's built-in search path + PCRE2_CFLAGS + C compiler flags for PCRE2, overriding pkg-config + PCRE2_LIBS linker flags for PCRE2, overriding pkg-config + ARGON2_CFLAGS + C compiler flags for ARGON2, overriding pkg-config + ARGON2_LIBS linker flags for ARGON2, overriding pkg-config + CARES_CFLAGS + C compiler flags for CARES, overriding pkg-config + CARES_LIBS linker flags for CARES, overriding pkg-config + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +unrealircd home page: . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for guested configure. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +unrealircd configure 5.0.3.1 +generated by GNU Autoconf 2.69 + +Copyright (C) 2012 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. Assumes +# that executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then : + ac_retval=0 +else + $as_echo "$as_me: program exited with status $ac_status" >&5 + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + }; then : + ac_retval=0 +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_c_check_header_mongrel LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists, giving a warning if it cannot be compiled using +# the include files in INCLUDES and setting the cache variable VAR +# accordingly. +ac_fn_c_check_header_mongrel () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if eval \${$3+:} false; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +else + # Is the header compilable? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 usability" >&5 +$as_echo_n "checking $2 usability... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_header_compiler=yes +else + ac_header_compiler=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_compiler" >&5 +$as_echo "$ac_header_compiler" >&6; } + +# Is the header present? +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking $2 presence" >&5 +$as_echo_n "checking $2 presence... " >&6; } +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include <$2> +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + ac_header_preproc=yes +else + ac_header_preproc=no +fi +rm -f conftest.err conftest.i conftest.$ac_ext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_header_preproc" >&5 +$as_echo "$ac_header_preproc" >&6; } + +# So? What about this header? +case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in #(( + yes:no: ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&5 +$as_echo "$as_me: WARNING: $2: accepted by the compiler, rejected by the preprocessor!" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} + ;; + no:yes:* ) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: present but cannot be compiled" >&5 +$as_echo "$as_me: WARNING: $2: present but cannot be compiled" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: check for missing prerequisite headers?" >&5 +$as_echo "$as_me: WARNING: $2: check for missing prerequisite headers?" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: see the Autoconf documentation" >&5 +$as_echo "$as_me: WARNING: $2: see the Autoconf documentation" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&5 +$as_echo "$as_me: WARNING: $2: section \"Present But Cannot Be Compiled\"" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $2: proceeding with the compiler's result" >&5 +$as_echo "$as_me: WARNING: $2: proceeding with the compiler's result" >&2;} +( $as_echo "## ------------------------------------------- ## +## Report this to https://bugs.unrealircd.org/ ## +## ------------------------------------------- ##" + ) | sed "s/^/$as_me: WARNING: /" >&2 + ;; +esac + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + eval "$3=\$ac_header_compiler" +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_mongrel + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +$as_echo_n "checking for $2... " >&6; } +if eval \${$3+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. + Prefer to if __STDC__ is defined, since + exists even on freestanding compilers. */ + +#ifdef __STDC__ +# include +#else +# include +#endif + +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main () +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + eval "$3=yes" +else + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +$as_echo "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by unrealircd $as_me 5.0.3.1, which was +generated by GNU Autoconf 2.69. Invocation command line was + + $ $0 $@ + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + $as_echo "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Save into config.log some information that might help in debugging. + { + echo + + $as_echo "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + $as_echo "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + $as_echo "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + $as_echo "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + $as_echo "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + $as_echo "$as_me: caught signal $ac_signal" + $as_echo "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +$as_echo "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_NAME "$PACKAGE_NAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_TARNAME "$PACKAGE_TARNAME" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_VERSION "$PACKAGE_VERSION" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_STRING "$PACKAGE_STRING" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" +_ACEOF + +cat >>confdefs.h <<_ACEOF +#define PACKAGE_URL "$PACKAGE_URL" +_ACEOF + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +ac_site_file1=NONE +ac_site_file2=NONE +if test -n "$CONFIG_SITE"; then + # We do not want a PATH search for config.site. + case $CONFIG_SITE in #(( + -*) ac_site_file1=./$CONFIG_SITE;; + */*) ac_site_file1=$CONFIG_SITE;; + *) ac_site_file1=./$CONFIG_SITE;; + esac +elif test "x$prefix" != xNONE; then + ac_site_file1=$prefix/share/config.site + ac_site_file2=$prefix/etc/config.site +else + ac_site_file1=$ac_default_prefix/share/config.site + ac_site_file2=$ac_default_prefix/etc/config.site +fi +for ac_site_file in "$ac_site_file1" "$ac_site_file2" +do + test "x$ac_site_file" = xNONE && continue + if test /dev/null != "$ac_site_file" && test -r "$ac_site_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +$as_echo "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +$as_echo "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { $as_echo "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +$as_echo "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { $as_echo "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} + { $as_echo "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`make distclean' and/or \`rm $cache_file' and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_config_headers="$ac_config_headers include/setup.h" + +ac_aux_dir= +for ac_dir in autoconf "$srcdir"/autoconf; do + if test -f "$ac_dir/install-sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install-sh -c" + break + elif test -f "$ac_dir/install.sh"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/install.sh -c" + break + elif test -f "$ac_dir/shtool"; then + ac_aux_dir=$ac_dir + ac_install_sh="$ac_aux_dir/shtool install -c" + break + fi +done +if test -z "$ac_aux_dir"; then + as_fn_error $? "cannot find install-sh, install.sh, or shtool in autoconf \"$srcdir\"/autoconf" "$LINENO" 5 +fi + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. +ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. +ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. + + + + +if test "x$enable_dynamic_linking" = "x"; then + echo "Please use ./Config instead of ./configure" + exit 1 +fi + +orig_cflags="$CFLAGS" + +BUILDDIR_NOW="`pwd`" + +# Generation version number (e.g.: X in X.Y.Z) +UNREAL_VERSION_GENERATION="5" + +cat >>confdefs.h <<_ACEOF +#define UNREAL_VERSION_GENERATION $UNREAL_VERSION_GENERATION +_ACEOF + + +# Major version number (e.g.: Y in X.Y.Z) +UNREAL_VERSION_MAJOR="0" + +cat >>confdefs.h <<_ACEOF +#define UNREAL_VERSION_MAJOR $UNREAL_VERSION_MAJOR +_ACEOF + + +# Minor version number (e.g.: Z in X.Y.Z) +UNREAL_VERSION_MINOR="3" + +cat >>confdefs.h <<_ACEOF +#define UNREAL_VERSION_MINOR $UNREAL_VERSION_MINOR +_ACEOF + + +# The version suffix such as a beta marker or release candidate +# marker. (e.g.: -rcX for unrealircd-3.2.9-rcX). This macro is a +# string instead of an integer because it contains arbitrary data. +UNREAL_VERSION_SUFFIX=".1" + +cat >>confdefs.h <<_ACEOF +#define UNREAL_VERSION_SUFFIX "$UNREAL_VERSION_SUFFIX" +_ACEOF + + +# Extract the first word of "rm", so it can be a program name with args. +set dummy rm; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_RM+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $RM in + [\\/]* | ?:[\\/]*) + ac_cv_path_RM="$RM" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_RM="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +RM=$ac_cv_path_RM +if test -n "$RM"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RM" >&5 +$as_echo "$RM" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "cp", so it can be a program name with args. +set dummy cp; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_CP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $CP in + [\\/]* | ?:[\\/]*) + ac_cv_path_CP="$CP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_CP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +CP=$ac_cv_path_CP +if test -n "$CP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CP" >&5 +$as_echo "$CP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "touch", so it can be a program name with args. +set dummy touch; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_TOUCH+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $TOUCH in + [\\/]* | ?:[\\/]*) + ac_cv_path_TOUCH="$TOUCH" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_TOUCH="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +TOUCH=$ac_cv_path_TOUCH +if test -n "$TOUCH"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $TOUCH" >&5 +$as_echo "$TOUCH" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "openssl", so it can be a program name with args. +set dummy openssl; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_OPENSSLPATH+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $OPENSSLPATH in + [\\/]* | ?:[\\/]*) + ac_cv_path_OPENSSLPATH="$OPENSSLPATH" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_OPENSSLPATH="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +OPENSSLPATH=$ac_cv_path_OPENSSLPATH +if test -n "$OPENSSLPATH"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $OPENSSLPATH" >&5 +$as_echo "$OPENSSLPATH" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +if test x"$OPENSSLPATH" = "x"; then : + +echo "" +echo "Apparently you do not have both the openssl binary and openssl development libraries installed." +echo "The following packages are required:" +echo "1) The library package is often called 'openssl-dev', 'openssl-devel' or 'libssl-dev'" +echo "2) The binary package is usually called 'openssl'." +echo "NOTE: you or your system administrator needs to install the library AND the binary package." +echo "After doing so, simply re-run ./Config" +exit 1 + +fi + +# Extract the first word of "install", so it can be a program name with args. +set dummy install; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_INSTALL+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $INSTALL in + [\\/]* | ?:[\\/]*) + ac_cv_path_INSTALL="$INSTALL" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_INSTALL="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +INSTALL=$ac_cv_path_INSTALL +if test -n "$INSTALL"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +$as_echo "$INSTALL" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "gmake", so it can be a program name with args. +set dummy gmake; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_MAKER+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$MAKER"; then + ac_cv_prog_MAKER="$MAKER" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_MAKER="gmake" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_MAKER" && ac_cv_prog_MAKER="make" +fi +fi +MAKER=$ac_cv_prog_MAKER +if test -n "$MAKER"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $MAKER" >&5 +$as_echo "$MAKER" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "gmake", so it can be a program name with args. +set dummy gmake; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GMAKE+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GMAKE in + [\\/]* | ?:[\\/]*) + ac_cv_path_GMAKE="$GMAKE" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GMAKE="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GMAKE=$ac_cv_path_GMAKE +if test -n "$GMAKE"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GMAKE" >&5 +$as_echo "$GMAKE" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + +if $MAKER --version | grep -q "GNU Make"; then : + GNUMAKE="0" +else + as_fn_error $? "It seems your system does not have gmake installed. Please install gmake." "$LINENO" 5 +fi + +# Extract the first word of "gunzip", so it can be a program name with args. +set dummy gunzip; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GUNZIP+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GUNZIP in + [\\/]* | ?:[\\/]*) + ac_cv_path_GUNZIP="$GUNZIP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GUNZIP="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +GUNZIP=$ac_cv_path_GUNZIP +if test -n "$GUNZIP"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GUNZIP" >&5 +$as_echo "$GUNZIP" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +# Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKGCONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKGCONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKGCONFIG="$PKGCONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKGCONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKGCONFIG=$ac_cv_path_PKGCONFIG +if test -n "$PKGCONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKGCONFIG" >&5 +$as_echo "$PKGCONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +$as_echo "$CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ac_ct_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +$as_echo "$ac_ct_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi + + +test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +$as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +$as_echo_n "checking whether the C compiler works... " >&6; } +ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else + ac_file='' +fi +if test -z "$ac_file"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +$as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +$as_echo_n "checking for C compiler default output file name... " >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +$as_echo "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +$as_echo_n "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +$as_echo "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +$as_echo_n "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +$as_echo "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +$as_echo_n "checking for suffix of object files... " >&6; } +if ${ac_cv_objext+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +$as_echo "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else + $as_echo "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +$as_echo "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5 +$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } +if ${ac_cv_c_compiler_gnu+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_compiler_gnu=yes +else + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +$as_echo "$ac_cv_c_compiler_gnu" >&6; } +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+set} +ac_save_CFLAGS=$CFLAGS +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +$as_echo_n "checking whether $CC accepts -g... " >&6; } +if ${ac_cv_prog_cc_g+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +else + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + +else + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +$as_echo "$ac_cv_prog_cc_g" >&6; } +if test "$ac_test_CFLAGS" = set; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5 +$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } +if ${ac_cv_prog_cc_c89+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ +struct buf { int x; }; +FILE * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not '\xHH' hex character constants. + These don't provoke an error unfortunately, instead are silently treated + as 'x'. The following induces an error, until -std is added to get + proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an + array size at least. It's necessary to write '\x00'==0 to get something + that's true only with -std. */ +int osf4_cc_array ['\x00' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) 'x' +int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); +int argc; +char **argv; +int +main () +{ +return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; + ; + return 0; +} +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ + -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c89" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c89" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c89" != xno; then : + +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C99" >&5 +$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } +if ${ac_cv_prog_cc_c99+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +#include + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +#define debug(...) fprintf (stderr, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + your preprocessor is broken; +#endif +#if BIG_OK +#else + your preprocessor is broken; +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\0'; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static void +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str; + int number; + float fnumber; + + while (*format) + { + switch (*format++) + { + case 's': // string + str = va_arg (args_copy, const char *); + break; + case 'd': // int + number = va_arg (args_copy, int); + break; + case 'f': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); +} + +int +main () +{ + + // Check bool. + _Bool success = false; + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + test_varargs ("s, d' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' + || dynamic_array[ni.number - 1] != 543); + + ; + return 0; +} +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -D_STDC_C99= -qlanglvl=extc99 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC + +fi +# AC_CACHE_VAL +case "x$ac_cv_prog_cc_c99" in + x) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +$as_echo "none needed" >&6; } ;; + xno) + { $as_echo "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +$as_echo "unsupported" >&6; } ;; + *) + CC="$CC $ac_cv_prog_cc_c99" + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; +esac +if test "x$ac_cv_prog_cc_c99" != xno; then : + +fi + + +if test "$ac_cv_prog_cc_c99" = "no"; then : + as_fn_error $? "No C99 compiler was found. Please install gcc or clang and other build tools. Eg, on Debian/Ubuntu you probably want to run the following as root: apt-get install build-essential " "$LINENO" 5 +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypt in -ldescrypt" >&5 +$as_echo_n "checking for crypt in -ldescrypt... " >&6; } +if ${ac_cv_lib_descrypt_crypt+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldescrypt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char crypt (); +int +main () +{ +return crypt (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_descrypt_crypt=yes +else + ac_cv_lib_descrypt_crypt=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_descrypt_crypt" >&5 +$as_echo "$ac_cv_lib_descrypt_crypt" >&6; } +if test "x$ac_cv_lib_descrypt_crypt" = xyes; then : + +$as_echo "#define HAVE_CRYPT /**/" >>confdefs.h + + IRCDLIBS="$IRCDLIBS-ldescrypt " +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for crypt in -lcrypt" >&5 +$as_echo_n "checking for crypt in -lcrypt... " >&6; } +if ${ac_cv_lib_crypt_crypt+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lcrypt $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char crypt (); +int +main () +{ +return crypt (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_crypt_crypt=yes +else + ac_cv_lib_crypt_crypt=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_crypt_crypt" >&5 +$as_echo "$ac_cv_lib_crypt_crypt" >&6; } +if test "x$ac_cv_lib_crypt_crypt" = xyes; then : + +$as_echo "#define HAVE_CRYPT /**/" >>confdefs.h + + IRCDLIBS="$IRCDLIBS-lcrypt " +fi + +fi + + +# We want to check for compiler flag support, but there is no way to make +# clang's "argument unused" warning fatal. So we invoke the compiler through a +# wrapper script that greps for this message. +saved_CC="$CC" +saved_CXX="$CXX" +saved_LD="$LD" +flag_wrap="$srcdir/extras/wrap-compiler-for-flag-check" +CC="$flag_wrap $CC" +CXX="$flag_wrap $CXX" +LD="$flag_wrap $LD" + +# We use the same hardening flags for C and C++. We must check that each flag +# is supported by both compilers. + + + + +# Check whether --enable-hardening was given. +if test "${enable_hardening+set}" = set; then : + enableval=$enable_hardening; hardening="$enableval" +else + hardening="yes" +fi + + +HARDEN_CFLAGS="" +HARDEN_LDFLAGS="" +if test x"$hardening" != x"no"; then : + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-strict-overflow" >&5 +$as_echo_n "checking whether C compiler accepts -fno-strict-overflow... " >&6; } +if ${ax_cv_check_cflags__Werror___fno_strict_overflow+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -fno-strict-overflow" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___fno_strict_overflow=yes +else + ax_cv_check_cflags__Werror___fno_strict_overflow=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___fno_strict_overflow" >&5 +$as_echo "$ax_cv_check_cflags__Werror___fno_strict_overflow" >&6; } +if test x"$ax_cv_check_cflags__Werror___fno_strict_overflow" = xyes; then : + HARDEN_CFLAGS="$HARDEN_CFLAGS -fno-strict-overflow" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + # This one will likely succeed, even on platforms where it does nothing. + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -D_FORTIFY_SOURCE=2" >&5 +$as_echo_n "checking whether C compiler accepts -D_FORTIFY_SOURCE=2... " >&6; } +if ${ax_cv_check_cflags__Werror___D_FORTIFY_SOURCE_2+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -D_FORTIFY_SOURCE=2" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___D_FORTIFY_SOURCE_2=yes +else + ax_cv_check_cflags__Werror___D_FORTIFY_SOURCE_2=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___D_FORTIFY_SOURCE_2" >&5 +$as_echo "$ax_cv_check_cflags__Werror___D_FORTIFY_SOURCE_2" >&6; } +if test x"$ax_cv_check_cflags__Werror___D_FORTIFY_SOURCE_2" = xyes; then : + HARDEN_CFLAGS="$HARDEN_CFLAGS -D_FORTIFY_SOURCE=2" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fstack-protector-all" >&5 +$as_echo_n "checking whether C compiler accepts -fstack-protector-all... " >&6; } +if ${ax_cv_check_cflags__Werror___fstack_protector_all+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -fstack-protector-all" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___fstack_protector_all=yes +else + ax_cv_check_cflags__Werror___fstack_protector_all=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___fstack_protector_all" >&5 +$as_echo "$ax_cv_check_cflags__Werror___fstack_protector_all" >&6; } +if test x"$ax_cv_check_cflags__Werror___fstack_protector_all" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -fstack-protector-all" >&5 +$as_echo_n "checking whether the linker accepts -fstack-protector-all... " >&6; } +if ${ax_cv_check_ldflags__Werror___fstack_protector_all+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Werror -fstack-protector-all" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags__Werror___fstack_protector_all=yes +else + ax_cv_check_ldflags__Werror___fstack_protector_all=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags__Werror___fstack_protector_all" >&5 +$as_echo "$ax_cv_check_ldflags__Werror___fstack_protector_all" >&6; } +if test x"$ax_cv_check_ldflags__Werror___fstack_protector_all" = xyes; then : + HARDEN_CFLAGS="$HARDEN_CFLAGS -fstack-protector-all" + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wstack-protector" >&5 +$as_echo_n "checking whether C compiler accepts -Wstack-protector... " >&6; } +if ${ax_cv_check_cflags__Werror__fstack_protector_all__Wstack_protector+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -fstack-protector-all -Wstack-protector" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror__fstack_protector_all__Wstack_protector=yes +else + ax_cv_check_cflags__Werror__fstack_protector_all__Wstack_protector=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__fstack_protector_all__Wstack_protector" >&5 +$as_echo "$ax_cv_check_cflags__Werror__fstack_protector_all__Wstack_protector" >&6; } +if test x"$ax_cv_check_cflags__Werror__fstack_protector_all__Wstack_protector" = xyes; then : + HARDEN_CFLAGS="$HARDEN_CFLAGS -Wstack-protector" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts --param ssp-buffer-size=1" >&5 +$as_echo_n "checking whether C compiler accepts --param ssp-buffer-size=1... " >&6; } +if ${ax_cv_check_cflags__Werror__fstack_protector_all___param_ssp_buffer_size_1+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -fstack-protector-all --param ssp-buffer-size=1" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror__fstack_protector_all___param_ssp_buffer_size_1=yes +else + ax_cv_check_cflags__Werror__fstack_protector_all___param_ssp_buffer_size_1=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror__fstack_protector_all___param_ssp_buffer_size_1" >&5 +$as_echo "$ax_cv_check_cflags__Werror__fstack_protector_all___param_ssp_buffer_size_1" >&6; } +if test x"$ax_cv_check_cflags__Werror__fstack_protector_all___param_ssp_buffer_size_1" = xyes; then : + HARDEN_CFLAGS="$HARDEN_CFLAGS --param ssp-buffer-size=1" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +else + : +fi + +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + # At the link step, we might want -pie (GCC) or -Wl,-pie (Clang on OS X) + # + # The linker checks also compile code, so we need to include -fPIE as well. + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fPIE" >&5 +$as_echo_n "checking whether C compiler accepts -fPIE... " >&6; } +if ${ax_cv_check_cflags__Werror___fPIE+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -fPIE" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___fPIE=yes +else + ax_cv_check_cflags__Werror___fPIE=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___fPIE" >&5 +$as_echo "$ax_cv_check_cflags__Werror___fPIE" >&6; } +if test x"$ax_cv_check_cflags__Werror___fPIE" = xyes; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -fPIE -pie" >&5 +$as_echo_n "checking whether the linker accepts -fPIE -pie... " >&6; } +if ${ax_cv_check_ldflags__Werror___fPIE__pie+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Werror -fPIE -pie" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags__Werror___fPIE__pie=yes +else + ax_cv_check_ldflags__Werror___fPIE__pie=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags__Werror___fPIE__pie" >&5 +$as_echo "$ax_cv_check_ldflags__Werror___fPIE__pie" >&6; } +if test x"$ax_cv_check_ldflags__Werror___fPIE__pie" = xyes; then : + HARDEN_BINCFLAGS="-fPIE" + HARDEN_BINLDFLAGS="-pie" +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -fPIE -Wl,-pie" >&5 +$as_echo_n "checking whether the linker accepts -fPIE -Wl,-pie... " >&6; } +if ${ax_cv_check_ldflags__Werror___fPIE__Wl__pie+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Werror -fPIE -Wl,-pie" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags__Werror___fPIE__Wl__pie=yes +else + ax_cv_check_ldflags__Werror___fPIE__Wl__pie=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags__Werror___fPIE__Wl__pie" >&5 +$as_echo "$ax_cv_check_ldflags__Werror___fPIE__Wl__pie" >&6; } +if test x"$ax_cv_check_ldflags__Werror___fPIE__Wl__pie" = xyes; then : + HARDEN_BINCFLAGS="-fPIE" + HARDEN_BINLDFLAGS="-Wl,-pie" +else + : +fi + +fi + +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,relro" >&5 +$as_echo_n "checking whether the linker accepts -Wl,-z,relro... " >&6; } +if ${ax_cv_check_ldflags__Werror___Wl__z_relro+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Werror -Wl,-z,relro" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags__Werror___Wl__z_relro=yes +else + ax_cv_check_ldflags__Werror___Wl__z_relro=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags__Werror___Wl__z_relro" >&5 +$as_echo "$ax_cv_check_ldflags__Werror___Wl__z_relro" >&6; } +if test x"$ax_cv_check_ldflags__Werror___Wl__z_relro" = xyes; then : + HARDEN_LDFLAGS="$HARDEN_LDFLAGS -Wl,-z,relro" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether the linker accepts -Wl,-z,now" >&5 +$as_echo_n "checking whether the linker accepts -Wl,-z,now... " >&6; } +if ${ax_cv_check_ldflags__Werror___Wl__z_now+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$LDFLAGS + LDFLAGS="$LDFLAGS -Werror -Wl,-z,now" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_check_ldflags__Werror___Wl__z_now=yes +else + ax_cv_check_ldflags__Werror___Wl__z_now=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_ldflags__Werror___Wl__z_now" >&5 +$as_echo "$ax_cv_check_ldflags__Werror___Wl__z_now" >&6; } +if test x"$ax_cv_check_ldflags__Werror___Wl__z_now" = xyes; then : + HARDEN_LDFLAGS="$HARDEN_LDFLAGS -Wl,-z,now" +else + : +fi + +else + : +fi + +fi + + + + + +# End of flag tests. +CC="$saved_CC" +CXX="$saved_CXX" +LD="$saved_LD" + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-strict-aliasing" >&5 +$as_echo_n "checking whether C compiler accepts -fno-strict-aliasing... " >&6; } +if ${ax_cv_check_cflags__Werror___fno_strict_aliasing+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -fno-strict-aliasing" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___fno_strict_aliasing=yes +else + ax_cv_check_cflags__Werror___fno_strict_aliasing=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___fno_strict_aliasing" >&5 +$as_echo "$ax_cv_check_cflags__Werror___fno_strict_aliasing" >&6; } +if test x"$ax_cv_check_cflags__Werror___fno_strict_aliasing" = xyes; then : + CFLAGS="$CFLAGS -fno-strict-aliasing" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -fno-common" >&5 +$as_echo_n "checking whether C compiler accepts -fno-common... " >&6; } +if ${ax_cv_check_cflags__Werror___fno_common+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -fno-common" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___fno_common=yes +else + ax_cv_check_cflags__Werror___fno_common=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___fno_common" >&5 +$as_echo "$ax_cv_check_cflags__Werror___fno_common" >&6; } +if test x"$ax_cv_check_cflags__Werror___fno_common" = xyes; then : + CFLAGS="$CFLAGS -fno-common" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +CFLAGS="$CFLAGS -funsigned-char" + + +CFLAGS="$CFLAGS -Wall" + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wextra" >&5 +$as_echo_n "checking whether C compiler accepts -Wextra... " >&6; } +if ${ax_cv_check_cflags__Werror___Wextra+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wextra" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wextra=yes +else + ax_cv_check_cflags__Werror___Wextra=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wextra" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wextra" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wextra" = xyes; then : + CFLAGS="$CFLAGS -Wextra" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Waggregate-return" >&5 +$as_echo_n "checking whether C compiler accepts -Waggregate-return... " >&6; } +if ${ax_cv_check_cflags__Werror___Waggregate_return+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Waggregate-return" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Waggregate_return=yes +else + ax_cv_check_cflags__Werror___Waggregate_return=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Waggregate_return" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Waggregate_return" >&6; } +if test x"$ax_cv_check_cflags__Werror___Waggregate_return" = xyes; then : + CFLAGS="$CFLAGS -Waggregate-return" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wduplicated-cond" >&5 +$as_echo_n "checking whether C compiler accepts -Wduplicated-cond... " >&6; } +if ${ax_cv_check_cflags__Werror___Wduplicated_cond+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wduplicated-cond" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wduplicated_cond=yes +else + ax_cv_check_cflags__Werror___Wduplicated_cond=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wduplicated_cond" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wduplicated_cond" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wduplicated_cond" = xyes; then : + CFLAGS="$CFLAGS -Wduplicated-cond" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wduplicated-branches" >&5 +$as_echo_n "checking whether C compiler accepts -Wduplicated-branches... " >&6; } +if ${ax_cv_check_cflags__Werror___Wduplicated_branches+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wduplicated-branches" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wduplicated_branches=yes +else + ax_cv_check_cflags__Werror___Wduplicated_branches=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wduplicated_branches" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wduplicated_branches" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wduplicated_branches" = xyes; then : + CFLAGS="$CFLAGS -Wduplicated-branches" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wpointer-sign" >&5 +$as_echo_n "checking whether C compiler accepts -Wpointer-sign... " >&6; } +if ${ax_cv_check_cflags__Werror___Wpointer_sign+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wpointer-sign" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wpointer_sign=yes +else + ax_cv_check_cflags__Werror___Wpointer_sign=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wpointer_sign" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wpointer_sign" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wpointer_sign" = xyes; then : + CFLAGS="$CFLAGS -Wno-pointer-sign" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Winvalid-source-encoding" >&5 +$as_echo_n "checking whether C compiler accepts -Winvalid-source-encoding... " >&6; } +if ${ax_cv_check_cflags__Werror___Winvalid_source_encoding+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Winvalid-source-encoding" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Winvalid_source_encoding=yes +else + ax_cv_check_cflags__Werror___Winvalid_source_encoding=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Winvalid_source_encoding" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Winvalid_source_encoding" >&6; } +if test x"$ax_cv_check_cflags__Werror___Winvalid_source_encoding" = xyes; then : + CFLAGS="$CFLAGS -Wno-invalid-source-encoding" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wformat-zero-length" >&5 +$as_echo_n "checking whether C compiler accepts -Wformat-zero-length... " >&6; } +if ${ax_cv_check_cflags__Werror___Wformat_zero_length+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wformat-zero-length" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wformat_zero_length=yes +else + ax_cv_check_cflags__Werror___Wformat_zero_length=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wformat_zero_length" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wformat_zero_length" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wformat_zero_length" = xyes; then : + CFLAGS="$CFLAGS -Wno-format-zero-length" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wformat-truncation" >&5 +$as_echo_n "checking whether C compiler accepts -Wformat-truncation... " >&6; } +if ${ax_cv_check_cflags__Werror___Wformat_truncation+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wformat-truncation" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wformat_truncation=yes +else + ax_cv_check_cflags__Werror___Wformat_truncation=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wformat_truncation" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wformat_truncation" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wformat_truncation" = xyes; then : + CFLAGS="$CFLAGS -Wno-format-truncation" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wunused" >&5 +$as_echo_n "checking whether C compiler accepts -Wunused... " >&6; } +if ${ax_cv_check_cflags__Werror___Wunused+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wunused" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wunused=yes +else + ax_cv_check_cflags__Werror___Wunused=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wunused" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wunused" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wunused" = xyes; then : + CFLAGS="$CFLAGS -Wno-unused" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wunused-parameter" >&5 +$as_echo_n "checking whether C compiler accepts -Wunused-parameter... " >&6; } +if ${ax_cv_check_cflags__Werror___Wunused_parameter+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wunused-parameter" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wunused_parameter=yes +else + ax_cv_check_cflags__Werror___Wunused_parameter=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wunused_parameter" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wunused_parameter" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wunused_parameter" = xyes; then : + CFLAGS="$CFLAGS -Wno-unused-parameter" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wunused-but-set-parameter" >&5 +$as_echo_n "checking whether C compiler accepts -Wunused-but-set-parameter... " >&6; } +if ${ax_cv_check_cflags__Werror___Wunused_but_set_parameter+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wunused-but-set-parameter" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wunused_but_set_parameter=yes +else + ax_cv_check_cflags__Werror___Wunused_but_set_parameter=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wunused_but_set_parameter" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wunused_but_set_parameter" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wunused_but_set_parameter" = xyes; then : + CFLAGS="$CFLAGS -Wno-unused-but-set-parameter" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wchar-subscripts" >&5 +$as_echo_n "checking whether C compiler accepts -Wchar-subscripts... " >&6; } +if ${ax_cv_check_cflags__Werror___Wchar_subscripts+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wchar-subscripts" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wchar_subscripts=yes +else + ax_cv_check_cflags__Werror___Wchar_subscripts=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wchar_subscripts" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wchar_subscripts" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wchar_subscripts" = xyes; then : + CFLAGS="$CFLAGS -Wno-char-subscripts" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wsign-compare" >&5 +$as_echo_n "checking whether C compiler accepts -Wsign-compare... " >&6; } +if ${ax_cv_check_cflags__Werror___Wsign_compare+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wsign-compare" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wsign_compare=yes +else + ax_cv_check_cflags__Werror___Wsign_compare=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wsign_compare" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wsign_compare" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wsign_compare" = xyes; then : + CFLAGS="$CFLAGS -Wno-sign-compare" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wempty-body" >&5 +$as_echo_n "checking whether C compiler accepts -Wempty-body... " >&6; } +if ${ax_cv_check_cflags__Werror___Wempty_body+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wempty-body" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wempty_body=yes +else + ax_cv_check_cflags__Werror___Wempty_body=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wempty_body" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wempty_body" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wempty_body" = xyes; then : + CFLAGS="$CFLAGS -Wno-empty-body" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Waddress" >&5 +$as_echo_n "checking whether C compiler accepts -Waddress... " >&6; } +if ${ax_cv_check_cflags__Werror___Waddress+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Waddress" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Waddress=yes +else + ax_cv_check_cflags__Werror___Waddress=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Waddress" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Waddress" >&6; } +if test x"$ax_cv_check_cflags__Werror___Waddress" = xyes; then : + CFLAGS="$CFLAGS -Wno-address" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether C compiler accepts -Wcast-function-type" >&5 +$as_echo_n "checking whether C compiler accepts -Wcast-function-type... " >&6; } +if ${ax_cv_check_cflags__Werror___Wcast_function_type+:} false; then : + $as_echo_n "(cached) " >&6 +else + + ax_check_save_flags=$CFLAGS + CFLAGS="$CFLAGS -Werror -Wcast-function-type" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ax_cv_check_cflags__Werror___Wcast_function_type=yes +else + ax_cv_check_cflags__Werror___Wcast_function_type=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + CFLAGS=$ax_check_save_flags +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_check_cflags__Werror___Wcast_function_type" >&5 +$as_echo "$ax_cv_check_cflags__Werror___Wcast_function_type" >&6; } +if test x"$ax_cv_check_cflags__Werror___Wcast_function_type" = xyes; then : + CFLAGS="$CFLAGS -Wno-cast-function-type" +else + : +fi + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if your system has IPv6 support" >&5 +$as_echo_n "checking if your system has IPv6 support... " >&6; } +if ${ac_cv_ip6+:} false; then : + $as_echo_n "(cached) " >&6 +else + +if test "$cross_compiling" = yes; then : + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +int main() { +int s = socket(AF_INET6, SOCK_STREAM, 0); +exit(0); /* We only check if the code compiles, that's enough. We can deal with missing runtime IPv6 */ +} + +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + ac_cv_ip6=yes +else + ac_cv_ip6=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_ip6" >&5 +$as_echo "$ac_cv_ip6" >&6; } +if test "$ac_cv_ip6" = "no"; then + as_fn_error $? "Your system does not support IPv6" "$LINENO" 5 +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +$as_echo_n "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if ${ac_cv_prog_CPP+:} false; then : + $as_echo_n "(cached) " >&6 +else + # Double quotes because CPP needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +$as_echo "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # Prefer to if __STDC__ is defined, since + # exists even on freestanding compilers. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifdef __STDC__ +# include +#else +# include +#endif + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + +else + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO"; then : + # Broken: success on invalid input. +continue +else + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok; then : + +else + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +$as_echo_n "checking for grep that handles long lines and -e... " >&6; } +if ${ac_cv_path_GREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in grep ggrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +$as_echo "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +$as_echo_n "checking for egrep... " >&6; } +if ${ac_cv_path_EGREP+:} false; then : + $as_echo_n "(cached) " >&6 +else + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_prog in egrep; do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + $as_echo_n 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + $as_echo 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +$as_echo "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5 +$as_echo_n "checking for ANSI C header files... " >&6; } +if ${ac_cv_header_stdc+:} false; then : + $as_echo_n "(cached) " >&6 +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + ac_cv_header_stdc=yes +else + ac_cv_header_stdc=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + +if test $ac_cv_header_stdc = yes; then + # SunOS 4.x string.h does not declare mem*, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "memchr" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "free" >/dev/null 2>&1; then : + +else + ac_cv_header_stdc=no +fi +rm -f conftest* + +fi + +if test $ac_cv_header_stdc = yes; then + # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. + if test "$cross_compiling" = yes; then : + : +else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#if ((' ' & 0x0FF) == 0x020) +# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') +# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) +#else +# define ISLOWER(c) \ + (('a' <= (c) && (c) <= 'i') \ + || ('j' <= (c) && (c) <= 'r') \ + || ('s' <= (c) && (c) <= 'z')) +# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) +#endif + +#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) +int +main () +{ + int i; + for (i = 0; i < 256; i++) + if (XOR (islower (i), ISLOWER (i)) + || toupper (i) != TOUPPER (i)) + return 2; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO"; then : + +else + ac_cv_header_stdc=no +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + +fi +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_stdc" >&5 +$as_echo "$ac_cv_header_stdc" >&6; } +if test $ac_cv_header_stdc = yes; then + +$as_echo "#define STDC_HEADERS 1" >>confdefs.h + +fi + +# On IRIX 5.3, sys/types and inttypes.h are conflicting. +for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ + inttypes.h stdint.h unistd.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_compile "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default +" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +ac_fn_c_check_header_mongrel "$LINENO" "sys/syslog.h" "ac_cv_header_sys_syslog_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_syslog_h" = xyes; then : + +$as_echo "#define SYSSYSLOGH /**/" >>confdefs.h + +fi + + +ac_fn_c_check_header_mongrel "$LINENO" "sys/rusage.h" "ac_cv_header_sys_rusage_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_rusage_h" = xyes; then : + +$as_echo "#define RUSAGEH /**/" >>confdefs.h + +fi + + +ac_fn_c_check_header_mongrel "$LINENO" "glob.h" "ac_cv_header_glob_h" "$ac_includes_default" +if test "x$ac_cv_header_glob_h" = xyes; then : + +$as_echo "#define GLOBH /**/" >>confdefs.h + +fi + + +for ac_header in stdint.h inttypes.h +do : + as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` +ac_fn_c_check_header_mongrel "$LINENO" "$ac_header" "$as_ac_Header" "$ac_includes_default" +if eval test \"x\$"$as_ac_Header"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 +_ACEOF + +fi + +done + + +for ac_func in strlcpy +do : + ac_fn_c_check_func "$LINENO" "strlcpy" "ac_cv_func_strlcpy" +if test "x$ac_cv_func_strlcpy" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRLCPY 1 +_ACEOF + +$as_echo "#define HAVE_STRLCPY /**/" >>confdefs.h + +fi +done + +for ac_func in strlcat +do : + ac_fn_c_check_func "$LINENO" "strlcat" "ac_cv_func_strlcat" +if test "x$ac_cv_func_strlcat" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRLCAT 1 +_ACEOF + +$as_echo "#define HAVE_STRLCAT /**/" >>confdefs.h + +fi +done + +for ac_func in strlncat +do : + ac_fn_c_check_func "$LINENO" "strlncat" "ac_cv_func_strlncat" +if test "x$ac_cv_func_strlncat" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_STRLNCAT 1 +_ACEOF + +$as_echo "#define HAVE_STRLNCAT /**/" >>confdefs.h + +fi +done + + +for ac_func in getrusage +do : + ac_fn_c_check_func "$LINENO" "getrusage" "ac_cv_func_getrusage" +if test "x$ac_cv_func_getrusage" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_GETRUSAGE 1 +_ACEOF + +$as_echo "#define GETRUSAGE_2 /**/" >>confdefs.h + +else + for ac_func in times +do : + ac_fn_c_check_func "$LINENO" "times" "ac_cv_func_times" +if test "x$ac_cv_func_times" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_TIMES 1 +_ACEOF + +$as_echo "#define TIMES_2 /**/" >>confdefs.h + +fi +done + +fi +done + +for ac_func in setproctitle +do : + ac_fn_c_check_func "$LINENO" "setproctitle" "ac_cv_func_setproctitle" +if test "x$ac_cv_func_setproctitle" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SETPROCTITLE 1 +_ACEOF + +$as_echo "#define HAVE_SETPROCTITLE /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for setproctitle in -lutil" >&5 +$as_echo_n "checking for setproctitle in -lutil... " >&6; } +if ${ac_cv_lib_util_setproctitle+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-lutil $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char setproctitle (); +int +main () +{ +return setproctitle (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_util_setproctitle=yes +else + ac_cv_lib_util_setproctitle=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_util_setproctitle" >&5 +$as_echo "$ac_cv_lib_util_setproctitle" >&6; } +if test "x$ac_cv_lib_util_setproctitle" = xyes; then : + +$as_echo "#define HAVE_SETPROCTITLE /**/" >>confdefs.h + + IRCDLIBS="$IRCDLIBS-lutil" +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "#define.*PS_STRINGS.*" >/dev/null 2>&1; then : + +$as_echo "#define HAVE_PSSTRINGS /**/" >>confdefs.h + +else + for ac_func in pstat +do : + ac_fn_c_check_func "$LINENO" "pstat" "ac_cv_func_pstat" +if test "x$ac_cv_func_pstat" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_PSTAT 1 +_ACEOF + +$as_echo "#define HAVE_PSTAT /**/" >>confdefs.h + +fi +done + +fi +rm -f conftest* + + +fi + + + +fi +done + + +for ac_func in explicit_bzero +do : + ac_fn_c_check_func "$LINENO" "explicit_bzero" "ac_cv_func_explicit_bzero" +if test "x$ac_cv_func_explicit_bzero" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_EXPLICIT_BZERO 1 +_ACEOF + +$as_echo "#define HAVE_EXPLICIT_BZERO /**/" >>confdefs.h + +fi +done + +for ac_func in syslog +do : + ac_fn_c_check_func "$LINENO" "syslog" "ac_cv_func_syslog" +if test "x$ac_cv_func_syslog" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_SYSLOG 1 +_ACEOF + +$as_echo "#define HAVE_SYSLOG /**/" >>confdefs.h + +fi +done + + + + + +# Check whether --with-nick-history was given. +if test "${with_nick_history+set}" = set; then : + withval=$with_nick_history; +cat >>confdefs.h <<_ACEOF +#define NICKNAMEHISTORYLENGTH $withval +_ACEOF + +else + +$as_echo "#define NICKNAMEHISTORYLENGTH 2000" >>confdefs.h + +fi + + +# Check whether --with-permissions was given. +if test "${with_permissions+set}" = set; then : + withval=$with_permissions; +cat >>confdefs.h <<_ACEOF +#define DEFAULT_PERMISSIONS 0$withval +_ACEOF + +else + +$as_echo "#define DEFAULT_PERMISSIONS 0600" >>confdefs.h + +fi + + + +# Check whether --with-bindir was given. +if test "${with_bindir+set}" = set; then : + withval=$with_bindir; +cat >>confdefs.h <<_ACEOF +#define BINDIR "$withval" +_ACEOF + + BINDIR="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define BINDIR "$HOME/unrealircd/bin" +_ACEOF + + BINDIR="$HOME/unrealircd/bin" +fi + + + +# Check whether --with-scriptdir was given. +if test "${with_scriptdir+set}" = set; then : + withval=$with_scriptdir; +cat >>confdefs.h <<_ACEOF +#define SCRIPTDIR "$withval" +_ACEOF + + SCRIPTDIR="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define SCRIPTDIR "$HOME/unrealircd" +_ACEOF + + SCRIPTDIR="$HOME/unrealircd" +fi + + + +# Check whether --with-confdir was given. +if test "${with_confdir+set}" = set; then : + withval=$with_confdir; +cat >>confdefs.h <<_ACEOF +#define CONFDIR "$withval" +_ACEOF + + CONFDIR="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define CONFDIR "$HOME/unrealircd/conf" +_ACEOF + + CONFDIR="$HOME/unrealircd/conf" +fi + + + +# Check whether --with-builddir was given. +if test "${with_builddir+set}" = set; then : + withval=$with_builddir; +cat >>confdefs.h <<_ACEOF +#define BUILDDIR "$withval" +_ACEOF + + BUILDDIR="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define BUILDDIR "$BUILDDIR_NOW" +_ACEOF + + BUILDDIR="$BUILDDIR_NOW" +fi + + + +# Check whether --with-modulesdir was given. +if test "${with_modulesdir+set}" = set; then : + withval=$with_modulesdir; +cat >>confdefs.h <<_ACEOF +#define MODULESDIR "$withval" +_ACEOF + + MODULESDIR="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define MODULESDIR "$HOME/unrealircd/modules" +_ACEOF + + MODULESDIR="$HOME/unrealircd/modules" +fi + + + +# Check whether --with-logdir was given. +if test "${with_logdir+set}" = set; then : + withval=$with_logdir; +cat >>confdefs.h <<_ACEOF +#define LOGDIR "$withval" +_ACEOF + + LOGDIR="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define LOGDIR "$HOME/unrealircd/logs" +_ACEOF + + LOGDIR="$HOME/unrealircd/logs" +fi + + + +# Check whether --with-cachedir was given. +if test "${with_cachedir+set}" = set; then : + withval=$with_cachedir; +cat >>confdefs.h <<_ACEOF +#define CACHEDIR "$withval" +_ACEOF + + CACHEDIR="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define CACHEDIR "$HOME/unrealircd/cache" +_ACEOF + + CACHEDIR="$HOME/unrealircd/cache" +fi + + + +# Check whether --with-tmpdir was given. +if test "${with_tmpdir+set}" = set; then : + withval=$with_tmpdir; +cat >>confdefs.h <<_ACEOF +#define TMPDIR "$withval" +_ACEOF + + TMPDIR="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define TMPDIR "$HOME/unrealircd/tmp" +_ACEOF + + TMPDIR="$HOME/unrealircd/tmp" +fi + + + +# Check whether --with-datadir was given. +if test "${with_datadir+set}" = set; then : + withval=$with_datadir; +cat >>confdefs.h <<_ACEOF +#define PERMDATADIR "$withval" +_ACEOF + + PERMDATADIR="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define DATADIR "$HOME/unrealircd/data" +_ACEOF + + PERMDATADIR="$HOME/unrealircd/data" +fi + + + +# Check whether --with-docdir was given. +if test "${with_docdir+set}" = set; then : + withval=$with_docdir; +cat >>confdefs.h <<_ACEOF +#define DOCDIR "$withval" +_ACEOF + + DOCDIR="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define DOCDIR "$HOME/unrealircd/doc" +_ACEOF + + DOCDIR="$HOME/unrealircd/doc" +fi + + + +# Check whether --with-pidfile was given. +if test "${with_pidfile+set}" = set; then : + withval=$with_pidfile; +cat >>confdefs.h <<_ACEOF +#define PIDFILE "$withval" +_ACEOF + + PIDFILE="$withval" +else + +cat >>confdefs.h <<_ACEOF +#define PIDFILE "$HOME/unrealircd/data/unrealircd.pid" +_ACEOF + + PIDFILE="$HOME/unrealircd/data/unrealircd.pid" +fi + + + +# Check whether --with-privatelibdir was given. +if test "${with_privatelibdir+set}" = set; then : + withval=$with_privatelibdir; +else + with_privatelibdir="yes" +fi + +if test "x$with_privatelibdir" = "xno"; then : + PRIVATELIBDIR= +elif test "x$with_privatelibdir" = "xyes"; then : + PRIVATELIBDIR="$HOME/unrealircd/lib" +else + PRIVATELIBDIR="$with_privatelibdir" +fi +if test "x$PRIVATELIBDIR" = "x"; then : + LDFLAGS_PRIVATELIBS="" +else + +cat >>confdefs.h <<_ACEOF +#define PRIVATELIBDIR "$PRIVATELIBDIR" +_ACEOF + + LDFLAGS_PRIVATELIBS="-Wl,-rpath,$PRIVATELIBDIR" + LDFLAGS="$LDFLAGS $LDFLAGS_PRIVATELIBS" + export LDFLAGS +fi + + + + + + + + + + + + + + + +# Check whether --with-maxconnections was given. +if test "${with_maxconnections+set}" = set; then : + withval=$with_maxconnections; ac_fd=$withval +else + ac_fd=0 +fi + + +cat >>confdefs.h <<_ACEOF +#define MAXCONNECTIONS_REQUEST $ac_fd +_ACEOF + + +# Check whether --enable-prefixaq was given. +if test "${enable_prefixaq+set}" = set; then : + enableval=$enable_prefixaq; +else + enable_prefixaq=yes +fi + +if test $enable_prefixaq = "yes"; then : + +$as_echo "#define PREFIX_AQ /**/" >>confdefs.h + +fi + + +# Check whether --with-showlistmodes was given. +if test "${with_showlistmodes+set}" = set; then : + withval=$with_showlistmodes; if test $withval = "yes"; then : + +$as_echo "#define LIST_SHOW_MODES /**/" >>confdefs.h + +fi +fi + + +# Check whether --with-no-operoverride was given. +if test "${with_no_operoverride+set}" = set; then : + withval=$with_no_operoverride; if test $withval = "yes"; then : + +$as_echo "#define NO_OPEROVERRIDE /**/" >>confdefs.h + +fi +fi + + +# Check whether --with-operoverride-verify was given. +if test "${with_operoverride_verify+set}" = set; then : + withval=$with_operoverride_verify; if test $withval = "yes"; then : + +$as_echo "#define OPEROVERRIDE_VERIFY /**/" >>confdefs.h + +fi +fi + + +# Check whether --with-system-pcre2 was given. +if test "${with_system_pcre2+set}" = set; then : + withval=$with_system_pcre2; +else + with_system_pcre2=yes +fi + + +# Check whether --with-system-argon2 was given. +if test "${with_system_argon2+set}" = set; then : + withval=$with_system_argon2; +else + with_system_argon2=yes +fi + + +# Check whether --with-system-cares was given. +if test "${with_system_cares+set}" = set; then : + withval=$with_system_cares; +else + with_system_cares=yes +fi + + +# Check whether --enable-ssl was given. +if test "${enable_ssl+set}" = set; then : + enableval=$enable_ssl; +else + enable_ssl=no +fi + +if test $enable_ssl != "no"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for OpenSSL" >&5 +$as_echo_n "checking for OpenSSL... " >&6; } + for dir in $enable_ssl /usr/local/opt/openssl /usr/local/ssl /usr/lib/ssl /usr/ssl /usr/pkg /usr/sfw /usr/local /usr; do + ssldir="$dir" + if test -f "$dir/include/openssl/ssl.h"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $ssldir/include/openssl" >&5 +$as_echo "found in $ssldir/include/openssl" >&6; } + found_ssl="yes"; + if test ! "$ssldir" = "/usr" ; then + CFLAGS="$CFLAGS -I$ssldir/include"; + fi + break + fi + if test -f "$dir/include/ssl.h"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: found in $ssldir/include" >&5 +$as_echo "found in $ssldir/include" >&6; } + found_ssl="yes"; + if test ! "$ssldir" = "/usr" ; then + CFLAGS="$CFLAGS -I$ssldir/include"; + fi + break + fi + done + if test x_$found_ssl != x_yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: not found" >&5 +$as_echo "not found" >&6; } + echo "" + echo "Apparently you do not have both the openssl binary and openssl development libraries installed." + echo "The following packages are required:" + echo "1) The library package is often called 'openssl-dev', 'openssl-devel' or 'libssl-dev'" + echo "2) The binary package is usually called 'openssl'." + echo "NOTE: you or your system administrator needs to install the library AND the binary package." + echo "After doing so, simply re-run ./Config" + exit 1 + else + CRYPTOLIB="-lssl -lcrypto"; + if test ! "$ssldir" = "/usr" ; then + LDFLAGS="$LDFLAGS -L$ssldir/lib"; + if test -f "$ssldir/bin/openssl"; then + OPENSSLPATH="$ssldir/bin/openssl"; + fi + fi + { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL linking with -ldl" >&5 +$as_echo_n "checking OpenSSL linking with -ldl... " >&6; } + SAVE_LIBS="$LIBS" + LIBS="$LIBS $CRYPTOLIB -ldl" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +ERR_clear_error(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + CRYPTOLIB="$CRYPTOLIB -ldl" + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking OpenSSL linking with -ldl and -lpthread" >&5 +$as_echo_n "checking OpenSSL linking with -ldl and -lpthread... " >&6; } + LIBS="$SAVE_LIBS $CRYPTOLIB -ldl -lpthread" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +ERR_clear_error(); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + CRYPTOLIB="$CRYPTOLIB -ldl -lpthread" + +else + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$SAVE_LIBS" + fi + +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_CTX_set1_curves_list in SSL library" >&5 +$as_echo_n "checking for SSL_CTX_set1_curves_list in SSL library... " >&6; } +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +SAVE_LIBS="$LIBS" +LIBS="$LIBS $CRYPTOLIB" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +SSL_CTX *ctx = NULL; SSL_CTX_set1_curves_list(ctx, "test"); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + has_function=1 +else + has_function=0 +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS="$SAVE_LIBS" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $has_function = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAS_SSL_CTX_SET1_CURVES_LIST /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for SSL_CTX_set_min_proto_version in SSL library" >&5 +$as_echo_n "checking for SSL_CTX_set_min_proto_version in SSL library... " >&6; } +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +SAVE_LIBS="$LIBS" +LIBS="$LIBS $CRYPTOLIB" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +SSL_CTX *ctx = NULL; SSL_CTX_set_min_proto_version(ctx, TLS1_VERSION); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + has_function=1 +else + has_function=0 +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS="$SAVE_LIBS" +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $has_function = 1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + +$as_echo "#define HAS_SSL_CTX_SET_MIN_PROTO_VERSION /**/" >>confdefs.h + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + +# Check whether --enable-dynamic-linking was given. +if test "${enable_dynamic_linking+set}" = set; then : + enableval=$enable_dynamic_linking; enable_dynamic_linking=$enableval +else + enable_dynamic_linking="yes" +fi + +if test $enable_dynamic_linking = "yes"; then : + +ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes; then : + +else + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +$as_echo_n "checking for dlopen in -ldl... " >&6; } +if ${ac_cv_lib_dl_dlopen+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char dlopen (); +int +main () +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_lib_dl_dlopen=yes +else + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +$as_echo "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes; then : + IRCDLIBS="$IRCDLIBS -ldl" +else + +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: Dynamic linking is not enabled because dlopen was not found" >&5 +$as_echo "$as_me: WARNING: Dynamic linking is not enabled because dlopen was not found" >&2;} +$as_echo "#define STATIC_LINKING 1" >>confdefs.h + + +fi + +fi + + +hold_cflags=$CFLAGS +DYNAMIC_LDFLAGS="" +CFLAGS="$CFLAGS -Wl,-export-dynamic" +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if we need the -export-dynamic flag" >&5 +$as_echo_n "checking if we need the -export-dynamic flag... " >&6; } +if ${ac_cv_export_dynamic+:} false; then : + $as_echo_n "(cached) " >&6 +else + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ +int i; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ac_cv_export_dynamic=yes +else + ac_cv_export_dynamic=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_export_dynamic" >&5 +$as_echo "$ac_cv_export_dynamic" >&6; } +CFLAGS=$hold_cflags +if test "$ac_cv_export_dynamic" = "yes"; then + DYNAMIC_LDFLAGS="-Wl,-export-dynamic" +fi + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for compiler option to produce PIC" >&5 +$as_echo_n "checking for compiler option to produce PIC... " >&6; } +if ${ac_cv_pic+:} false; then : + $as_echo_n "(cached) " >&6 +else + +if test "$ac_cv_c_compiler_gnu" = "yes"; then + ac_cv_pic="-fPIC -DPIC -shared" + case `uname -s` in + Darwin*) + ac_cv_pic="-std=gnu89 -bundle -flat_namespace -undefined suppress" + ;; + HP-UX*) + ac_cv_pic="-fPIC" + ;; + esac +else +case `uname -s` in + SunOS*) + ac_cv_pic="-KPIC -DPIC -G" + ;; +esac +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_pic" >&5 +$as_echo "$ac_cv_pic" >&6; } +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if your system prepends an underscore on symbols" >&5 +$as_echo_n "checking if your system prepends an underscore on symbols... " >&6; } +if ${ac_cv_underscore+:} false; then : + $as_echo_n "(cached) " >&6 +else + +cat >uscore.c << __EOF__ +int main() { + return 0; +} +__EOF__ +$CC -o uscore $CFLAGS uscore.c 1>&5 +if test -z "`strings -a uscore |grep '^_main$'`"; then +ac_cv_underscore=no +else +ac_cv_underscore=yes +fi +rm -f uscore uscore.c + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_underscore" >&5 +$as_echo "$ac_cv_underscore" >&6; } +if test "$ac_cv_underscore" = "yes"; then + +$as_echo "#define UNDERSCORE /**/" >>confdefs.h + +fi + +MODULEFLAGS="$ac_cv_pic $DYNAMIC_LDFLAGS" + +else + +$as_echo "#define STATIC_LINKING /**/" >>confdefs.h + +fi + +# Check whether --enable-werror was given. +if test "${enable_werror+set}" = set; then : + enableval=$enable_werror; ac_cv_werror="$enableval" +else + ac_cv_werror="no" +fi + + +# Check whether --enable-asan was given. +if test "${enable_asan+set}" = set; then : + enableval=$enable_asan; ac_cv_asan="$enableval" +else + ac_cv_asan="no" +fi + + +for ac_func in poll +do : + ac_fn_c_check_func "$LINENO" "poll" "ac_cv_func_poll" +if test "x$ac_cv_func_poll" = xyes; then : + cat >>confdefs.h <<_ACEOF +#define HAVE_POLL 1 +_ACEOF + +$as_echo "#define HAVE_POLL /**/" >>confdefs.h + +fi +done + +for ac_func in epoll_create epoll_ctl epoll_wait +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +$as_echo "#define HAVE_EPOLL /**/" >>confdefs.h + +fi +done + +for ac_func in kqueue kevent +do : + as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes"; then : + cat >>confdefs.h <<_ACEOF +#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + +$as_echo "#define HAVE_KQUEUE /**/" >>confdefs.h + +fi +done + + +export PATH_SEPARATOR + +has_system_pcre2="no" + + + + + + + +if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. +set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +PKG_CONFIG=$ac_cv_path_PKG_CONFIG +if test -n "$PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PKG_CONFIG" >&5 +$as_echo "$PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_PKG_CONFIG"; then + ac_pt_PKG_CONFIG=$PKG_CONFIG + # Extract the first word of "pkg-config", so it can be a program name with args. +set dummy pkg-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_ac_pt_PKG_CONFIG+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $ac_pt_PKG_CONFIG in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG +if test -n "$ac_pt_PKG_CONFIG"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_pt_PKG_CONFIG" >&5 +$as_echo "$ac_pt_PKG_CONFIG" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + if test "x$ac_pt_PKG_CONFIG" = x; then + PKG_CONFIG="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + PKG_CONFIG=$ac_pt_PKG_CONFIG + fi +else + PKG_CONFIG="$ac_cv_path_PKG_CONFIG" +fi + +fi +if test -n "$PKG_CONFIG"; then + _pkg_min_version=0.9.0 + { $as_echo "$as_me:${as_lineno-$LINENO}: checking pkg-config is at least version $_pkg_min_version" >&5 +$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } + if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + PKG_CONFIG="" + fi +fi +if test "x$with_system_pcre2" = "xyes"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for PCRE2" >&5 +$as_echo_n "checking for PCRE2... " >&6; } + +if test -n "$PCRE2_CFLAGS"; then + pkg_cv_PCRE2_CFLAGS="$PCRE2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8 >= 10.00\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libpcre2-8 >= 10.00") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PCRE2_CFLAGS=`$PKG_CONFIG --cflags "libpcre2-8 >= 10.00" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$PCRE2_LIBS"; then + pkg_cv_PCRE2_LIBS="$PCRE2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libpcre2-8 >= 10.00\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libpcre2-8 >= 10.00") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_PCRE2_LIBS=`$PKG_CONFIG --libs "libpcre2-8 >= 10.00" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + PCRE2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libpcre2-8 >= 10.00" 2>&1` + else + PCRE2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libpcre2-8 >= 10.00" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$PCRE2_PKG_ERRORS" >&5 + + has_system_pcre2=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + has_system_pcre2=no +else + PCRE2_CFLAGS=$pkg_cv_PCRE2_CFLAGS + PCRE2_LIBS=$pkg_cv_PCRE2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + has_system_pcre2=yes +if test "x$PRIVATELIBDIR" != "x"; then : + rm -f "$PRIVATELIBDIR/"libpcre2* +fi +fi +fi + +if test "$has_system_pcre2" = "no"; then : + +pcre2_version="10.33" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: extracting PCRE2 regex library" >&5 +$as_echo "extracting PCRE2 regex library" >&6; } +cur_dir=`pwd` +cd extras +rm -rf pcre2-$pcre2_version pcre2 +if test "x$ac_cv_path_GUNZIP" = "x" ; then + tar xfz pcre2.tar.gz +else + cp pcre2.tar.gz pcre2.tar.gz.bak + gunzip -f pcre2.tar.gz + cp pcre2.tar.gz.bak pcre2.tar.gz + tar xf pcre2.tar +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: configuring PCRE2 regex library" >&5 +$as_echo "configuring PCRE2 regex library" >&6; } +cd pcre2-$pcre2_version +./configure --enable-jit --enable-shared --disable-unicode --prefix=$cur_dir/extras/pcre2 --libdir=$PRIVATELIBDIR || exit 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: compiling PCRE2 regex library" >&5 +$as_echo "compiling PCRE2 regex library" >&6; } +$ac_cv_prog_MAKER || exit 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: installing PCRE2 regex library" >&5 +$as_echo "installing PCRE2 regex library" >&6; } +$ac_cv_prog_MAKER install || exit 1 +PCRE2_CFLAGS="-I$cur_dir/extras/pcre2/include" + +PCRE2_LIBS= +if test -n "$ac_cv_path_PKGCONFIG"; then : + PCRE2_LIBS="`$ac_cv_path_PKGCONFIG --libs libpcre2-8.pc`" +fi +if test -z "$PCRE2_LIBS"; then : + PCRE2_LIBS="$PRIVATELIBDIR/libpcre2-8.so" +fi + +cd $cur_dir + +fi + +has_system_argon2="no" +if test "x$with_system_argon2" = "xyes"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for ARGON2" >&5 +$as_echo_n "checking for ARGON2... " >&6; } + +if test -n "$ARGON2_CFLAGS"; then + pkg_cv_ARGON2_CFLAGS="$ARGON2_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libargon2 >= 0~20161029\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libargon2 >= 0~20161029") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ARGON2_CFLAGS=`$PKG_CONFIG --cflags "libargon2 >= 0~20161029" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$ARGON2_LIBS"; then + pkg_cv_ARGON2_LIBS="$ARGON2_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libargon2 >= 0~20161029\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libargon2 >= 0~20161029") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_ARGON2_LIBS=`$PKG_CONFIG --libs "libargon2 >= 0~20161029" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + ARGON2_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libargon2 >= 0~20161029" 2>&1` + else + ARGON2_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libargon2 >= 0~20161029" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$ARGON2_PKG_ERRORS" >&5 + + has_system_argon2=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + has_system_argon2=no +else + ARGON2_CFLAGS=$pkg_cv_ARGON2_CFLAGS + ARGON2_LIBS=$pkg_cv_ARGON2_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + has_system_argon2=yes +if test "x$PRIVATELIBDIR" != "x"; then : + rm -f "$PRIVATELIBDIR/"libargon2* +fi +fi +fi + +if test "$has_system_argon2" = "no"; then : + +argon2_version="20181209" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: extracting Argon2 library" >&5 +$as_echo "extracting Argon2 library" >&6; } +cur_dir=`pwd` +cd extras +rm -rf argon2-$argon2_version argon2 +if test "x$ac_cv_path_GUNZIP" = "x" ; then + tar xfz argon2-$argon2_version.tar.gz +else + cp argon2-$argon2_version.tar.gz argon2-$argon2_version.tar.gz.bak + gunzip -f argon2-$argon2_version.tar.gz + cp argon2-$argon2_version.tar.gz.bak argon2-$argon2_version.tar.gz + tar xf argon2-$argon2_version.tar +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: compiling Argon2 library" >&5 +$as_echo "compiling Argon2 library" >&6; } +cd argon2-$argon2_version +$ac_cv_prog_MAKER || exit 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: installing Argon2 library" >&5 +$as_echo "installing Argon2 library" >&6; } +$ac_cv_prog_MAKER install PREFIX=$cur_dir/extras/argon2 || exit 1 +# We need to manually copy the libs to PRIVATELIBDIR because +# there is no way to tell make install in libargon2 to do so. +cp -av $cur_dir/extras/argon2/lib/* $PRIVATELIBDIR/ +ARGON2_CFLAGS="-I$cur_dir/extras/argon2/include" + +ARGON2_LIBS="-L$PRIVATELIBDIR -largon2" + +cd $cur_dir + +fi + +has_system_cares="no" +if test "x$with_system_cares" = "xyes"; then : + + +pkg_failed=no +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for CARES" >&5 +$as_echo_n "checking for CARES... " >&6; } + +if test -n "$CARES_CFLAGS"; then + pkg_cv_CARES_CFLAGS="$CARES_CFLAGS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcares >= 1.6.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libcares >= 1.6.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CARES_CFLAGS=`$PKG_CONFIG --cflags "libcares >= 1.6.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi +if test -n "$CARES_LIBS"; then + pkg_cv_CARES_LIBS="$CARES_LIBS" + elif test -n "$PKG_CONFIG"; then + if test -n "$PKG_CONFIG" && \ + { { $as_echo "$as_me:${as_lineno-$LINENO}: \$PKG_CONFIG --exists --print-errors \"libcares >= 1.6.0\""; } >&5 + ($PKG_CONFIG --exists --print-errors "libcares >= 1.6.0") 2>&5 + ac_status=$? + $as_echo "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + pkg_cv_CARES_LIBS=`$PKG_CONFIG --libs "libcares >= 1.6.0" 2>/dev/null` + test "x$?" != "x0" && pkg_failed=yes +else + pkg_failed=yes +fi + else + pkg_failed=untried +fi + + + +if test $pkg_failed = yes; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + +if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then + _pkg_short_errors_supported=yes +else + _pkg_short_errors_supported=no +fi + if test $_pkg_short_errors_supported = yes; then + CARES_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors --cflags --libs "libcares >= 1.6.0" 2>&1` + else + CARES_PKG_ERRORS=`$PKG_CONFIG --print-errors --cflags --libs "libcares >= 1.6.0" 2>&1` + fi + # Put the nasty error message in config.log where it belongs + echo "$CARES_PKG_ERRORS" >&5 + + has_system_cares=no +elif test $pkg_failed = untried; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + has_system_cares=no +else + CARES_CFLAGS=$pkg_cv_CARES_CFLAGS + CARES_LIBS=$pkg_cv_CARES_LIBS + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } + has_system_cares=yes +if test "x$PRIVATELIBDIR" != "x"; then : + rm -f "$PRIVATELIBDIR/"libcares* +fi +fi +fi + +if test "$has_system_cares" = "no"; then : + +cares_version="1.15.0" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: extracting c-ares resolver library" >&5 +$as_echo "extracting c-ares resolver library" >&6; } +cur_dir=`pwd` +cd extras +rm -rf c-ares-$cares_version c-ares +if test "x$ac_cv_path_GUNZIP" = "x" ; then + tar xfz c-ares.tar.gz +else + cp c-ares.tar.gz c-ares.tar.gz.bak + gunzip -f c-ares.tar.gz + cp c-ares.tar.gz.bak c-ares.tar.gz + tar xf c-ares.tar +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: configuring c-ares library" >&5 +$as_echo "configuring c-ares library" >&6; } +cd c-ares-$cares_version +save_cflags="$CFLAGS" +CFLAGS="$orig_cflags" +export CFLAGS +./configure --prefix=$cur_dir/extras/c-ares --libdir=$PRIVATELIBDIR --enable-shared || exit 1 +CFLAGS="$save_cflags" +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: compiling c-ares resolver library" >&5 +$as_echo "compiling c-ares resolver library" >&6; } +$ac_cv_prog_MAKER || exit 1 +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: installing c-ares resolver library" >&5 +$as_echo "installing c-ares resolver library" >&6; } +$ac_cv_prog_MAKER install || exit 1 +CARES_CFLAGS="-I$cur_dir/extras/c-ares/include" + +CARES_LIBS="-L$PRIVATELIBDIR" + +cd ../.. +CARESLIBSALT="$PRIVATELIBDIR/libcares.so" +cd - +case `uname -s` in + *FreeBSD*) + CARESLIBSALT="$CARESLIBSALT" + ;; + *Linux*) + CARESLIBSALT="$CARESLIBSALT -lrt" + ;; + *SunOS*) + CARESLIBSALT="$CARESLIBSALT -lrt" + ;; +esac + +if test "x$ac_cv_path_PKGCONFIG" = "x" ; then + CARES_LIBS="$CARES_LIBS $CARESLIBSALT" +else + CARES_LIBSPRE="$CARES_LIBS" + CARES_LIBS="$CARES_LIBS `$ac_cv_path_PKGCONFIG --libs libcares.pc | sed -e 's,-L\([^ ]\+lib\) -lcares,\1/libcares.so,'`" + if test "$CARES_LIBS" = "$CARES_LIBSPRE " ; then + CARES_LIBS="$CARES_LIBS $CARESLIBSALT" + fi +fi + +cd $cur_dir + +fi + +# Make sure we can run config.sub. +$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL $ac_aux_dir/config.sub" "$LINENO" 5 + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +$as_echo_n "checking build system type... " >&6; } +if ${ac_cv_build+:} false; then : + $as_echo_n "(cached) " >&6 +else + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +$as_echo "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +$as_echo_n "checking host system type... " >&6; } +if ${ac_cv_host+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || + as_fn_error $? "$SHELL $ac_aux_dir/config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +$as_echo "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5 +$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char pthread_join (); +int +main () +{ +return pthread_join (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test x"$ax_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case ${host_os} in + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; + + darwin*) + ax_pthread_flags="-pthread $ax_pthread_flags" + ;; +esac + +# Clang doesn't consider unrecognized options an error unless we specify +# -Werror. We throw in some extra Clang-specific options to ensure that +# this doesn't happen for GCC, which also accepts -Werror. + +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking if compiler needs -Werror to reject unknown flags" >&5 +$as_echo_n "checking if compiler needs -Werror to reject unknown flags... " >&6; } +save_CFLAGS="$CFLAGS" +ax_pthread_extra_flags="-Werror" +CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo(void); +int +main () +{ +foo() + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + ax_pthread_extra_flags= + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext +CFLAGS="$save_CFLAGS" + +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do + + case $flag in + none) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work without any flags" >&5 +$as_echo_n "checking whether pthreads work without any flags... " >&6; } + ;; + + -*) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether pthreads work with $flag" >&5 +$as_echo_n "checking whether pthreads work with $flag... " >&6; } + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + # Extract the first word of "pthread-config", so it can be a program name with args. +set dummy pthread-config; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_ax_pthread_config+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$ax_pthread_config"; then + ac_cv_prog_ax_pthread_config="$ax_pthread_config" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_ax_pthread_config="yes" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_prog_ax_pthread_config" && ac_cv_prog_ax_pthread_config="no" +fi +fi +ax_pthread_config=$ac_cv_prog_ax_pthread_config +if test -n "$ax_pthread_config"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_config" >&5 +$as_echo "$ax_pthread_config" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for the pthreads library -l$flag" >&5 +$as_echo_n "checking for the pthreads library -l$flag... " >&6; } + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; } +int +main () +{ +pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_pthread_ok=yes +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_pthread_ok" >&5 +$as_echo "$ax_pthread_ok" >&6; } + if test "x$ax_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$ax_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for joinable pthread attribute" >&5 +$as_echo_n "checking for joinable pthread attribute... " >&6; } + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int attr = $attr; return attr /* ; */ + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + attr_name=$attr; break +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + done + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $attr_name" >&5 +$as_echo "$attr_name" >&6; } + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + +cat >>confdefs.h <<_ACEOF +#define PTHREAD_CREATE_JOINABLE $attr_name +_ACEOF + + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking if more special flags are required for pthreads" >&5 +$as_echo_n "checking if more special flags are required for pthreads... " >&6; } + flag=no + case ${host_os} in + aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; + osf* | hpux*) flag="-D_REENTRANT";; + solaris*) + if test "$GCC" = "yes"; then + flag="-D_REENTRANT" + else + # TODO: What about Clang on Solaris? + flag="-mt -D_REENTRANT" + fi + ;; + esac + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $flag" >&5 +$as_echo "$flag" >&6; } + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking for PTHREAD_PRIO_INHERIT" >&5 +$as_echo_n "checking for PTHREAD_PRIO_INHERIT... " >&6; } +if ${ax_cv_PTHREAD_PRIO_INHERIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main () +{ +int i = PTHREAD_PRIO_INHERIT; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + ax_cv_PTHREAD_PRIO_INHERIT=yes +else + ax_cv_PTHREAD_PRIO_INHERIT=no +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + +fi +{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $ax_cv_PTHREAD_PRIO_INHERIT" >&5 +$as_echo "$ax_cv_PTHREAD_PRIO_INHERIT" >&6; } + if test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"; then : + +$as_echo "#define HAVE_PTHREAD_PRIO_INHERIT 1" >>confdefs.h + +fi + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != xyes; then + case $host_os in + aix*) + case "x/$CC" in #( + x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6) : + #handle absolute path differently from PATH based program lookup + case "x$CC" in #( + x/*) : + if as_fn_executable_p ${CC}_r; then : + PTHREAD_CC="${CC}_r" +fi ;; #( + *) : + for ac_prog in ${CC}_r +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_prog_PTHREAD_CC+:} false; then : + $as_echo_n "(cached) " >&6 +else + if test -n "$PTHREAD_CC"; then + ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_prog_PTHREAD_CC="$ac_prog" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +PTHREAD_CC=$ac_cv_prog_PTHREAD_CC +if test -n "$PTHREAD_CC"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $PTHREAD_CC" >&5 +$as_echo "$PTHREAD_CC" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + test -n "$PTHREAD_CC" && break +done +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + ;; +esac ;; #( + *) : + ;; +esac + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + + + + + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$ax_pthread_ok" = xyes; then + +$as_echo "#define HAVE_PTHREAD 1" >>confdefs.h + + : +else + ax_pthread_ok=no + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + # Check whether --enable-libcurl was given. +if test "${enable_libcurl+set}" = set; then : + enableval=$enable_libcurl; enable_curl=$enableval +else + enable_curl=no +fi + + + if test "x$enable_curl" != "xno"; then : + + CURLCONFIG="curl-config" + if test "x$enable_curl" != "xyes"; then : + CURLCONFIG="$enable_curl/bin/curl-config" +fi + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking $CURLCONFIG" >&5 +$as_echo_n "checking $CURLCONFIG... " >&6; } + if $CURLCONFIG --version 2>/dev/null >/dev/null; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Could not find curl-config, try editing --enable-libcurl +See \`config.log' for more details" "$LINENO" 5; } +fi + + CURLCFLAG="`$CURLCONFIG --cflags`" + CURLLIBS="`$CURLCONFIG --libs`" + + if $CURLCONFIG --libs | grep -q -e ares; then : + CURLUSESCARES="1" +else + CURLUSESCARES="0" +fi + + if test -z "${CURLLIBS}"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: CURLLIBS is empty, that probably means that I could not find $enable_curl/bin/curl-config" >&5 +$as_echo "$as_me: WARNING: CURLLIBS is empty, that probably means that I could not find $enable_curl/bin/curl-config" >&2;} +fi + + + if test "x$has_system_cares" = "xno" && test "x$BUILDDIR/extras/curl" != "x$enable_curl" && test "$CURLUSESCARES" != "0" ; then : + + as_fn_error $? " + + You have decided to build unrealIRCd with libcURL (remote includes) support. + However, you have system-installed c-ares support has either been disabled + (--without-system-cares) or is unavailable. + Because UnrealIRCd will use a bundled copy of c-ares which may be incompatible + with the system-installed libcURL, this is a bad idea which may result in error + messages looking like: + + \`\`[error] unrealircd.conf:9: include: error downloading '(http://example.net/ex.conf)': Could not resolve host: example.net (Successful completion)'' + + Or UnrealIRCd might even crash. + + Please build UnrealIRCd with --with-system-cares when enabling --enable-libcurl +" "$LINENO" 5 + +fi + + IRCDLIBS="$IRCDLIBS $CURLLIBS" + CFLAGS="$CFLAGS $CURLCFLAG" + +$as_echo "#define USE_LIBCURL /**/" >>confdefs.h + + + { $as_echo "$as_me:${as_lineno-$LINENO}: checking curl_easy_init() in $CURLLIBS" >&5 +$as_echo_n "checking curl_easy_init() in $CURLLIBS... " >&6; } + LIBS_SAVEDA="$LIBS" + CFLAGS_SAVEDA="$CFLAGS" + + LIBS="$IRCDLIBS $IRCDLIBS_CURL_CARES" + CFLAGS="$CFLAGS $CFLAGS_CURL_CARES" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + #include +int +main () +{ +CURL *curl = curl_easy_init(); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO"; then : + { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +$as_echo "yes" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } + { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "You asked for libcURL (remote includes) support, but it can't be found at $enable_curl +See \`config.log' for more details" "$LINENO" 5; } + +fi +rm -f core conftest.err conftest.$ac_objext \ + conftest$ac_exeext conftest.$ac_ext + LIBS="$LIBS_SAVEDA" + CFLAGS="$CFLAGS_SAVEDA" + + URL="url.o" + + +fi + +UNRLINCDIR="`pwd`/include" + +if test "$ac_cv_werror" = "yes" ; then + CFLAGS="$CFLAGS -Werror" +fi + +if test "$ac_cv_asan" = "yes" ; then + CFLAGS="$CFLAGS -O1 -fno-inline -fsanitize=address -fno-omit-frame-pointer -DNOCLOSEFD" + IRCDLIBS="-fsanitize=address $IRCDLIBS" +fi + + + + + +ac_config_files="$ac_config_files Makefile src/Makefile src/modules/Makefile src/modules/chanmodes/Makefile src/modules/usermodes/Makefile src/modules/snomasks/Makefile src/modules/extbans/Makefile src/modules/third/Makefile unrealircd" + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +$as_echo "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`$as_echo "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ $as_echo "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + +as_nl=' +' +export as_nl +# Printing a long string crashes Solaris 7 /usr/bin/printf. +as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo +as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo +# Prefer a ksh shell builtin over an external printf program on Solaris, +# but without wasting forks for bash or zsh. +if test -z "$BASH_VERSION$ZSH_VERSION" \ + && (test "X`print -r -- $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='print -r --' + as_echo_n='print -rn --' +elif (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then + as_echo='printf %s\n' + as_echo_n='printf %s' +else + if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then + as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' + as_echo_n='/usr/ucb/echo -n' + else + as_echo_body='eval expr "X$1" : "X\\(.*\\)"' + as_echo_n_body='eval + arg=$1; + case $arg in #( + *"$as_nl"*) + expr "X$arg" : "X\\(.*\\)$as_nl"; + arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; + esac; + expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" + ' + export as_echo_n_body + as_echo_n='sh -c $as_echo_n_body as_echo' + fi + export as_echo_body + as_echo='sh -c $as_echo_body as_echo' +fi + +# The user is always right. +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + +# IFS +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent editors from complaining about space-tab. +# (If _AS_PATH_WALK were called with IFS unset, it would disable word +# splitting by setting IFS to empty value.) +IFS=" "" $as_nl" + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + +# Unset variables that we do not need and which cause bugs (e.g. in +# pre-3.0 UWIN ksh). But do not cause bugs in bash 2.01; the "|| exit 1" +# suppresses any "Segmentation fault" message there. '((' could +# trigger a bug in pdksh 5.2.14. +for as_var in BASH_ENV ENV MAIL MAILPATH +do eval test x\${$as_var+set} = xset \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done +PS1='$ ' +PS2='> ' +PS4='+ ' + +# NLS nuisances. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + $as_echo "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + $as_echo "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null; then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null; then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by unrealircd $as_me 5.0.3.1, which was +generated by GNU Autoconf 2.69. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Report bugs to . +unrealircd home page: ." + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" +ac_cs_version="\\ +unrealircd config.status 5.0.3.1 +configured by $0, generated by GNU Autoconf 2.69, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2012 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + $as_echo "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + $as_echo "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + $as_echo "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + $as_echo "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "include/setup.h") CONFIG_HEADERS="$CONFIG_HEADERS include/setup.h" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/modules/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/Makefile" ;; + "src/modules/chanmodes/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/chanmodes/Makefile" ;; + "src/modules/usermodes/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/usermodes/Makefile" ;; + "src/modules/snomasks/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/snomasks/Makefile" ;; + "src/modules/extbans/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/extbans/Makefile" ;; + "src/modules/third/Makefile") CONFIG_FILES="$CONFIG_FILES src/modules/third/Makefile" ;; + "unrealircd") CONFIG_FILES="$CONFIG_FILES unrealircd" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files + test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS " +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { $as_echo "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +$as_echo "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`$as_echo "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +$as_echo X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +$as_echo "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + $as_echo "/* $configure_input */" \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi + ;; + + + esac + +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + +chmod 0700 unrealircd diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..983b6dd --- /dev/null +++ b/configure.ac @@ -0,0 +1,721 @@ +dnl Process this file with autoconf to produce a configure script. + +dnl When updating the version, remember to update the following files +dnl appropriately: +dnl include/windows/setup.h +dnl src/windows/unrealinst.iss +dnl doc/Config.header +dnl src/version.c.SH + +AC_INIT([unrealircd], [5.0.3.1], [https://bugs.unrealircd.org/], [], [https://unrealircd.org/]) +AC_CONFIG_SRCDIR([src/ircd.c]) +AC_CONFIG_HEADER([include/setup.h]) +AC_CONFIG_AUX_DIR([autoconf]) +AC_CONFIG_MACRO_DIR([autoconf/m4]) + +if test "x$enable_dynamic_linking" = "x"; then + echo "Please use ./Config instead of ./configure" + exit 1 +fi + +dnl Save CFLAGS, use this when building the libraries like c-ares +orig_cflags="$CFLAGS" + +dnl Save build directory early on (used in our m4 macros too) +BUILDDIR_NOW="`pwd`" + +dnl Calculate the versions. Perhaps the use of expr is a little too extravagant +# Generation version number (e.g.: X in X.Y.Z) +UNREAL_VERSION_GENERATION=["5"] +AC_DEFINE_UNQUOTED([UNREAL_VERSION_GENERATION], [$UNREAL_VERSION_GENERATION], [Generation version number (e.g.: X for X.Y.Z)]) + +# Major version number (e.g.: Y in X.Y.Z) +UNREAL_VERSION_MAJOR=["0"] +AC_DEFINE_UNQUOTED([UNREAL_VERSION_MAJOR], [$UNREAL_VERSION_MAJOR], [Major version number (e.g.: Y for X.Y.Z)]) + +# Minor version number (e.g.: Z in X.Y.Z) +UNREAL_VERSION_MINOR=["3"] +AC_DEFINE_UNQUOTED([UNREAL_VERSION_MINOR], [$UNREAL_VERSION_MINOR], [Minor version number (e.g.: Z for X.Y.Z)]) + +# The version suffix such as a beta marker or release candidate +# marker. (e.g.: -rcX for unrealircd-3.2.9-rcX). This macro is a +# string instead of an integer because it contains arbitrary data. +UNREAL_VERSION_SUFFIX=[".1"] +AC_DEFINE_UNQUOTED([UNREAL_VERSION_SUFFIX], ["$UNREAL_VERSION_SUFFIX"], [Version suffix such as a beta marker or release candidate marker. (e.g.: -rcX for unrealircd-3.2.9-rcX)]) + +AC_PATH_PROG(RM,rm) +AC_PATH_PROG(CP,cp) +AC_PATH_PROG(TOUCH,touch) +AC_PATH_PROG(OPENSSLPATH,openssl) +AS_IF([test x"$OPENSSLPATH" = "x"], +[ +echo "" +echo "Apparently you do not have both the openssl binary and openssl development libraries installed." +echo "The following packages are required:" +echo "1) The library package is often called 'openssl-dev', 'openssl-devel' or 'libssl-dev'" +echo "2) The binary package is usually called 'openssl'." +echo "NOTE: you or your system administrator needs to install the library AND the binary package." +echo "After doing so, simply re-run ./Config" +exit 1 +]) + +AC_PATH_PROG(INSTALL,install) +AC_CHECK_PROG(MAKER, gmake, gmake, make) +AC_PATH_PROG(GMAKE,gmake) + +AS_IF([$MAKER --version | grep -q "GNU Make"], + [GNUMAKE="0"], + [AC_MSG_ERROR([It seems your system does not have gmake installed. Please install gmake.])]) + +AC_PATH_PROG(GUNZIP, gunzip) +AC_PATH_PROG(PKGCONFIG, pkg-config) + +dnl Check for compiler +AC_PROG_CC_C99 +AS_IF([test "$ac_cv_prog_cc_c99" = "no"], + [AC_MSG_ERROR([No C99 compiler was found. Please install gcc or clang and other build tools. Eg, on Debian/Ubuntu you probably want to run the following as root: apt-get install build-essential ])]) + +dnl Checks for libraries. +AC_CHECK_LIB(descrypt, crypt, + [AC_DEFINE([HAVE_CRYPT], [], [Define if you have crypt]) + IRCDLIBS="$IRCDLIBS-ldescrypt "], + [AC_CHECK_LIB(crypt, crypt, + [AC_DEFINE([HAVE_CRYPT], [], [Define if you have crypt]) + IRCDLIBS="$IRCDLIBS-lcrypt "])]) + +dnl HARDENING START +dnl This is taken from https://github.com/kmcallister/autoharden +dnl With some very small modifications (to remove C++ checking for instance) +# We want to check for compiler flag support, but there is no way to make +# clang's "argument unused" warning fatal. So we invoke the compiler through a +# wrapper script that greps for this message. +saved_CC="$CC" +saved_CXX="$CXX" +saved_LD="$LD" +flag_wrap="$srcdir/extras/wrap-compiler-for-flag-check" +CC="$flag_wrap $CC" +CXX="$flag_wrap $CXX" +LD="$flag_wrap $LD" + +# We use the same hardening flags for C and C++. We must check that each flag +# is supported by both compilers. +AC_DEFUN([check_cc_flag], + [AC_LANG_PUSH(C) + AX_CHECK_COMPILE_FLAG([$1], [$2], [$3], [-Werror $4]) + AC_LANG_POP(C)]) + +AC_DEFUN([check_link_flag], + [AX_CHECK_LINK_FLAG([$1], [$2], [$3], [-Werror $4])]) + +AC_ARG_ENABLE([hardening], + [AS_HELP_STRING([--enable-hardening], + [Enable compiler and linker options to frustrate memory corruption exploits @<:@yes@:>@])], + [hardening="$enableval"], + [hardening="yes"]) + +HARDEN_CFLAGS="" +HARDEN_LDFLAGS="" +AS_IF([test x"$hardening" != x"no"], [ + check_cc_flag([-fno-strict-overflow], [HARDEN_CFLAGS="$HARDEN_CFLAGS -fno-strict-overflow"]) + + # This one will likely succeed, even on platforms where it does nothing. + check_cc_flag([-D_FORTIFY_SOURCE=2], [HARDEN_CFLAGS="$HARDEN_CFLAGS -D_FORTIFY_SOURCE=2"]) + + check_cc_flag([-fstack-protector-all], + [check_link_flag([-fstack-protector-all], + [HARDEN_CFLAGS="$HARDEN_CFLAGS -fstack-protector-all" + check_cc_flag([-Wstack-protector], [HARDEN_CFLAGS="$HARDEN_CFLAGS -Wstack-protector"], + [], [-fstack-protector-all]) + check_cc_flag([--param ssp-buffer-size=1], [HARDEN_CFLAGS="$HARDEN_CFLAGS --param ssp-buffer-size=1"], + [], [-fstack-protector-all])])]) + + # At the link step, we might want -pie (GCC) or -Wl,-pie (Clang on OS X) + # + # The linker checks also compile code, so we need to include -fPIE as well. + check_cc_flag([-fPIE], + [check_link_flag([-fPIE -pie], + [HARDEN_BINCFLAGS="-fPIE" + HARDEN_BINLDFLAGS="-pie"], + [check_link_flag([-fPIE -Wl,-pie], + [HARDEN_BINCFLAGS="-fPIE" + HARDEN_BINLDFLAGS="-Wl,-pie"])])]) + + check_link_flag([-Wl,-z,relro], + [HARDEN_LDFLAGS="$HARDEN_LDFLAGS -Wl,-z,relro" + check_link_flag([-Wl,-z,now], [HARDEN_LDFLAGS="$HARDEN_LDFLAGS -Wl,-z,now"])])]) +AC_SUBST([HARDEN_CFLAGS]) +AC_SUBST([HARDEN_LDFLAGS]) +AC_SUBST([HARDEN_BINCFLAGS]) +AC_SUBST([HARDEN_BINLDFLAGS]) + +# End of flag tests. +CC="$saved_CC" +CXX="$saved_CXX" +LD="$saved_LD" +dnl HARDENING END + +dnl UnrealIRCd might not be strict-aliasing safe at this time +check_cc_flag([-fno-strict-aliasing], [CFLAGS="$CFLAGS -fno-strict-aliasing"]) + +dnl UnrealIRCd should be able to compile with -fno-common +dnl This also makes ASan (if it is in use) able to instrument these variables. +check_cc_flag([-fno-common], [CFLAGS="$CFLAGS -fno-common"]) + +dnl Previously -funsigned-char was in a config check. It would always +dnl be enabled with gcc and clang. We now unconditionally enable it, +dnl skipping the check. This will cause an error if someone uses a +dnl non-gcc/non-clang compiler that does not support -funsigned-char +dnl which is good. After all, we really depend on it. +dnl UnrealIRCd should never be compiled without char being unsigned. +CFLAGS="$CFLAGS -funsigned-char" + +dnl Compiler -W checks... + +dnl We should be able to turn this on unconditionally: +CFLAGS="$CFLAGS -Wall" + +dnl More warnings (if the compiler supports it): +check_cc_flag([-Wextra], [CFLAGS="$CFLAGS -Wextra"]) +check_cc_flag([-Waggregate-return], [CFLAGS="$CFLAGS -Waggregate-return"]) +dnl The following few are more experimental, if they have false positives we'll have +dnl to disable them: +dnl Can't use this, too bad: check_cc_flag([-Wlogical-op], [CFLAGS="$CFLAGS -Wlogical-op"]) +check_cc_flag([-Wduplicated-cond], [CFLAGS="$CFLAGS -Wduplicated-cond"]) +check_cc_flag([-Wduplicated-branches], [CFLAGS="$CFLAGS -Wduplicated-branches"]) + +dnl And now to filter out certain warnings: +dnl [!] NOTE REGARDING THE check_cc_flag used by these: +dnl We check for the -Woption even though we are going to use -Wno-option. +dnl This is due to the following (odd) gcc behavior: +dnl "When an unrecognized warning option is requested (e.g., +dnl -Wunknown-warning), GCC emits a diagnostic stating that the option is not +dnl recognized. However, if the -Wno- form is used, the behavior is slightly +dnl different: no diagnostic is produced for -Wno-unknown-warning unless +dnl other diagnostics are being produced. This allows the use of new -Wno- +dnl options with old compilers, but if something goes wrong, the compiler +dnl warns that an unrecognized option is present." +dnl Since we don't want to use any unrecognized -Wno-option, we test for +dnl -Woption instead. + +dnl Pointer signedness warnings are really a pain and 99.9% of the time +dnl they are of absolutely no use whatsoever. IMO the person who decided +dnl to enable this without -Wall should be shot on sight. +check_cc_flag([-Wpointer-sign], [CFLAGS="$CFLAGS -Wno-pointer-sign"]) + +dnl This is purely for charsys.c... I like it so we can easily read +dnl this for non-utf8. We can remove it once we ditch non-utf8 some day +dnl of course, or decide to ignore me and encode them. +check_cc_flag([-Winvalid-source-encoding], [CFLAGS="$CFLAGS -Wno-invalid-source-encoding"]) + +check_cc_flag([-Wformat-zero-length], [CFLAGS="$CFLAGS -Wno-format-zero-length"]) + +check_cc_flag([-Wformat-truncation], [CFLAGS="$CFLAGS -Wno-format-truncation"]) + +dnl While it can be useful to occasionally to compile with warnings about +dnl unused variables and parameters, we often 'think ahead' when coding things +dnl so they may be useless now but not later. Similarly, for variables, we +dnl don't always care about a variable that may still be present in a build +dnl without DEBUGMODE. Unused variables are optimized out anyway. +check_cc_flag([-Wunused], [CFLAGS="$CFLAGS -Wno-unused"]) +check_cc_flag([-Wunused-parameter], [CFLAGS="$CFLAGS -Wno-unused-parameter"]) +check_cc_flag([-Wunused-but-set-parameter], [CFLAGS="$CFLAGS -Wno-unused-but-set-parameter"]) + +dnl We use this and this warning is meaningless since 'char' is always unsigned +dnl in UnrealIRCd compiles (-funsigned-char). +check_cc_flag([-Wchar-subscripts], [CFLAGS="$CFLAGS -Wno-char-subscripts"]) + +check_cc_flag([-Wsign-compare], [CFLAGS="$CFLAGS -Wno-sign-compare"]) + +dnl Don't warn about empty body, we use this, eg via Debug(()) or in if's. +check_cc_flag([-Wempty-body], [CFLAGS="$CFLAGS -Wno-empty-body"]) + +dnl This one fails with ircstrdup(var, staticstring) +dnl Shame we have to turn it off completely... +check_cc_flag([-Waddress], [CFLAGS="$CFLAGS -Wno-address"]) + +dnl This one breaks our TO_INTFUNC() that is used in m_tkl for tkl_typetochar +check_cc_flag([-Wcast-function-type], [CFLAGS="$CFLAGS -Wno-cast-function-type"]) + +dnl End of -W... compiler checks. + + +dnl module checking based on Hyb7's module checking code +AC_DEFUN([AC_ENABLE_DYN], +[ +AC_CHECK_FUNC(dlopen,, [AC_CHECK_LIB(dl, dlopen,IRCDLIBS="$IRCDLIBS -ldl", +[ +AC_MSG_WARN(Dynamic linking is not enabled because dlopen was not found) +AC_DEFINE(STATIC_LINKING) +])]) + +hold_cflags=$CFLAGS +DYNAMIC_LDFLAGS="" +CFLAGS="$CFLAGS -Wl,-export-dynamic" +AC_CACHE_CHECK(if we need the -export-dynamic flag, ac_cv_export_dynamic, [ +AC_TRY_LINK(, [int i];, ac_cv_export_dynamic=yes, ac_cv_export_dynamic=no)]) +CFLAGS=$hold_cflags +if test "$ac_cv_export_dynamic" = "yes"; then + DYNAMIC_LDFLAGS="-Wl,-export-dynamic" +fi + +AC_CACHE_CHECK(for compiler option to produce PIC,ac_cv_pic,[ +if test "$ac_cv_prog_gcc" = "yes"; then + ac_cv_pic="-fPIC -DPIC -shared" + case `uname -s` in + Darwin*[)] + ac_cv_pic="-std=gnu89 -bundle -flat_namespace -undefined suppress" + ;; + HP-UX*[)] + ac_cv_pic="-fPIC" + ;; + esac +else +case `uname -s` in + SunOS*[)] + ac_cv_pic="-KPIC -DPIC -G" + ;; +esac +fi +]) +AC_CACHE_CHECK(if your system prepends an underscore on symbols,ac_cv_underscore,[ +cat >uscore.c << __EOF__ +int main() { + return 0; +} +__EOF__ +$CC -o uscore $CFLAGS uscore.c 1>&5 +if test -z "`strings -a uscore |grep '^_main$'`"; then +ac_cv_underscore=no +else +ac_cv_underscore=yes +fi +rm -f uscore uscore.c +]) +dnl libtool has built-in tests that determine proper underscorage +if test "$ac_cv_underscore" = "yes"; then + AC_DEFINE([UNDERSCORE], [], [Define if your system prepends an underscore to symbols]) +fi + +MODULEFLAGS="$ac_cv_pic $DYNAMIC_LDFLAGS" +dnl DYNAMIC_LINKING is not meant to be defined in include/setup.h, it's +dnl defined in the Makefiles using -D. Having it defined globally will +dnl only cause braindamage and symbol collisions :-D. +dnl AC_DEFINE([DYNAMIC_LINKING], [], [Link dynamically as opposed to statically. (Dynamic linking is the only supported method of linking atm)]) +]) + +AC_CACHE_CHECK([if your system has IPv6 support], [ac_cv_ip6], [ +AC_TRY_RUN([ +#include +#include +int main() { +int s = socket(AF_INET6, SOCK_STREAM, 0); +exit(0); /* We only check if the code compiles, that's enough. We can deal with missing runtime IPv6 */ +} +], + [ac_cv_ip6=yes], + [ac_cv_ip6=no]) +]) +if test "$ac_cv_ip6" = "no"; then + AC_MSG_ERROR([Your system does not support IPv6]) +fi + +AC_CHECK_HEADER(sys/syslog.h, + AC_DEFINE([SYSSYSLOGH], [], [Define if you have the header file.])) +AC_CHECK_HEADER(sys/rusage.h, + AC_DEFINE([RUSAGEH], [], [Define if you have the header file.])) +AC_CHECK_HEADER(glob.h, + AC_DEFINE([GLOBH], [], [Define if you have the header file.])) +AC_CHECK_HEADERS([stdint.h inttypes.h]) + +dnl Checks for library functions. +AC_CHECK_FUNCS(strlcpy, + AC_DEFINE([HAVE_STRLCPY], [], [Define if you have strlcpy. Otherwise, an internal implementation will be used!])) +AC_CHECK_FUNCS(strlcat, + AC_DEFINE([HAVE_STRLCAT], [], [Define if you have strlcat])) +AC_CHECK_FUNCS(strlncat, + AC_DEFINE([HAVE_STRLNCAT], [], [Define if you have strlncat])) + +AC_CHECK_FUNCS([getrusage], + [AC_DEFINE([GETRUSAGE_2], [], [Define if you have getrusage])], + [AC_CHECK_FUNCS([times], + [AC_DEFINE([TIMES_2], [], [Define if you have times])])]) +AC_CHECK_FUNCS([setproctitle], + [AC_DEFINE([HAVE_SETPROCTITLE], [], [Define if you have setproctitle])], + [AC_CHECK_LIB([util], + [setproctitle], + [AC_DEFINE([HAVE_SETPROCTITLE], [], [Define if you have setproctitle]) + IRCDLIBS="$IRCDLIBS-lutil"], + [ + AC_EGREP_HEADER([#define.*PS_STRINGS.*],[sys/exec.h], + [AC_DEFINE([HAVE_PSSTRINGS],[], [Define if you have PS_STRINGS])], + [AC_CHECK_FUNCS([pstat], + [AC_DEFINE([HAVE_PSTAT], [], [Define if you have pstat])])]) + ]) + ] +) + +AC_CHECK_FUNCS(explicit_bzero,AC_DEFINE([HAVE_EXPLICIT_BZERO], [], [Define if you have explicit_bzero])) +AC_CHECK_FUNCS(syslog,AC_DEFINE([HAVE_SYSLOG], [], [Define if you have syslog])) +AC_SUBST(CRYPTOLIB) +AC_SUBST(MODULEFLAGS) +AC_SUBST(DYNAMIC_LDFLAGS) +AC_ARG_WITH(nick-history, [AS_HELP_STRING([--with-nick-history=length],[Specify the length of the nickname history])], + [AC_DEFINE_UNQUOTED([NICKNAMEHISTORYLENGTH], [$withval], [Set to the nickname history length you want])], + [AC_DEFINE([NICKNAMEHISTORYLENGTH], [2000], [Set to the nickname history length you want])]) +AC_ARG_WITH(permissions, [AS_HELP_STRING([--with-permissions=permissions], [Specify the default permissions for +configuration files])], + dnl We have an apparently out-of-place 0 here because of a MacOSX bug and because + dnl we assume that a user thinks that `chmod 0600 blah' is the same as `chmod 600 blah' + dnl (#3189) + [AC_DEFINE_UNQUOTED([DEFAULT_PERMISSIONS], [0$withval], [The default permissions for configuration files. Set to 0 to prevent unrealircd from calling chmod() on the files.])], + [AC_DEFINE([DEFAULT_PERMISSIONS], [0600], [The default permissions for configuration files. Set to 0 to prevent unrealircd from calling chmod() on the files.])]) + +AC_ARG_WITH(bindir, [AS_HELP_STRING([--with-bindir=path],[Specify the directory for the unrealircd binary])], + [AC_DEFINE_UNQUOTED([BINDIR], ["$withval"], [Define the directory where the unrealircd binary is located]) + BINDIR="$withval"], + [AC_DEFINE_UNQUOTED([BINDIR], ["$HOME/unrealircd/bin"], [Define the directory where the unrealircd binary is located]) + BINDIR="$HOME/unrealircd/bin"]) + +AC_ARG_WITH(scriptdir, [AS_HELP_STRING([--with-scriptdir=path],[Specify the directory for the unrealircd start-stop script])], + [AC_DEFINE_UNQUOTED([SCRIPTDIR], ["$withval"], [Define the directory where the unrealircd start stop scripts is located]) + SCRIPTDIR="$withval"], + [AC_DEFINE_UNQUOTED([SCRIPTDIR], ["$HOME/unrealircd"], [Define the directory where the unrealircd start stop scripts is located]) + SCRIPTDIR="$HOME/unrealircd"]) + +AC_ARG_WITH(confdir, [AS_HELP_STRING([--with-confdir=path],[Specify the directory where configuration files are stored])], + [AC_DEFINE_UNQUOTED([CONFDIR], ["$withval"], [Define the location of the configuration files]) + CONFDIR="$withval"], + [AC_DEFINE_UNQUOTED([CONFDIR], ["$HOME/unrealircd/conf"], [Define the location of the configuration files]) + CONFDIR="$HOME/unrealircd/conf"]) + +dnl We have to pass the builddir as well, for the module manager +AC_ARG_WITH(builddir, [AS_HELP_STRING([--with-builddir=path],[Specify the build directory])], + [AC_DEFINE_UNQUOTED([BUILDDIR], ["$withval"], [Define the build directory]) + BUILDDIR="$withval"], + [AC_DEFINE_UNQUOTED([BUILDDIR], ["$BUILDDIR_NOW"], [Specify the build directory]) + BUILDDIR="$BUILDDIR_NOW"]) + +AC_ARG_WITH(modulesdir, [AS_HELP_STRING([--with-modulesdir=path],[Specify the directory for loadable modules])], + [AC_DEFINE_UNQUOTED([MODULESDIR], ["$withval"], [Define the location of the modules]) + MODULESDIR="$withval"], + [AC_DEFINE_UNQUOTED([MODULESDIR], ["$HOME/unrealircd/modules"], [Define the location of the modules]) + MODULESDIR="$HOME/unrealircd/modules"]) + +AC_ARG_WITH(logdir, [AS_HELP_STRING([--with-logdir=path],[Specify the directory where log files are stored])], + [AC_DEFINE_UNQUOTED([LOGDIR], ["$withval"], [Define the location of the log files]) + LOGDIR="$withval"], + [AC_DEFINE_UNQUOTED([LOGDIR], ["$HOME/unrealircd/logs"], [Define the location of the log files]) + LOGDIR="$HOME/unrealircd/logs"]) + +AC_ARG_WITH(cachedir, [AS_HELP_STRING([--with-cachedir=path],[Specify the directory where cached files are stored])], + [AC_DEFINE_UNQUOTED([CACHEDIR], ["$withval"], [Define the location of the cached remote include files]) + CACHEDIR="$withval"], + [AC_DEFINE_UNQUOTED([CACHEDIR], ["$HOME/unrealircd/cache"], [Define the location of the cached remote include files]) + CACHEDIR="$HOME/unrealircd/cache"]) + +AC_ARG_WITH(tmpdir, [AS_HELP_STRING([--with-tmpdir=path],[Specify the directory where private temporary files are stored. Should not be readable or writable by others, so not /tmp!!])], + [AC_DEFINE_UNQUOTED([TMPDIR], ["$withval"], [Define the location of private temporary files]) + TMPDIR="$withval"], + [AC_DEFINE_UNQUOTED([TMPDIR], ["$HOME/unrealircd/tmp"], [Define the location of private temporary files]) + TMPDIR="$HOME/unrealircd/tmp"]) + +AC_ARG_WITH(datadir, [AS_HELP_STRING([--with-datadir=path],[Specify the directory where permanent data is stored])], + [AC_DEFINE_UNQUOTED([PERMDATADIR], ["$withval"], [Define the location of permanent data files]) + PERMDATADIR="$withval"], + [AC_DEFINE_UNQUOTED([DATADIR], ["$HOME/unrealircd/data"], [Define the location of permanent data files]) + PERMDATADIR="$HOME/unrealircd/data"]) + +AC_ARG_WITH(docdir, [AS_HELP_STRING([--with-docdir=path],[Specify the directory where documentation is stored])], + [AC_DEFINE_UNQUOTED([DOCDIR], ["$withval"], [Define the location of the documentation]) + DOCDIR="$withval"], + [AC_DEFINE_UNQUOTED([DOCDIR], ["$HOME/unrealircd/doc"], [Define the location of the documentation]) + DOCDIR="$HOME/unrealircd/doc"]) + +AC_ARG_WITH(pidfile, [AS_HELP_STRING([--with-pidfile=path],[Specify the path of the pid file])], + [AC_DEFINE_UNQUOTED([PIDFILE], ["$withval"], [Define the path of the pid file]) + PIDFILE="$withval"], + [AC_DEFINE_UNQUOTED([PIDFILE], ["$HOME/unrealircd/data/unrealircd.pid"], [Define the path of the pid file]) + PIDFILE="$HOME/unrealircd/data/unrealircd.pid"]) + +dnl Ensure that this “feature†can be disabled as it makes it harder to package unrealircd. +dnl Users have always been able to specify “./configure LDFLAGS=-Wl,-rpath,/path/to/blahâ€â€”binki +AC_ARG_WITH(privatelibdir, [AS_HELP_STRING([--with-privatelibdir=path],[Specify the directory where private libraries are stored. Disable when building a package for a distro])], + [], + [with_privatelibdir="yes"]) +AS_IF([test "x$with_privatelibdir" = "xno"], + [PRIVATELIBDIR=], + [test "x$with_privatelibdir" = "xyes"], + [PRIVATELIBDIR="$HOME/unrealircd/lib"], + [PRIVATELIBDIR="$with_privatelibdir"]) +AS_IF([test "x$PRIVATELIBDIR" = "x"], + [LDFLAGS_PRIVATELIBS=""], + [AC_DEFINE_UNQUOTED([PRIVATELIBDIR], ["$PRIVATELIBDIR"], [Define the location of private libraries]) + LDFLAGS_PRIVATELIBS="-Wl,-rpath,$PRIVATELIBDIR" + LDFLAGS="$LDFLAGS $LDFLAGS_PRIVATELIBS" + export LDFLAGS]) + +AC_SUBST(BUILDDIR) +AC_SUBST(BINDIR) +AC_SUBST(SCRIPTDIR) +AC_SUBST(CONFDIR) +AC_SUBST(MODULESDIR) +AC_SUBST(LOGDIR) +AC_SUBST(CACHEDIR) +AC_SUBST(TMPDIR) +dnl Why o why PERMDATADIR and not DATADIR you ask? +dnl well, Because DATADIR conflicts with the Windows SDK header files.. amazing. +AC_SUBST(PERMDATADIR) +AC_SUBST(DOCDIR) +AC_SUBST(PIDFILE) +AC_SUBST(LDFLAGS_PRIVATELIBS) + +AC_ARG_WITH(maxconnections, [AS_HELP_STRING([--with-maxconnections=size], [Specify the max file descriptors to use])], + [ac_fd=$withval], + [ac_fd=0]) +AC_DEFINE_UNQUOTED([MAXCONNECTIONS_REQUEST], [$ac_fd], [Set to the maximum number of connections you want]) + +AC_ARG_ENABLE([prefixaq], + [AS_HELP_STRING([--disable-prefixaq],[Disable chanadmin (+a) and chanowner (+q) prefixes])], + [], + [enable_prefixaq=yes]) +AS_IF([test $enable_prefixaq = "yes"], + [AC_DEFINE([PREFIX_AQ], [], [Define if you want +a/+q prefixes])]) + +AC_ARG_WITH(showlistmodes, + [AS_HELP_STRING([--with-showlistmodes], [Specify whether modes are shown in /list])], + [AS_IF([test $withval = "yes"], + [AC_DEFINE([LIST_SHOW_MODES], [], [Define if you want modes shown in /list])])]) +AC_ARG_WITH(no-operoverride, [AS_HELP_STRING([--with-no-operoverride], [Disable OperOverride])], + [AS_IF([test $withval = "yes"], + [AC_DEFINE([NO_OPEROVERRIDE], [], [Define if you want OperOverride disabled])])]) +AC_ARG_WITH(operoverride-verify, [AS_HELP_STRING([--with-operoverride-verify], [Require opers to invite themselves to +s/+p channels])], + [AS_IF([test $withval = "yes"], + [AC_DEFINE([OPEROVERRIDE_VERIFY], [], [Define if you want opers to have to use /invite to join +s/+p channels])])]) +AC_ARG_WITH(system-pcre2, [AS_HELP_STRING([--without-system-pcre2], [Use the system pcre2 package instead of bundled, discovered using pkg-config])], [], [with_system_pcre2=yes]) +AC_ARG_WITH(system-argon2, [AS_HELP_STRING([--without-system-argon2], [Use bundled version instead of system argon2 library. Normally autodetected via pkg-config])], [], [with_system_argon2=yes]) +AC_ARG_WITH(system-cares, [AS_HELP_STRING([--without-system-cares], [Use bundled version instead of system c-ares. Normally autodetected via pkg-config.])], [], [with_system_cares=yes]) +CHECK_SSL +CHECK_SSL_CTX_SET1_CURVES_LIST +CHECK_SSL_CTX_SET_MIN_PROTO_VERSION +AC_ARG_ENABLE(dynamic-linking, [AS_HELP_STRING([--disable-dynamic-linking], [Make the IRCd statically link with shared objects rather than dynamically (noone knows if disabling dynamic linking actually does anything or not)])], + [enable_dynamic_linking=$enableval], [enable_dynamic_linking="yes"]) +AS_IF([test $enable_dynamic_linking = "yes"], + [AC_ENABLE_DYN], + [AC_DEFINE([STATIC_LINKING], [], [Link... statically(?) (defining this macro will probably cause the build tofail)])]) + +AC_ARG_ENABLE([werror], + [AS_HELP_STRING([--enable-werror], + [Turn compilation warnings into errors (-Werror)])], + [ac_cv_werror="$enableval"], + [ac_cv_werror="no"]) + +AC_ARG_ENABLE([asan], + [AS_HELP_STRING([--enable-asan], + [Enable address sanitizer and other debugging options, not recommended for production servers!])], + [ac_cv_asan="$enableval"], + [ac_cv_asan="no"]) + +AC_CHECK_FUNCS([poll], + AC_DEFINE([HAVE_POLL], [], [Define if you have poll])) +AC_CHECK_FUNCS([epoll_create epoll_ctl epoll_wait], + AC_DEFINE([HAVE_EPOLL], [], [Define if you have epoll])) +AC_CHECK_FUNCS([kqueue kevent], + AC_DEFINE([HAVE_KQUEUE], [], [Define if you have kqueue])) + +dnl c-ares needs PATH_SEPARATOR set or it will +dnl fail on certain solaris boxes. We might as +dnl well set it here. +export PATH_SEPARATOR + +dnl Use system pcre2 when available, unless --without-system-pcre2. +has_system_pcre2="no" +AS_IF([test "x$with_system_pcre2" = "xyes"],[ +PKG_CHECK_MODULES([PCRE2], libpcre2-8 >= 10.00,[has_system_pcre2=yes +AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libpcre2*])],[has_system_pcre2=no])]) + +AS_IF([test "$has_system_pcre2" = "no"], [ +dnl REMEMBER TO CHANGE WITH A NEW PCRE2 RELEASE! +pcre2_version="10.33" +AC_MSG_RESULT(extracting PCRE2 regex library) +cur_dir=`pwd` +cd extras +dnl remove old pcre2 directory to force a recompile... +dnl and remove its installation prefix just to clean things up. +rm -rf pcre2-$pcre2_version pcre2 +if test "x$ac_cv_path_GUNZIP" = "x" ; then + tar xfz pcre2.tar.gz +else + cp pcre2.tar.gz pcre2.tar.gz.bak + gunzip -f pcre2.tar.gz + cp pcre2.tar.gz.bak pcre2.tar.gz + tar xf pcre2.tar +fi +AC_MSG_RESULT(configuring PCRE2 regex library) +cd pcre2-$pcre2_version +./configure --enable-jit --enable-shared --disable-unicode --prefix=$cur_dir/extras/pcre2 --libdir=$PRIVATELIBDIR || exit 1 +AC_MSG_RESULT(compiling PCRE2 regex library) +$ac_cv_prog_MAKER || exit 1 +AC_MSG_RESULT(installing PCRE2 regex library) +$ac_cv_prog_MAKER install || exit 1 +PCRE2_CFLAGS="-I$cur_dir/extras/pcre2/include" +AC_SUBST(PCRE2_CFLAGS) +PCRE2_LIBS= +dnl See c-ares's compilation section for more info on this hack. +dnl ensure that we're linking against the bundled version of pcre2 +dnl (we only reach this code if linking against the bundled version is desired). +AS_IF([test -n "$ac_cv_path_PKGCONFIG"], + [PCRE2_LIBS="`$ac_cv_path_PKGCONFIG --libs libpcre2-8.pc`"]) +dnl For when pkg-config isn't available -- or for when pkg-config +dnl doesn't see the libpcre2-8.pc file somehow... (#3982) +AS_IF([test -z "$PCRE2_LIBS"], + [PCRE2_LIBS="$PRIVATELIBDIR/libpcre2-8.so"]) +AC_SUBST(PCRE2_LIBS) +cd $cur_dir +]) + +dnl Use system argon2 when available, unless --without-system-argon2 +has_system_argon2="no" +AS_IF([test "x$with_system_argon2" = "xyes"],[ +PKG_CHECK_MODULES([ARGON2], [libargon2 >= 0~20161029],[has_system_argon2=yes +AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libargon2*])],[has_system_argon2=no])]) + +AS_IF([test "$has_system_argon2" = "no"],[ +dnl REMEMBER TO CHANGE WITH A NEW ARGON2 RELEASE! +argon2_version="20181209" +AC_MSG_RESULT(extracting Argon2 library) +cur_dir=`pwd` +cd extras +dnl remove old argon2 directory to force a recompile... +dnl and remove its installation prefix just to clean things up. +rm -rf argon2-$argon2_version argon2 +if test "x$ac_cv_path_GUNZIP" = "x" ; then + tar xfz argon2-$argon2_version.tar.gz +else + cp argon2-$argon2_version.tar.gz argon2-$argon2_version.tar.gz.bak + gunzip -f argon2-$argon2_version.tar.gz + cp argon2-$argon2_version.tar.gz.bak argon2-$argon2_version.tar.gz + tar xf argon2-$argon2_version.tar +fi +AC_MSG_RESULT(compiling Argon2 library) +cd argon2-$argon2_version +$ac_cv_prog_MAKER || exit 1 +AC_MSG_RESULT(installing Argon2 library) +$ac_cv_prog_MAKER install PREFIX=$cur_dir/extras/argon2 || exit 1 +# We need to manually copy the libs to PRIVATELIBDIR because +# there is no way to tell make install in libargon2 to do so. +cp -av $cur_dir/extras/argon2/lib/* $PRIVATELIBDIR/ +ARGON2_CFLAGS="-I$cur_dir/extras/argon2/include" +AC_SUBST(ARGON2_CFLAGS) +ARGON2_LIBS="-L$PRIVATELIBDIR -largon2" +AC_SUBST(ARGON2_LIBS) +cd $cur_dir +]) + +dnl Use system c-ares when available, unless --without-system-cares. +has_system_cares="no" +AS_IF([test "x$with_system_cares" = "xyes"],[ +PKG_CHECK_MODULES([CARES], libcares >= 1.6.0,[has_system_cares=yes +AS_IF([test "x$PRIVATELIBDIR" != "x"], [rm -f "$PRIVATELIBDIR/"libcares*])],[has_system_cares=no])]) + +AS_IF([test "$has_system_cares" = "no"], [ +dnl REMEMBER TO CHANGE WITH A NEW C-ARES RELEASE! +dnl NOTE: when changing this here, ALSO change it in extras/curlinstall +dnl and in the comment in this file around line 400! +cares_version="1.15.0" +AC_MSG_RESULT(extracting c-ares resolver library) +cur_dir=`pwd` +cd extras +dnl remove old c-ares directory to force a recompile... +rm -rf c-ares-$cares_version c-ares +if test "x$ac_cv_path_GUNZIP" = "x" ; then + tar xfz c-ares.tar.gz +else + cp c-ares.tar.gz c-ares.tar.gz.bak + gunzip -f c-ares.tar.gz + cp c-ares.tar.gz.bak c-ares.tar.gz + tar xf c-ares.tar +fi +AC_MSG_RESULT(configuring c-ares library) +cd c-ares-$cares_version +save_cflags="$CFLAGS" +CFLAGS="$orig_cflags" +export CFLAGS +./configure --prefix=$cur_dir/extras/c-ares --libdir=$PRIVATELIBDIR --enable-shared || exit 1 +CFLAGS="$save_cflags" +AC_MSG_RESULT(compiling c-ares resolver library) +$ac_cv_prog_MAKER || exit 1 +AC_MSG_RESULT(installing c-ares resolver library) +$ac_cv_prog_MAKER install || exit 1 +CARES_CFLAGS="-I$cur_dir/extras/c-ares/include" +AC_SUBST(CARES_CFLAGS) +CARES_LIBS="-L$PRIVATELIBDIR" + +dnl Set default library parameters for when pkg-config is not available +dnl Ugly cd'ing out of extras/c-ares-xxx ;) +dnl Note: must be a full path, not relative path. +cd ../.. +CARESLIBSALT="$PRIVATELIBDIR/libcares.so" +cd - +case `uname -s` in + *FreeBSD*) + CARESLIBSALT="$CARESLIBSALT" + ;; + *Linux*) + CARESLIBSALT="$CARESLIBSALT -lrt" + ;; + *SunOS*) + CARESLIBSALT="$CARESLIBSALT -lrt" + ;; +esac + +dnl Use pkg-config for c-ares libraries, and if not available use defaults +dnl from above (also if pkg-config returns an empty result). +if test "x$ac_cv_path_PKGCONFIG" = "x" ; then + CARES_LIBS="$CARES_LIBS $CARESLIBSALT" +else + CARES_LIBSPRE="$CARES_LIBS" + dnl the sed expression forces an absolute path to the .so file to be generated + dnl because this is what libtool would do. If this wasn't done and /usr/lib*/libcares.so + dnl exists, then unrealircd would still try to link against the system c-ares. + dnl The [] quotation is needed because the sed expression has [] in it. + [CARES_LIBS="$CARES_LIBS `$ac_cv_path_PKGCONFIG --libs libcares.pc | sed -e 's,-L\([^ ]\+lib\) -lcares,\1/libcares.so,'`"] + if test "$CARES_LIBS" = "$CARES_LIBSPRE " ; then + CARES_LIBS="$CARES_LIBS $CARESLIBSALT" + fi +fi +AC_SUBST(CARES_LIBS) +cd $cur_dir +]) + +AX_PTHREAD() + +CHECK_LIBCURL + +UNRLINCDIR="`pwd`/include" + +dnl Moved to the very end to ensure it doesn't affect any libs or tests. +if test "$ac_cv_werror" = "yes" ; then + CFLAGS="$CFLAGS -Werror" +fi + +dnl Address sanitizer build +if test "$ac_cv_asan" = "yes" ; then + CFLAGS="$CFLAGS -O1 -fno-inline -fsanitize=address -fno-omit-frame-pointer -DNOCLOSEFD" + IRCDLIBS="-fsanitize=address $IRCDLIBS" +fi + +AC_SUBST(IRCDLIBS) + +AC_SUBST(UNRLINCDIR) + +AC_CONFIG_FILES([Makefile + src/Makefile + src/modules/Makefile + src/modules/chanmodes/Makefile + src/modules/usermodes/Makefile + src/modules/snomasks/Makefile + src/modules/extbans/Makefile + src/modules/third/Makefile + unrealircd]) +AC_OUTPUT +chmod 0700 unrealircd diff --git a/doc/Authors b/doc/Authors new file mode 100644 index 0000000..69fef62 --- /dev/null +++ b/doc/Authors @@ -0,0 +1,148 @@ +/************************************************************************ + * IRC - Internet Relay Chat, doc/AUTHORS + * Copyright (C) 1990 + * + * AUTHORS FILE: + * This file attempts to remember all contributors to the IRC + * developement. Names can be only added this file, no name + * should never be removed. This file must be included into all + * distributions of IRC and derived works. + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation; either version 1, or (at your option) + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. + */ + +IRC was conceived of and written by Jarkko Oikarinen . +IRC was originally written in University of Oulu, Computing Center. +Jan 1991 - IRC 2.6 jto@tolsun.oulu.fi + - Multiple Channels and protocol changes + +Contributions were made by a cast of dozens, including the following: + +Markku Jarvinen : Emacs-like editing facility for the client + +Kimmo Suominen : HP-UX port + +Jeff Trim : enhancements and advice + +Vijay Subramaniam : advice and ruthless publicity + +Karl Kleinpaste : user's manual + +Greg Lindahl : AUTOMATON code, the Wumpus GM automaton, +myriad bug fixes + +Bill Wisner : numerous bug fixes and code +enhancements + +Tom Davis and Tim Russell : +VMS modifications + +Markku Savela : advice, support, and being the +incentive to do some of our *own* coding. :) + +Tom Hopkins : bug fixes, quarantine lines, +consolidation of various patches. + +Christopher Davis : EFnet/Anet gateway coding, +many automata ;), documentation fixing. + +Helen Rose : documentation updating, and fixing. + +Tom Hinds : emacs client updating. + +Tim Miller : various server and client-breaking +features. + +Darren Reed : various bug fixes and enhancements. +Introduced nickname and channelname hash tables into the server. + +The version 2.2 release was coordinated by Mike Bolotski +. + +The version 2.4 release was coordinated by Markku Savela and +Chelsea Ashley Dyerman + +The version 2.5.2 release was coordinated by Christopher Davis, Helen Rose, +and Tom Hopkins. + +The versions 2.6.2, 2.7 and 2.8 releases were coordinated by Darren Reed. + +Contributions for the 2.8 release from the following people: +Matthew Green +Chuck Kane +Matt Lyle +Vesa Ruokonen + +Markku Savela / April 1990 +Fixed various bugs in 2.2PL1 release server (2.2msa.4) and changed +sockets to use non-blocking mode (2.2msa.9). [I have absolutely +nothing to do with clients :-] + +Chelsea Ashley Dyerman / April 1990 +Rewrote the Makefiles, restructuring of source tree. Added libIrcd.a to +the Makefile macros, numerous reformatting of server text messages, and +added mkversion.sh to keep track of compilation statistics. Numerous +bug fixes and enhancements, and co-coordinator of the 2.4 release. + +Jarle Lyngaas (nmijl@alf.uib.no) added Note functions to ircd. + +Armin Gruner / May, June 1990: +* Patched KILL-line feature for ircd.conf, works now. + Enhancement: Time intervals can be specified in passwd-field. + Result: KILL-Line is only active during these intervals +* Patched PRIVMSG handling, now OPER can specify masks for sending + private messages, advantage: msg to all at a specified server or host. +* Little tests on irc 2.5 alpha, fixed some little typos in client code. + Change: common/debug.c has been moved to ircd/s_debug.c, and a + irc/c_debug.c has been created, for the benefit that wrong server msg + are displayed if client does not recognize them. (strange, if a server + sends an 'unknown command', isn't it?) + +Tom Hopkins / September, October 1990: +* Patched msa's K lines for servers (Q lines). +* Consolidated several patches, including Stealth's logging patch. +* Fixed several minor bugs. +* Has done lots of other stuff that I can't seem to remember, but he + always works on code, so he has to have done alot more than three + lines worth. :) + +UnrealIRCd Coders +Carsten Munk / May 1999 - December 2008 +Dominick Meglio / June 1999 - August 2005 +David Flynn / March 2000 - June 2000 +McSkaf / June 2001 - September 2001 +Finny Merrill / November 2001 - December 2002 +Bram Matthys / January 2002 - date +This list is incomplete, type /INFO on IRC to find the updated list. + +Thanks go to those persons not mentioned here who have added their advice, +opinions, and code to IRC. + +Various modifications, bugreports, cleanups and testing by: + +Hugo Calendar +Bo Adler +Michael Sandrof +Jon Solomon +Jan Peterson +Nathan Glasser +Helen Rose +Mike Pelletier +Basalat Ali Raja +Eric P. Scott +Dan Goodwin +Noah Friedman + +[ $Id$ ] diff --git a/doc/Config.header b/doc/Config.header new file mode 100644 index 0000000..caeeb18 --- /dev/null +++ b/doc/Config.header @@ -0,0 +1,32 @@ + + _ _ _ ___________ _____ _ +| | | | | |_ _| ___ \/ __ \ | | +| | | |_ __ _ __ ___ __ _| | | | | |_/ /| / \/ __| | +| | | | '_ \| '__/ _ \/ _ | | | | | / | | / _ | +| |_| | | | | | | __/ (_| | |_| |_| |\ \ | \__/\ (_| | + \___/|_| |_|_| \___|\__,_|_|\___/\_| \_| \____/\__,_| + + Configuration Program + for UnrealIRCd 5.0.3.1 + +This program will help you to compile your IRC server, and ask you +questions regarding the compile-time settings of it during the process. +regarding the setup of it, during the process. + +A short installation guide is available online at: +https://www.unrealircd.org/docs/Installing_from_source + +Full documentation is available at: +https://www.unrealircd.org/docs/UnrealIRCd_5_documentation + +-------------------------------------------------------------------------------------- + +The full release notes are available in doc/RELEASE-NOTES.md +For easier viewing, check out the latest online release notes at: +https://github.com/unrealircd/unrealircd/blob/unreal50/doc/RELEASE-NOTES.md + +UnrealIRCd 5 is compatible with the following services: +* anope with the "unreal4" protocol module - version 2.0.7 or higher required! +* atheme with the "unreal4" protocol module - tested with version 7.2.9 + +-------------------------------------------------------------------------------------- diff --git a/doc/Donation b/doc/Donation new file mode 100644 index 0000000..d841432 --- /dev/null +++ b/doc/Donation @@ -0,0 +1,14 @@ +Although UnrealIRCd is a free program, we do put a great deal of time, +effort, and money into keeping UnrealIRCd alive. If you like UnrealIRCd and +want to support us then please consider making a donation. + +PayPal Donation Link: https://unrealircd.org/index/donations + +If you don't want to use PayPal, or you want to donate something other than +money, then please contact Syzop (syzop@unrealircd.com). + +All those who donate at least a certain minimum amount will have their name +and/or company listed in /CREDITS and will be listed on the website. + +Thank you for your support, +The UnrealIRCd Team diff --git a/doc/RELEASE-NOTES.md b/doc/RELEASE-NOTES.md new file mode 100644 index 0000000..b7625dc --- /dev/null +++ b/doc/RELEASE-NOTES.md @@ -0,0 +1,563 @@ +UnrealIRCd 5.0.3.1 Release Notes +================================= + +UnrealIRCd 5.0.3.1 +------------------- +This fixes a crash issue after REHASH in 5.0.3. + +UnrealIRCd 5.0.3 +----------------- +Fixes: +* Fix serious flood issue in labeled-response implementation. +* An IRCOp SQUIT'ing a far remote server may cause a broken link topology +* In channels that are +D (delayed join), PARTs were not shown correctly to + channel operators. + +Enhancements: +* A new HISTORY command for history playback (```HISTORY #channel number-of-lines```) + which allows you to fetch more lines than the on-join history playback. + Of course, taking into account the set limits in the +H channel mode. + This command is one of the [two interfaces](https://www.unrealircd.org/docs/Channel_history#Ways_to_retrieve_history) + to [Channel history](https://www.unrealircd.org/docs/Channel_history). +* Two new [message tags](https://www.unrealircd.org/docs/Message_tags), + ```unrealircd.org/userip``` and ```unrealircd.org/userhost``` + which communicate the user@ip and real user@host to IRCOps. + +Changes: +* Drop the draft/ prefix now that the IRCv3 + [labeled-response](https://ircv3.net/specs/extensions/labeled-response.html) + specification is out of draft. +* The operclass permission ```immune:target-limit``` is now called + ```immune:max-concurrent-conversations```, since it bypasses + [set::anti-flood::max-concurrent-conversations](https://www.unrealircd.org/docs/Set_block#set::anti-flood::max-concurrent-conversations). + For 99% of the users this change is not important, but it may be + if you use highly customized [operclass blocks](https://www.unrealircd.org/docs/Operclass_block) + +Are you upgrading from UnrealIRCd 4.x to UnrealIRCd 5? If so, +then check out the *UnrealIRCd 5* release notes [further down](#unrealircd-5). At the +very least, check out [Upgrading from 4.x](https://www.unrealircd.org/docs/Upgrading_from_4.x). + +UnrealIRCd 5.0.2 +----------------- + +Fixes: +* Halfop users are not synced correctly, resulting in missing users across links. +* [Channel history](https://www.unrealircd.org/docs/Channel_history) used +incorrect time internally, resulting in messages expiring too soon. +The syntax is now really ```/MODE #chan +H lines:time-in-minutes```. +To make clear that the time is in minutes, an 'm' will be added +automatically by the server (eg ```+H 15:1440m```). +* Documentation: to exempt someone from gline via /ELINE you have to use type 'G', not 'g'. + Similarly, to exempt from spamfilter, use type 'F' and not 'f'. +* Exempting IPs from throttling via [except throttle](https://www.unrealircd.org/docs/Except_throttle_block) was not working. +* Unable to customize [set::tls::outdated-protocols](https://www.unrealircd.org/docs/Set_block#set::ssl::outdated-protocols) + and [set::tls::outdated-ciphers](https://www.unrealircd.org/docs/Set_block#set::ssl::outdated-ciphers). +* Specifying multiple channels did not work in [set::auto-join](https://www.unrealircd.org/docs/Set_block#set::auto-join), + [set::oper-auto-join](https://www.unrealircd.org/docs/Set_block#set::oper-auto-join) and + [tld::channel](https://www.unrealircd.org/docs/Tld_block). + +Enhancements: +* [Extended server bans](https://www.unrealircd.org/docs/Extended_server_bans) in *LINE and /ELINE allow + you to ban or exempt users on criteria other than host/IP. These use a + similar syntax to extended bans. Currently supported are ~a, ~S and ~r. Examples: + * ```/ELINE ~a:TrustedAccount kG 0 This user can bypass kline/gline when using SASL``` + * ```/ELINE ~S:1234567890abcdef1234567890abcdef1234567890abcdef1234567890abcdef kGF 0 Trusted user with this certificate fingerprint``` + * ```/GLINE ~r:*some*stupid*real*name*``` + * These can also be used in the configuration file, eg: ```except ban { mask ~S:11223344etc; type all; };``` +* New options that may not be used much, but can be useful on specific networks: + * The IRCd may add automatic bans, for example due to a blacklist hit, + a spamfilter hit, or because of antirandom or antimixedutf8. The new + option [set::automatic-ban-target](https://www.unrealircd.org/docs/Set_block#set::automatic-ban-target) specifies on *what* the ban should + be placed. The default is *ip*. Other options are: userip, host, userhost, account, certfp. + * Similarly, an oper may type ```/GLINE nickname```. The new option + [set::manual-ban-target](https://www.unrealircd.org/docs/Set_block#set::manual-ban-target) specifies on what the ban should be placed. + By default this is *host* (fallback to *ip*). +* New options to exempt webirc users: [set::connthrottle::webirc-bypass](https://www.unrealircd.org/docs/Connthrottle), + [set::restrict-commands::name-of-command::exempt-webirc](https://www.unrealircd.org/docs/Set_block#set::restrict-commands). + +UnrealIRCd 5.0.1 +----------------- + +Fixes: +* IRCd may hang in rare circumstances +* Windows: fix repeated "ERROR renaming 'data/reputation.db.tmp'" warnings +* Antirandom and blacklist did not deal properly with 'warn' actions +* [Authprompt](https://www.unrealircd.org/docs/Authentication#How_it_looks_like) + did not always work properly +* Line numbers were incorrect in config file warnings/errors when using @if or @define + +Enhancements: +* New /ELINE exception type 'm' to bypass allow::maxperip. + Or in the configuration file: ```except ban { mask 203.0.113.0/24; type maxperip; };``` +* IRCOps can override MLOCK restrictions when services are down, + if they have the channel:override:mlock operclass permission, + such as opers which use the operclass 'netadmin-with-override'. + +Other: +* Gottem and k4be have [uploaded their 3rd party modules](https://modules.unrealircd.org/) + to unrealircd-contrib so *NIX users can now easily install them using the new + [Module manager](https://www.unrealircd.org/docs/Module_manager) + +UnrealIRCd 5 +------------- +After more than 6 months of hard work, UnrealIRCd 5 is now our new "stable" branch. +In particular I would like to thank Gottem and 'i' for their source code +contributions and PeGaSuS and westor for testing releases. + +When we transitioned from 3.2.x to 4.0.0 there were 175,000 lines of source code +added/removed during 3 years of development. This time it was 120,000 lines in +only 6 months, a major effort! + +**If you are upgrading from 4.x to 5.x, then it would be wise to read +[Upgrading from 4.x](https://www.unrealircd.org/docs/Upgrading_from_4.x). +In any case, be sure to upgrade your services package first! (if you use any)** + +UnrealIRCd 5 is compatible with the following services: +* [anope](https://www.anope.org/) (version 2.0.7 or higher) - + with the "unreal4" protocol module +* [atheme](https://atheme.github.io/atheme.html) (version 7.2.9 or higher) - + with the "unreal4" protocol module + +Summary +-------- +The most visible change to end-users is channel history. A lot of IRCv3 features were added. +Various modules from Gottem have been integrated and enhanced. +We now have a 3rd party module manager so you can install modules with 1 simple command. +Channel settings of ```+P``` channels and *LINES are saved in a database and +restored on startup (via 'channeldb' and 'tkldb' respectively). +Channel mode ```+L``` has a slight change of meaning, the existing floodprot +mode (```+f```) has a new type to prevent repeated messages and a new drop action. +A few extended bans have been added as well (```~f``` and ```~p```). +IRCOps now have the ability to add ban exceptions via the ```/ELINE``` command. +Advanced admins can use more dynamic configuration options where you can +define variables and use them later in the configuration file. +Finally, there have been speed improvements, we use better defaults and +have added more countermeasures and options against spambots. +Under the hood *a significant amount* of the source code was changed and cleaned up. + +Read below for the full list of enhancements, changes and removals (and information for developers too). + +Enhancements +------------- +* Support for IRCv3 server generated [message tags](https://ircv3.net/specs/extensions/message-tags), which allows us to communicate + additional information in protocol messages such as in JOIN and PRIVMSG. + Currently implemented and permitted message tags are: + * [account](https://ircv3.net/specs/extensions/account-tag-3.2): communicate the services account that a user uses + * [msgid](https://ircv3.net/specs/extensions/message-ids): assign an unique message id to each message + * [time](https://ircv3.net/specs/extensions/server-time-3.2): assign a time label to each message + The last two are mainly for history playback. +* Support for IRCv3 [echo-message](https://ircv3.net/specs/extensions/echo-message-3.2), which helps clients, among other things, + to see if the message you sent was altered in any way, eg: censored, + stripped from color, etc. +* Support for IRCv3 [draft/labeled-response-0.2](https://ircv3.net/specs/extensions/labeled-response), which helps clients to + correlate commands and responses. +* Support for IRCv3 [BATCH](https://ircv3.net/specs/extensions/batch-3.2), needed for some other features. +* Recording and playback of [channel history](https://www.unrealircd.org/docs/Channel_history) when channel mode +H is set. + The syntax is: ```MODE #chan +H max-lines-to-record:max-time-to-record-in-minutes```. + + For example: ```MODE #chan +H 50:1440``` means the last 50 messages will be stored and no + message will be stored longer than 1440 minutes (1 day). + + The channel history is then played back when joining such a channel, + but with two things to keep in mind: + 1) The client must support the 'server-time' CAP ('time' message tag), + otherwise history is not shown. Any modern IRC client supports this. + 2) Only a maximum of 15 lines are played back on-join by default + + The reason for the maximum 15 lines on-join playback is that this can + be quite annoying if you rejoin repeatedly and as to not flood the users + screen too much (unwanted). In the future we will support a mechanism + for clients to "fetch" history - rather than sending it on-join - so + they can fetch more than the 15 lines, up to the number of lines and + time configured in the +H channel mode. + + You can configure the exact number of lines that are played back and + all the limits that apply to +H via [set::history::channel](https://www.unrealircd.org/docs/Set_block#set::history). +* For saving and retrieving history we currently have the following options: + * *history_backend_mem*: channel history is stored in memory. + This is very fast but also means history is lost on restart. + * *history_backend_null*: don't store channel history at all. + This can be useful to load on servers with no users on it, such as a + hub server, where storing history is unnecessary. + + As you can see there is currently no 'disk' backend. However, in the + future more options may be added. Also note that 3rd party modules + can add history backends as well. +* Support for ban exceptions via the new ```/ELINE``` command. This allows you + to add exceptions for regular bans (KLINE/GLINE/ZLINE/etc), but also + for connection throttling and blacklist checking. + For more information, just type ```/ELINE ``` in your IRC client as an IRCOp. +* [Websocket](https://www.unrealircd.org/docs/WebSocket_support) support now includes type 'text' + in addition to 'binary', which should work with [KiwiIRC](https://kiwiirc.com/)'s nextclient. + + Also, websockets are no longer active on all ports by default. You have to explicitly + enable the websocket option in the listen block and also specify type *text* or *binary*, + eg: ```listen { ip *; port 6667; options { websocket { type text; } } }``` + + Also note that websockets require nick names and channels to consist of UTF8 + characters only, due to + [WebSocket being incompatible with non-UTF8](https://www.unrealircd.org/docs/WebSocket_support#Problems_with_websockets_and_non-UTF8) +* There's now a [Module manager](https://www.unrealircd.org/docs/Module_manager) + which allows you to install and upgrade 3rd party modules in an easy way: + * ```./unrealircd module list``` - to list all available 3rd party modules + * ```./unrealircd module install third/something``` - to install the specified module. +* You can now test for configuration errors without actually starting the + IRC server. This is ideal if you are upgrading UnrealIRCd to a newer + version: simply run ```./unrealircd configtest``` to make sure it passes + the configuration test, and then you can safely restart the server for + the upgrade (in this example case). +* Channel mode +L now kicks in for any rejected join, so not just for +l but + also for +b, +i, +O, +z, +R and +k. If, for example, the channel is + +L #insecure and also +z then, when an insecure user ties to join, they + will be redirected to #insecure. +* New extended ban ~f to forward users to the specified channel if the ban + matches. Example: ```MODE #chan +b ~f:#badisp:*!*@*.isp.org``` +* Channel mode +f now has a 'd' action: drop message. This will send an + error message to the user and not show the message in the channel but + otherwise do nothing (no kick or ban). + For example: ```MODE #chan +f [5t#d]:15``` will limit sending a maximum of + 5 messages per 15 seconds per-user and drop any messages sent above that limit. +* Channel mode +f now has 'r' floodtype to prevent repeated lines. This will + compare the current message to the last message and the one before that + the user sent to the channel. If it's a repeat then the user can be + kicked (the default action), the message can be dropped ('d') or the + user can be banned ('b'). Example: ```MODE #chan +f [1r#d]:15``` + If you want to permit 1 repeated line but not 2 then use: ```+f [2r#d]:15``` +* New module **tkldb** (loaded by default): all *LINES and spamfilters are now + saved across reboots. No need for services for that anymore. +* New module **channeldb** (loaded by default): saves and restores all channel + settings including topic, modes, bans etc. of +P (persistent) channels. +* New module [restrict-commands](https://www.unrealircd.org/docs/Set_block#set::restrict-commands), which allows you to restrict any IRC + command based on criteria such as "how long is this user connected", + "is this user registered (has a services account)" etc. + The example.conf now ships with configuration to disable LIST the + first 60 seconds and disable INVITE the first 120 seconds. + If you are having spambot problems then tweaking this configuration + may be helpful to you. +* New option [set::require-module](https://www.unrealircd.org/docs/Set_block#set::require-module), which allows you to require certain + modules on other UnrealIRCd 5 servers, otherwise the link is rejected. +* New option [set::min-nick-length](https://www.unrealircd.org/docs/Set_block#set::min-nick-length) to set a minimum nick length. +* New module rmtkl (loaded by default): this allows you to remove TKL's + such as GLINEs easily via the /RMTKL command. +* The [reputation and connthrottle](https://www.unrealircd.org/docs/Connthrottle) modules are now loaded by default. + Just as a reminder, what these do is classifying your users in "known + users (known IP's)" and "unknown IP's" for IP's that have not been + seen before (or only for a short amount of time). Then, when there + is a connection flood, unknown/new IP addresses are throttled at + 20 connections per minute, while known users are always allowed in. +* Add support for [defines and conditional configuration](https://www.unrealircd.org/docs/Defines_and_conditional_config) via @define and @if. + This is mostly for power users, in particular users who share the same + configuration file across several servers. +* New extban ~p to hide the part/quit message in PART and QUIT. + For example: ```MODE #chan +b ~p:*!*@*.nl``` +* You will now see a warning when a server is not responding even + before they time out. How long to wait for a PONG reply upon PING + can be changed via [set::ping-warning](https://www.unrealircd.org/docs/Set_block#set::ping-warning) and defaults to 15 seconds. + If you see the warning frequently then your connection is flakey. +* Add new setting [set::broadcast-channel-messages](https://www.unrealircd.org/docs/Set_block#set::broadcast-channel-messages) which defines when + channel messages are sent across server links. The default setting + is *auto* which is the correct setting for pretty much everyone. +* Add new option [set::part-instead-of-quit-on-comment-change](https://www.unrealircd.org/docs/Set_block#set::part-instead-of-quit-on-comment-change): + when a QUIT message is changed due to channel restrictions, such as + stripping color or censoring a word, we normally change the QUIT + message. This has an effect on ALL channels, not just the one that + imposed the restrictions. While we feel that is the best tradeoff, + there is now also this new option (off by default) that will change + the QUIT into a PART in such a case, so the other channels that + do not have the restrictions (eg: are -S and -G) can still see the + original QUIT message. +* New module [webredir](https://www.unrealircd.org/docs/Set_block#set::webredir::url). Quite some people run their IRCd on port 443 or 80 + so their users can avoid firewall restrictions in place. In such a case, + with this module, you can now send a HTTP redirect in case some user + enters your IRC server name in their browser. Eg https://irc.example.org/ + can be made to redirect to https://www.example.org/ +* We now protect against misbehaving SASL servers and will time out + SASL sessions after + [set::sasl-timeout](https://www.unrealircd.org/docs/Set_block#set::sasl-timeout), + which is 15 seconds by default. + +Changed +-------- +* Channel mode +L can now be set by chanops (+o and higher) instead of only + by +q (channel owner) +* Channel names must now be valid UTF8 by default. + We actually have 3 possible settings of [set::allowed-channelchars](https://www.unrealircd.org/docs/Set_block#set::allowed-channelchars): + * **utf8**: Channel must be valid UTF8, this is the new default + * **ascii**: A very strict setting, for example in use at freenode, + the channel name may not contain high ascii or UTF8 + * **any**: A very loose setting, which allows almost all characters + in the channel name. This was the OLD default, up to and + including UnrealIRCd 4. It is no longer recommended. + + For most networks this new default setting of utf8 will be fine, since + by far most IRC clients use UTF8 for many years already. + If you have a network that has a significant portion of chatters + that are on old non-UTF8 clients that use a specific character set + then you may want to use ```set { allowed-nickchars any; }``` + Some Russian and Ukrainian networks are known to need this. +* The "except tkl" block is now called [except ban](https://www.unrealircd.org/docs/Except_ban_block#UnrealIRCd_5). If no type + is specified in an except ban { } block then we exempt the entry + from kline, gline, zline, gzline and shun. +* We no longer use a blacklist for stats (set::oper-only-stats). + We use a whitelist now instead: [set::allow-user-starts](https://www.unrealircd.org/docs/Set_block#set::allow-user-stats). + Most users can just remove their old set::oper-only-stats line, + since the new default set::allow-user-starts setting is fine. +* Windows: we now require a 64-bit version, Windows 7 or later. + The new program path is: C:\Program Files\UnrealIRCd 5 + and the binaries have been moved to a new subdirectory: bin\ +* Modules lost their m_ prefix, so for example m_map is now just map. + Also the modules in cap/ are now directly in modules. +* More modules that were previously PERM (permanent) can now be unloaded + and reloaded on the fly. This allows more "hotfixing" without restart + in case of a bug and also more control for admins at runtime. + Only <5 modules out of 173 are permanent now. +* User mode +T now blocks channel CTCPs as well. +* User mode +q (unkickable) could previously be set by any IRCOp. + This has been changed to require the self:unkickablemode operclass + permission. This is included in the *-with-override operclasses + (eg: netadmin-with-operoverride). +* [set::modes-on-join](https://www.unrealircd.org/docs/Set_block#set::modes-on-join) is now ```+nt``` by default. +* The [authprompt](https://www.unrealircd.org/docs/Authentication#How_it_looks_like) module is now loaded by default. This means that if + you do a soft kline on someone (eg: ```KLINE %*@*.badisp```) then the user + has a chance to [authenticate](https://www.unrealircd.org/docs/Authentication#How_it_looks_like) to services, even without SASL, and + bypass the ban if (s)he is authenticated. +* The WHOX module is now used by default. Previously it was optional. + WHOX enhances the "WHO" output, providing additional information to + IRC clients such as the services account that someone is using. + It is also more universal than standard WHO. Unfortunately this also + means the WHO syntax changed to something less logical. +* At many places the term *SSL* has been changed to *SSL/TLS* or *TLS*. + Configuration items (eg: set::ssl to set::tls) have been renamed + as well and so have directories (eg: conf/ssl to conf/tls). + The old configuration names still work and currently does NOT raise + any warning. Also, when upgrading an existing installation on *NIX, + the conf/tls directory will be symlinked to conf/ssl as to not break + any Let's Encrypt certificate scripts. +* It is now mandatory to have at least one open SSL/TLS port, otherwise + UnrealIRCd will refuse to boot. Previously this was a warning. +* IRCOps now need to use SSL/TLS in order to oper up, as the + [set::plaintext-policy::oper](https://www.unrealircd.org/docs/Set_block#set::plaintext-policy) default setting is now 'deny'. + Similarly, [set::outdated-tls-policy::oper](https://www.unrealircd.org/docs/Set_block#set::outdated-tls-policy) is now also 'deny'. + You can change this, if you want, but it is not recommended. +* [set::outdated-tls-policy::server](https://www.unrealircd.org/docs/Set_block#set::outdated-tls-policy) is now 'deny' as well, since all + servers should use reasonable SSL/TLS protocols and ciphers. +* The default generated certificated has been changed from RSA 4096 bits + to Elliptic Curve Cryptography "384r1". This provides the same amount + of security but at higher speed. This only affects the default self- + signed certificate. You can still use RSA certificates just fine. +* If you do use an RSA certificate, we now require it to be at least + 2048 bits otherwise UnrealIRCd will refuse to boot. +* When matching [allow { } blocks](https://www.unrealircd.org/docs/Allow_block), we now always continue with the next + block (if any) if the password did not match or no password was + specified. In other words, allow::options::nopasscont is now the + default and we behave as if there was a ::wrongpasscont too. +* All snomasks are now oper-only. Previously some were not, which + was confusing and could lead to information leaks. + Also removed weird set::snomask-on-connect accordingly. +* The IRCd now uses hash tables that are resilient against hash table + attacks. Also, the hash tables have increased in size to speed things + up when looking up nick names etc. +* Server options in VERSION (eg: Fhin6OoEMR3) are no longer shown to + normal users. They don't mean much nowadays anyway. +* ```./Config``` now asks fewer questions and configure runs faster since + many unnecessary checks have been removed (compatibility with very + old compilers / systems). +* We now default to system libs (eg: ```--with-system-pcre2``` is assumed) +* Spamfilter should catch some more spam evasion techniques. +* All /DCCDENY and deny dcc { } parsing and checking is now moved to + the 'dccdeny' module. +* Windows: If you choose to run UnrealIRCd as a service then it now + runs under the low-privilege NetworkService account rather than + the high-privilege LocalSystem account. + +Minor issues fixed +------------------- +* Specifying a custom OpenSSL/LibreSSL path should work now + +Removed +-------- +* Support for old server protocols has been removed. + This means UnrealIRCd 5.x cannot link to 3.2.x. It also means you need + to use reasonably new services. Generally, if your services can link to + 4.x then they should be able to link to 5.x as well. More information + about this change and why it was done + [can be found here](https://www.unrealircd.org/docs/FAQ#old-server-protocol). +* Connecting with a server password will no longer send that password + to NickServ. Use [SASL](https://www.unrealircd.org/docs/SASL) instead! +* Extended ban ~R (registered nick): this was the old method to match + registered users. Everyone should use ~a (services account) instead. +* The old TRE **posix** regex method has been removed because the TRE + library is no longer maintained for over a decade and contains many + bugs. (It was already deprecated in UnrealIRCd 4.2.3). + Use type **regex** instead, which uses the modern PCRE2 regex engine. +* Timesync support has been removed. Use your OS time synchronization + instead. (Note that Timesync was already disabled by default in 2018) +* Changing time offsets via ```TSCTL OFFSET``` and ```TSCTL SVSTIME``` are no longer + supported. Use your OS time synchronization (NTP!). Adjustments via + TSCTL are simply not accurate enough. +* The *nopost* module was removed since it no longer serves any useful + purpose. UnrealIRCd already protects against these kind of attacks + via ping cookies ([set::ping-cookie](https://www.unrealircd.org/docs/Set_block#set::ping-cookie), enabled by default). + +Deprecated +----------- +* The set::official-channels block is now deprecated. This provided a + mechanism to pre-configure channels that would have 0 members and + would appear in /LIST with those settings, but once you joined all + those settings would be gone. Rather confusing. + + Since UnrealIRCd 4.x we have permanent channels (+P) and since 5.x + we store these permanent channels in a database so all settings are + saved every few minutes and across restarts. + + Since permanent channels (+P) are much better, the official-channels + support will be removed in a later version. There's no reason to + use official-channels anymore. + +Developers +----------- +* The module header is now as follows: + + ModuleHeader MOD_HEADER + = { + "nameofmodule", + "5.0", + "Some description", + "Name of Author", + "unrealircd-5", + }; + There's a new author field, the version must start with a digit, + and also the name of the module must match the loadmodule name. + So for example third/funmod must also be named third/funmod. +* The ```MOD_TEST```, ```MOD_INIT```, ```MOD_LOAD``` and ```MOD_UNLOAD``` functions no longer + take a name argument. So: ```MOD_INIT(mymod)``` is now ```MOD_INIT()``` +* We now use our own BuildBot infrastructure, so Travis-CI and AppVeyor + have been removed. +* We now use a new test framework. +* ```Auth_Check()``` now returns ```1``` for allow and ```0``` on deny (!!) +* New function ```new_message()``` which should be called when a new message + is sent, or at least for all channel events. It adds (or inherits) + message tags like 'account', 'msgid', 'time', etc. +* Many send functions now take an extra MessageTag *mtags parameter, + including but not limited to: sendto_one() and sendto_server(). +* Command functions (CMD_FUNC) have an extra ```MessageTag *mtags```, + on the other hand the ```cptr``` parameter has been removed. +* Command functions no longer return ```int``` but are ```void```, + the same is true for ```exit_client()```. ```FLUSH_BUFFER``` has been removed too. + All this is a consequence of removing this (limited) signaling + of client exits. From now on, if you call ```exit_client()``` it will free + a lot of the client data and exit the user (close socket, send [s]quit), + but it will **not free 'sptr' itself**, so you can simply check if some + upstream function killed the client by checking ```IsDead(sptr)```. + This is highly recommended after running ```do_cmd()``` or calling other + functions that could kill a client. In which case you should return + rather than continue doing anything with ```sptr```. + Ultimately, in the main loop, the client will be freed (normally in less than 1 second). +* New single unified ```sendto_channel()``` and ```sendto_local_common_channels()``` + functions that are used by all the channel commands. +* Numerics should now be sent using ```sendnumeric()```. There's also + a format string version ```sendnumericfmt()``` in case you need it, + in which case you need to pass the numeric format string yourself. + In such a case, don't forget the colon character, like ":%s", where needed. +* The parameters in several hooks have changed. Many now have an + extra ```MessageTag *mtags``` parameter. Sometimes there are other changes + as well, for example ```HOOKTYPE_CHANMSG``` now has 4 extra parameters. +* You can call do_cmd() with NULL mtags. Usually this is the correct way. +* If you used ```HOOKTYPE_PRE_USERMSG``` to block a message then you + should now use ```HOOKTYPE_CAN_SEND_TO_USER```. Similarly, the hook + ```HOOKTYPE_CAN_SEND``` which deals with channels is now called + ```HOOKTYPE_CAN_SEND_TO_CHANNEL```. Some other remarks: + * You CANNOT use HOOKTYPE_PRE_USERMSG anymore. + * The hooks require you to set an error message if you return HOOK_DENY. + * You should not send an error message yourself from these hooks. + In other words: do not use sendnumeric(). This is done by the + hook caller, based on the error message you return. + * Thanks to this, all rejecting of user messages now use generic + numeric 531 and all rejecting of channel messages use numeric 404. + See also under *Client protocol* later in this document. +* If you use CommandOverrideAddEx() to specify a priority value (rare) + then be aware that in 5.0.1 we now use the 4.0.x behavior again to + match the same style of priorities in hooks: overrides with the + lowest priority are run first. +* If you ever send a timestamp in a printf-like function, such as + in ```sendto_server()```, then be sure to use ```%lld``` and cast the timestamp + to *long long* so that it is compatible with both *NIX and Windows. + Example: ```sendnotice(sptr, "Timestamp is %lld", (long long)ts);``` +* ```EventAdd()``` changed the order of parameters and expects every_msec now + which specifies the time in milliseconds rather than seconds. This + allows for additional precision, or at least multiple calls per second. + The minimum allowed every_msec value is 100 at this time. + The prototype is now: ```EventAdd(Module *module, char *name, + vFP event, void *data, long every_msec, int count);``` +* New ```HOOKTYPE_IS_HANDSHAKE_FINISHED```. If a module returns ```0``` there, then + the ```register_user()``` function will not be called and the user will + not come online (yet). This is used by CAP and some other stuff. + Can be useful if your module needs to "hold" a user in the registration + phase. +* The function ```is_module_loaded()``` now takes a relative path like + "usermodes/noctcp" because with just "ctcp" one could not see the + difference between usermodes/noctcp and chanmodes/noctcp. +* ```CHFL_CHANPROT``` is now ```CHFL_CHANADMIN```, ```is_chanprot()``` is now ```is_chanadmin()``` +* All hash tables now use [SipHash](https://en.wikipedia.org/wiki/SipHash), which is a hash function that is + resilient against hash table attacks. If you, as a module dev, too + use any hash tables anywhere (note: this is quite rare), then you + are recommended to use our functions, see the functions siphash() + and siphash_nocase() in src/hash.c. +* The random generator has been updated to use [ChaCha](https://en.wikipedia.org/wiki/Salsa20#ChaCha20_adoption) (more modern). +* You can now save pointers and integers etc. across rehashes by using + ```LoadPersistentPointer()``` and ```SavePersistentPointer()```. For an example, + see ```src/modules/chanmodes/floodprot.c``` how this can be used. + Note that there can be no struct or type changes between rehashes. +* New ModData types: ```MODDATA_LOCALVAR``` and ```MODDA_GLOBALVAR```. These are + settings or things that are locally or globally identified by the + variable name only and not attached to any user/channel. +* Various files have been renamed. As previously mentioned, the m_ + prefix was dropped in ```src/modules/m_*.c```. Similarly the s_ prefix + was dropped in ```src/s_*.c``` since it no longer had meaning. Also some + files have been deleted and integrated elsewhere or renamed to + have a name that better reflects their true meaning. + Related to this change is that all command functions are now called + ```cmd_name``` rather than ```m_name```. +* ```HOOKTYPE_CHECK_INIT``` and ```HOOKTYPE_PRE_LOCAL_CONNECT``` + have their return value changed. You should now return ```HOOK_*```, such + as ```HOOK_DENY``` or ```HOOK_CONTINUE```. + +Server protocol +---------------- +* UnrealIRCd 5 now assumes you support the following PROTOCTL options: + ```NOQUIT EAUTH SID NICKv2 SJOIN SJ3 NICKIP TKLEXT2```. + If you fail to use ```SID``` or ```EAUTH``` then you will receive an + error. For the other options, support is *assumed*, no warning or + error is shown when you lack support. These are options that most, + if not all, services support since UnrealIRCd 4.x so it shouldn't be + a problem. More information [here](https://www.unrealircd.org/docs/FAQ#old-server-protocol) +* ```PROTOCTL MTAGS``` indicates that the server is capable of handling + message tags and that the server can cope with 4K lines. (Note that + the ordinary non-message-tag part is still limited to 512 bytes). +* Pseudo ID support in SASL was removed. We now use real UID's. + This breaks services who rely on the old pseudo ID format. + +Client protocol +---------------- +* Support for message tags and other IRCv3 features. See the IRCv3 + specifications for more details. +* When a message is blocked, for whatever reason, we now use a generic + numeric response: ```:server 531 yourname targetname :reason``` for the block + This replaces all the various NOTICEs, ```ERR_NOCTCP```, ```ERR_NONONREG```, etc. + with just one single numeric. + The only other numerics that you may still encounter when PM'ing are + ```ERR_NOSUCHNICK```, ```ERR_TOOMANYTARGETS``` and ```ERR_TARGETTOOFAST```, which are + generic errors to any command involving targets. And ```ERR_SERVICESDOWN```. + Note that channel messages already had a generic numeric for signaling + blocked messages for a very long time, ```ERR_CANNOTSENDTOCHAN```. +* The 271 response to the SILENCE command is now: + ```:server 271 yournick listentry!*@*``` + Previously the nick name appeared twice, which was a mistake. +* The 470 numeric, which is sent on /JOIN #channel redirect to #redirect + now uses the following format: + ```:server 470 yournick #channel #redirect :[Link] Cannot join channel...etc..``` +* Clients are recommended to implement and enable the + [server-time](https://ircv3.net/specs/extensions/server-time-3.2) + extension by default. When enabled, channel history is played back + on-join (if any) when the channel has channel mode +H. + Otherwise your users will not see channel history. diff --git a/doc/coding-guidelines b/doc/coding-guidelines new file mode 100644 index 0000000..f9cedc2 --- /dev/null +++ b/doc/coding-guidelines @@ -0,0 +1,123 @@ +Rules about patches & modifications to UnrealIRCd + +1. When making a change, always add a small description in the commit log. + Don't forget to mention the bug# and credit the reporter (if any). + +2. If new files are made, they must contain proper copyright headers. + +3. Each bug or feature should have a bug# so people can have a discussion + about it. This has a few implications (read!!): + * People must report bugs/feature requests to bugs.unrealircd.org and + not on IRC, e-mail, etc. + * That means other people can see the bug# and comment on it. This means + discussion is easy to read back for each issue and not spread between + several IRC logs. + Furthermore, by using the bugtracker instead of directly committing, + people could point out that there might be a better way to do things + than you originally thought, or it might be that other devs don't like + it at all. + * If a head coder has 'acknowledged' or 'confirmed' the issue or stated + in a comment that it's OK to implement, then any dev may take the issue. + The dev should change the status to 'assigned' and work on it, then + commit and change it to 'resolved', set 'fixed in version' to the + correct release, and add a comment pasting the relevant commit log. + Of course other guidelines, in particular rule #7, still applies. + +4. If you don't have direct write access to the repository then you can + submit changes as as PR on github. It is very much preferred to also + have a bugs.unrealircd.org entry for it as well (see previous item). + +5. For the stable branch, in general, only commit changes that have an + associated bugid# and/or were discussed. + For branches currently in development (alpha/beta) there's more freedom + and if you think the change will be small and is fine without a + discussion then feel free to commit. + +6. Regarding reidenting, restructuring or other major code cleanups: please + discuss before doing so. The other devs might not agree with you on the + particular cleanup you have in mind which would result in another + clean-up-the-cleanup commit. + You may, however reindent and clean up individual sections when you are + working on fixing a particular bug# or implementing a new feature. In fact + you're encouraged to do so if the code is confusing without it. However, + obey the style of Unreal's code (mostly outlined in this document) + and do not introduce yet another (new) style. Also, be careful with doing + any cleanup: if you're unsure in any way about the use of something, + or something that looks redundant on first sight, then look more + carefully... it might indeed be useless and/or redundant, but it might + also be a subtle thing that can create great bugs when 'cleaned up'. + +7. During the Release Candidate stage (from RC1 until the final release) + only the head coder may commit directly, all others should ask and + present their patch before committing. Yes, even if you are changing + only 1 line of code or text. + +9. UnrealIRCd should compile on all supported operating systems and + platforms, using GCC 3 or higher on *NIX, and Visual Studio 2008 or + higher on Windows. This means you cannot blindly use all C99 extensions. + +10. Coders must test their code before committing. + +11. /* + * These kind of comments + */ + + NOT + + // These kind of comments + +12. if (something == 1) + { + moo; /* comment */ + /* This does what what what */ + cow(go(moo)); + } + + NOT + + if (something == 1) { + } + +13. Do not touch version.c.SH or version.h, unless you are a head coder. + If you need a credit in, contact us + +14. Protocol changes must be discussed before making patches for it. + +15. We do NOT rip people off. If we use other people's code, it MUST be + properly credited. + +16. We use tabsize 8 and we use tabs AND NOT SPACES. + Some code is old and horrible and has a mix of tabs and spaces used for + spacing, that's something we do not want to have ;) + +17. Be careful about overflows. Do not do any unchecked string copies. + Instead of strcpy, strcat and sprintf/ircsprintf, use the following + functions: strlcpy, strlcat, snprintf/ircnsprintf. + If you are copying/writing character-by-character or word-by-word in a + loop, eg using *p++ = x; then be very sure about your size counting. + Often it's better to avoid such code altogether, by simply using + strlcat for everything. + +18. Speed. When optimizing or writing code, keep in mind that readability and + stability comes FIRST, and after that comes speed. So we'd rather prefer some + readable code (even if difficult) over some odd highly optimized routine which + nobody understands, is difficult to extend, and might have several bugs. + As mentioned earlier: use ircsnprintf, not snprintf (this is because + ircsnprintf is optimized for simple strings like the ones we use). + ircsnprintf calls snprintf when it finds a (non-simple) format specifier it + can't handle. Simple format specifiers do not have prefixes other than + h and l. + +19. Initialize your structs and use the proper memory calls. + In UnrealIRCd we use safe_alloc, safe_free, safe_strdup and safe_strldup. + Do NOT use malloc, calloc or strdup. + +20. Comment your code! This should speak for itself... + Put comments wherever you think they are needed, to aid any further coders + with reading your code.. and, in fact, it will aid yourself as well if you + would look back at your code 2 years later. + If there's some obscure pitfall, DO mention it! Don't just "hope" a next + author will see it like you did. + +21. Use enums whenever possible, rather than #define constants. Besides making + things more clean, it also aids debugging. diff --git a/doc/compiling_win32.txt b/doc/compiling_win32.txt new file mode 100644 index 0000000..11d52ab --- /dev/null +++ b/doc/compiling_win32.txt @@ -0,0 +1,2 @@ +For information on how to compile UnrealIRCd (modules) on Windows, see: +https://www.unrealircd.org/docs/Compiling_UnrealIRCd_on_Windows diff --git a/doc/conf/badwords.conf b/doc/conf/badwords.conf new file mode 100644 index 0000000..8b8a792 --- /dev/null +++ b/doc/conf/badwords.conf @@ -0,0 +1,99 @@ +badword channel { word "bitch"; replace "wombat"; } +badword channel { word "bro"; replace "bo"; } +badword channel { word "(brother)"; replace "bredda"; } +badword channel { word "car"; replace "taxi"; } +badword channel { word "discord"; replace "dicsord"; } +badword channel { word "efnet"; replace "efrael"; } +badword channel { word "hate"; replace "04 hate "; } +badword channel { word "hello"; replace "smello"; } +badword channel { word "house"; replace "flat"; } +badword channel { word "gaming"; replace "gaymen"; } +badword channel { word "im"; replace "m"; } +badword channel { word "i'm"; replace "m"; } +badword channel { word "i am"; replace "m"; } +badword channel { word "my"; replace "me"; } +badword channel { word "(nigger)"; replace "angel"; } +badword channel { word "np"; replace "mp"; } +badword channel { word "on"; replace "pon"; } +badword channel { word "same"; replace "salami"; } +badword channel { word "(skyp)"; replace "skik"; } +badword channel { word "(ss)"; replace "ÏŸÏŸ"; } +badword channel { word "(troll)"; replace "papillion"; } +badword channel { word "uber"; replace "HELLS ANGELS"; } +badword channel { word "(year)"; replace "yonk"; } + +badword channel { word "sup"; replace "wah gwaan"; } +badword channel { word "wussup"; replace "wah gwaan"; } +badword channel { word "wats up"; replace "wah gwaan"; } +badword channel { word "watsup"; replace "wah gwaan"; } +badword channel { word "whatsup"; replace "wah gwaan"; } +badword channel { word "whats up"; replace "wah gwaan"; } +badword channel { word "what's up"; replace "wah gwaan"; } +badword channel { word "wuddup"; replace "wah gwaan"; } + +badword channel { word "gal"; replace "bint"; } +badword channel { word "(girl)"; replace "bint"; } +badword channel { word "lady"; replace "bint"; } +badword channel { word "ladies"; replace "bints"; } +badword channel { word "(woman)"; replace "bint"; } +badword channel { word "women"; replace "bints"; } + +badword channel { word "ganja"; replace "bobby brown"; } +badword channel { word "marijuana"; replace "bobby brown"; } +badword channel { word "pot"; replace "bobby brown"; } +badword channel { word "weed"; replace "bobby brown"; } + +badword channel { word "kek"; replace "%%"; } +badword channel { word "lmao"; replace "%%"; } +badword channel { word "lmfao"; replace "%%"; } +badword channel { word "(lol)"; replace "%%"; } +badword channel { word "lorf"; replace "%%"; } +badword channel { word "rofl"; replace "%%"; } +badword channel { word "rr"; replace "%%"; } + +#badword channel { word "came"; replace "came (nohomo)"; } +#badword channel { word "come"; replace "come (nohomo)"; } +#badword channel { word "comes"; replace "comes (nohomo)"; } +#badword channel { word "coming"; replace "coming (nohomo)"; } +#badword channel { word "hard"; replace "hard (nohomo)"; } +#badword channel { word "nut"; replace "nut (nohomo)"; } +#badword channel { word "nuts"; replace "nuts (nohomo)"; } +#badword channel { word "up"; replace "up (nohomo)"; } +#badword channel { word "vertical"; replace "vertical (nohmo)"; } + +#badword channel { word "(a)"; replace "A"; } +#badword channel { word "(b)"; replace "ï¼¢"; } +#badword channel { word "(c)"; replace "ï¼£"; } +#badword channel { word "(d)"; replace "D"; } +#badword channel { word "(e)"; replace "ï¼¥"; } +#badword channel { word "(f)"; replace "F"; } +#badword channel { word "(g)"; replace "G"; } +#badword channel { word "(h)"; replace "H"; } +#badword channel { word "(i)"; replace "I"; } +#badword channel { word "(j)"; replace "J"; } +#badword channel { word "(k)"; replace "K"; } +#badword channel { word "(l)"; replace "L"; } +#badword channel { word "(m)"; replace "ï¼­"; } +#badword channel { word "(n)"; replace "ï¼®"; } +#badword channel { word "(o)"; replace "O"; } +#badword channel { word "(p)"; replace "ï¼°"; } +#badword channel { word "(q)"; replace "ï¼±"; } +#badword channel { word "(r)"; replace "ï¼²"; } +#badword channel { word "(s)"; replace "ï¼³"; } +#badword channel { word "(t)"; replace "ï¼´"; } +#badword channel { word "(u)"; replace "ï¼µ"; } +#badword channel { word "(v)"; replace "V"; } +#badword channel { word "(w)"; replace "ï¼·"; } +#badword channel { word "(x)"; replace "X"; } +#badword channel { word "(y)"; replace "ï¼¹"; } +#badword channel { word "(z)"; replace "Z"; } +#badword channel { word "(0)"; replace "ï¼"; } +#badword channel { word "(1)"; replace "1"; } +#badword channel { word "(2)"; replace "ï¼’"; } +#badword channel { word "(3)"; replace "3"; } +#badword channel { word "(4)"; replace "ï¼”"; } +#badword channel { word "(5)"; replace "5"; } +#badword channel { word "(6)"; replace "ï¼–"; } +#badword channel { word "(7)"; replace "ï¼—"; } +#badword channel { word "(8)"; replace "8"; } +#badword channel { word "(9)"; replace "ï¼™"; } diff --git a/doc/conf/except.conf b/doc/conf/except.conf new file mode 100644 index 0000000..14a9be5 --- /dev/null +++ b/doc/conf/except.conf @@ -0,0 +1,35 @@ +# Localhost +except ban { mask *@127.0.0.1; } + +# IRCCloud +except ban { mask *@192.184.9.108; } # highgate.irccloud.com +except ban { mask *@192.184.9.110; } # ealing.irccloud.com +except ban { mask *@192.184.9.112; } # charlton.irccloud.com +except ban { mask *@192.184.10.118; } # brockwell.irccloud.com +except ban { mask *@192.184.10.9; } # tooting.irccloud.com +except ban { mask *@192.184.8.73; } # hathersage.irccloud.com +except ban { mask *@192.184.8.103; } # stonehaven.irccloud.com +except ban { mask *@2001:67c:2f08::/48; } # IPv6 + +# IRC Source +except ban { mask *@49.56.142.157; } # yin.ircs.me +except ban { mask *@149.56.142.163; } # yang.ircs.me +except ban { mask *@2607:5300:201:3100::13dd; } # yin.ircs.me +except ban { mask *@2607:5300:201:3100::299d; } # yang.ircs.me + +# KiwiIRC +except ban { mask *@107.161.19.53; } +except ban { mask *@107.161.19.109; } +except ban { mask *@109.169.31.4; } +except ban { mask *@109.169.31.13; } # KiwiIRC Verify Bot (out.kiwiirc.com) + +# Mibbit +except ban { mask *@207.192.75.252; } # ircip1.mibbit.com +except ban { mask *@64.62.228.82; } # ircip2.mibbit.com +except ban { mask *@78.129.202.38; } # ircip3.mibbit.com +except ban { mask *@109.169.29.95; } # ircip4.mibbit.com +except ban { mask *@97.107.138.109; } # bot.search.mibbit.com +except ban { mask *@2600:3c03::f03c:91ff:fe96:c1fa; } # bot.search.mibbit.com + +# Netsplit +except ban { mask *@85.25.137.63; } # eagle.netsplit.de diff --git a/doc/conf/ircd.motd b/doc/conf/ircd.motd new file mode 100644 index 0000000..1113ad7 --- /dev/null +++ b/doc/conf/ircd.motd @@ -0,0 +1,47 @@ + 0,0 0â•— 0,0 0â•— 0,0 0â•— 0,0 0â•— 0,0 0â•— 0,0 0â•— + 0,0 0â•”â•â•0,0 0â•— 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•”â•â•0,0 0â•— 0,0 0â•”â•â•â•â•â• 0,0 0â•”â•â•0,0 0â•— + 0,0 0â•‘ â•šâ•â• 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ + 0â•š0,0 0â•— 0,0 0â•‘ 0,0 0â•‘ 0,0 0╔╠0,0 0â•— 0,0 0╔╠+ 0â•šâ•â•â•0,0 0â•— 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•”â•â•â•â• 0,0 0â•”â•â•â•â•â• 0,0 0â•”â•â•0,0 0â•— + 0,0 0â•— 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ + 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ + 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ + 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ + 0â•š0,0 0╔╠╚0,0 0╔╠0,0 0â•‘ 0,0 0â•— 0,0 0â•‘ 0,0 0â•‘ +0 â•šâ•â•â•â•â• â•šâ•â•â•â•â• â•šâ•â• â•šâ•â•â•â•â•â•â• â•šâ•â• â•šâ•â• + + 0,12  + 0,12 0,4 0,12  + 0,12 0,4 0,8 0,4 0,8 0,4 0,8 0,4 0,12  +0,12 0,4 0,8 0,4 0,8 0,4 0,8 0,4 0,12  +0,12 0,4 0,8 0,4 0,8 0,4 0,12  + 0,12 0,4 0,8 0,4 0,8 0,4 0,12  + 0,12 0,4 0,12  + 0,12 0,4 0,8 0,4 0,12  + 0,12 0,4 0,8 0,4 0,8 0,4 0,12  + 0,12 0,4 0,12  + 0,12 0,4 0,8 0,4 0,12  + 0,12 0,4 0,8 0,4 0,12  + 0,12 0,4 0,12  + 0,12 0,4 0,12  + 0,12  + 0,12  + + 0,0 0â•— 0,0 0â•— 0,0 0â•— 0,0 0â•— 0,0 0â•— + 0,0 0â•”â•0,0 0â•— 0,0 0â•‘ 0,0 0â•”â•â•â•â•â• 0,0 0â•”â•â• 0,0 0â•”â•â•0,0 0â•— + 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ â•šâ•â• + 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•— 0,0 0â•‘ â•š0,0 0â•— + 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•”â•â•â•â•â• 0,0 0â•‘ â•šâ•â•â•0,0 0â•— + 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0 0â•‘ 0,0  0,0 0â•‘ + 0,0 0â•‘ â•š0,0 0â•‘ 0,0 0â•— 0,0 0â•‘ â•š0,0 0╔╠+ 0â•šâ•â• â•šâ•â•â•â•â• â•šâ•â•â•â•â•â•â• â•šâ•â• â•šâ•â•â•â•â• + + + +4──────────────────┤ 0RULES 4├─────────────────── + +14• 7Do not disrupt or compromise our security. +14• 7No malicious abuse of network services. +14• 7No distribution of child pornography. + +4────────────────────────────────────────────── \ No newline at end of file diff --git a/doc/conf/links.conf b/doc/conf/links.conf new file mode 100644 index 0000000..73f889e --- /dev/null +++ b/doc/conf/links.conf @@ -0,0 +1,11 @@ +link bulbasaur.supernets.org { + incoming { mask REDACTED; } + outgoing { + bind-ip *; + hostname REDACTED; + port REDACTED; + options { tls; } + } + password "REDACTED" { spkifp; } + class servers; +} \ No newline at end of file diff --git a/doc/conf/modules.conf b/doc/conf/modules.conf new file mode 100644 index 0000000..d91700c --- /dev/null +++ b/doc/conf/modules.conf @@ -0,0 +1,190 @@ +// User Commands (Minimal) +#loadmodule "admin"; +loadmodule "away"; +loadmodule "invite"; +loadmodule "ison"; +loadmodule "join"; +loadmodule "kick"; +loadmodule "links"; +loadmodule "list"; +loadmodule "lusers"; +loadmodule "map"; +loadmodule "message"; +loadmodule "mode"; +loadmodule "motd"; +loadmodule "names"; +loadmodule "nick"; +loadmodule "part"; +loadmodule "pass"; +loadmodule "pingpong"; +loadmodule "protoctl"; +loadmodule "quit"; +#loadmodule "rules"; +loadmodule "topic"; +loadmodule "user"; +loadmodule "userhost"; +loadmodule "watch"; +loadmodule "whox"; +loadmodule "whois"; +#loadmodule "whowas"; + +// User Commands (Extended) +#loadmodule "botmotd"; +loadmodule "cap"; +loadmodule "cycle"; +#loadmodule "dccallow"; +#loadmodule "help"; +loadmodule "history"; +loadmodule "knock"; +loadmodule "lag"; +loadmodule "sasl"; +loadmodule "setname"; +loadmodule "silence"; +loadmodule "starttls"; +loadmodule "time"; +loadmodule "userip"; +loadmodule "vhost"; + +// Operator Commands +#loadmodule "addmotd"; +#loadmodule "addomotd"; +loadmodule "chghost"; +loadmodule "chgident"; +loadmodule "chgname"; +loadmodule "close"; +loadmodule "connect"; +#loadmodule "dccdeny"; +#loadmodule "globops"; +#loadmodule "jumpserver"; +loadmodule "kill"; +#loadmodule "locops"; +loadmodule "mkpasswd"; +loadmodule "oper"; +#loadmodule "opermotd"; +loadmodule "sajoin"; +loadmodule "samode"; +loadmodule "sapart"; +#loadmodule "sdesc"; +loadmodule "sethost"; +loadmodule "setident"; +loadmodule "squit"; +loadmodule "stats"; +loadmodule "tkl"; +loadmodule "trace"; +loadmodule "tsctl"; +loadmodule "unsqline"; +#loadmodule "wallops"; + +// Server-2-Server Commands +loadmodule "eos"; +loadmodule "md"; +loadmodule "netinfo"; +#loadmodule "require-module"; +loadmodule "server"; +loadmodule "sinfo"; +loadmodule "sjoin"; +loadmodule "sqline"; +loadmodule "swhois"; +loadmodule "umode2"; + +// Services Commands +loadmodule "sendsno"; +loadmodule "sendumode"; +loadmodule "svsjoin"; +loadmodule "svskill"; +loadmodule "svslusers"; +loadmodule "svsmode"; +loadmodule "svsmotd"; +loadmodule "svsnick"; +loadmodule "svsnline"; +loadmodule "svsnolag"; +loadmodule "svsnoop"; +loadmodule "svspart"; +loadmodule "svssilence"; +loadmodule "svssno"; +loadmodule "svswatch"; + +// Channel Modes +loadmodule "chanmodes/censor"; /* +G */ +loadmodule "chanmodes/delayjoin"; /* +D */ +loadmodule "chanmodes/floodprot"; /* +f */ +loadmodule "chanmodes/history"; /* +H */ +loadmodule "chanmodes/issecure"; /* +Z */ +loadmodule "chanmodes/link"; /* +L */ +loadmodule "chanmodes/nocolor"; /* +c */ +loadmodule "chanmodes/noctcp"; /* +C */ +loadmodule "chanmodes/noinvite"; /* +V */ +loadmodule "chanmodes/nokick"; /* +Q */ +loadmodule "chanmodes/noknock"; /* +K */ +loadmodule "chanmodes/nonickchange"; /* +N */ +loadmodule "chanmodes/nonotice"; /* +T */ +loadmodule "chanmodes/operonly"; /* +O */ +loadmodule "chanmodes/permanent"; /* +P */ +loadmodule "chanmodes/regonly"; /* +R */ +loadmodule "chanmodes/regonlyspeak"; /* +M */ +loadmodule "chanmodes/secureonly"; /* +z */ +loadmodule "chanmodes/stripcolor"; /* +S */ + +// User Modes +loadmodule "usermodes/bot"; /* +B */ +#loadmodule "usermodes/censor"; /* +G */ +loadmodule "usermodes/noctcp"; /* +T */ +loadmodule "usermodes/nokick"; /* +q */ +loadmodule "usermodes/privacy"; /* +p */ +loadmodule "usermodes/privdeaf"; /* +D */ +loadmodule "usermodes/regonlymsg"; /* +R */ +loadmodule "usermodes/secureonlymsg"; /* +Z */ +loadmodule "usermodes/servicebot"; /* +S */ +#loadmodule "usermodes/showwhois"; /* +W */ + + +// Snomasks +#loadmodule "snomasks/dccreject"; /* +D */ + +// Extended Bans +loadmodule "extbans/account"; /* +b ~a */ +loadmodule "extbans/certfp"; /* +b ~S */ +#loadmodule "extbans/inchannel"; /* +b ~c */ +#loadmodule "extbans/join"; /* +b ~j */ +loadmodule "extbans/msgbypass"; /* +e ~m */ +#loadmodule "extbans/nickchange"; /* +b ~n */ +#loadmodule "extbans/operclass"; /* +b ~O */ +#loadmodule "extbans/partmsg"; /* +b ~p */ +loadmodule "extbans/quiet"; /* +b ~q */ +loadmodule "extbans/realname"; /* +b ~r */ +loadmodule "extbans/textban"; /* +b ~T */ +loadmodule "extbans/timedban"; /* +b ~t */ + +// IRCv3 Extensions +loadmodule "account-tag"; +loadmodule "batch"; +loadmodule "echo-message"; +loadmodule "labeled-response"; +loadmodule "link-security"; +loadmodule "message-ids"; +loadmodule "message-tags"; +loadmodule "plaintext-policy"; +loadmodule "server-time"; +loadmodule "sts"; + +// Other +loadmodule "antimixedutf8"; +#loadmodule "authprompt"; +loadmodule "blacklist"; +loadmodule "certfp"; +loadmodule "channeldb"; +loadmodule "charsys"; +loadmodule "connthrottle"; +loadmodule "hideserver"; +loadmodule "history_backend_mem"; +#loadmodule "history_backend_null"; +loadmodule "ident_lookup"; +loadmodule "jointhrottle"; +loadmodule "tkldb"; +loadmodule "tls_antidos"; +loadmodule "userhost-tag"; +loadmodule "userip-tag"; +loadmodule "reputation"; +loadmodule "restrict-commands"; +loadmodule "rmtkl"; +loadmodule "webirc"; \ No newline at end of file diff --git a/doc/conf/modules.sources.list b/doc/conf/modules.sources.list new file mode 100644 index 0000000..b8fec7e --- /dev/null +++ b/doc/conf/modules.sources.list @@ -0,0 +1 @@ +https://modules.unrealircd.org/modules.list diff --git a/doc/conf/opers.conf b/doc/conf/opers.conf new file mode 100644 index 0000000..0c00b12 --- /dev/null +++ b/doc/conf/opers.conf @@ -0,0 +1,162 @@ +oper acidvegas { + mask localhost; + password "REDACTED" { sslclientcertfp; } + class clients; + operclass netadmin; + require-modes z; + maxlogins 1; + vhost super.nets; + swhois "1,1 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,7 1,5 1,1 0 1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 14 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 0THE BIGGEST 1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 0DICK ON IRC 1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,7 1,5 1,1 "; + swhois "1,1 1,5 1,1 "; +} + +#oper mate { +# class clients; +# mask localhost; +# password "REDACTED" { sslclientcertfp; } +# operclass linker; +# require-modes z; +# maxlogins 1; +# vhost super.nets.link; +#} + +oper 5000 { + class clients; + mask localhost; + password "REDACTED"; + operclass fuckyou; + require-modes z; + maxlogins 1; + vhost 5000; +} + +oper cancer { + class clients; + mask localhost; + password "REDACTED"; + operclass linker; + require-modes z; + maxlogins 1; + vhost NCER; +} + +operclass netadmin { + permissions { + chat { notice { global; } } + client { set; } + immune { join-flood; max-conncurrent-conversionations; maxchannelsperuser; nick-flood; server-ban { spamfilter; } } + kill; + channel { operonly; override; see; } + route; + sacmd; + self { set; } + server { rehash; } + server-ban { gline; spamfilter; zline; } + } +} + +operclass linker { + permissions { + immune { join-flood; nick-flood; server-ban { spamfilter; } } + channel { operonly { join; topic; } } + channel { + override { + invite { self; } + message { ban; moderated; } + mode { extban; } + } + } + channel { + see { + list { secret; } + names { invisible; secret; } + whois; + } + } + } +} + +operclass cancer { + permissions { + immune { join-flood; max-concurrent-conversations; server-ban { spamfilter; } } + kill { global; } + channel { + override { + flood; + message { ban; moderated; } + mode { extban; } + } + } + } +} + +operclass fuckyou { + permissions { + immune { join-flood; server-ban { spamfilter; } } + channel { + override { + flood; + message { ban; moderated; } + mode { extban; } + } + } + sacmd { sajoin; } + } +} \ No newline at end of file diff --git a/doc/conf/remote.motd b/doc/conf/remote.motd new file mode 100644 index 0000000..e69de29 diff --git a/doc/conf/spamfilter.conf b/doc/conf/spamfilter.conf new file mode 100644 index 0000000..ca469df --- /dev/null +++ b/doc/conf/spamfilter.conf @@ -0,0 +1,7 @@ +#spamfilter { +# match-type simple; +# match "*spam*message*here*"; +# target { private; private-notice; channel; channel-notice; } +# action kill; +# reason "8,4 E N T E R T H E V O I D "; +#} \ No newline at end of file diff --git a/doc/conf/tls/curl-ca-bundle.crt b/doc/conf/tls/curl-ca-bundle.crt new file mode 100644 index 0000000..edc5090 --- /dev/null +++ b/doc/conf/tls/curl-ca-bundle.crt @@ -0,0 +1,3432 @@ +## +## Bundle of CA Root Certificates +## +## Certificate data from Mozilla as of: Wed Oct 16 03:12:09 2019 GMT +## +## This is a bundle of X.509 certificates of public Certificate Authorities +## (CA). These were automatically extracted from Mozilla's root certificates +## file (certdata.txt). This file can be found in the mozilla source tree: +## https://hg.mozilla.org/releases/mozilla-release/raw-file/default/security/nss/lib/ckfw/builtins/certdata.txt +## +## It contains the certificates in PEM format and therefore +## can be directly used with curl / libcurl / php_curl, or with +## an Apache+mod_ssl webserver for SSL client authentication. +## Just configure this file as the SSLCACertificateFile. +## +## Conversion done with mk-ca-bundle.pl version 1.27. +## SHA256: c979c6f35714a0fedb17d9e5ba37adecbbc91a8faf4186b4e23d6f9ca44fd6cb +## + + +GlobalSign Root CA +================== +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkGA1UEBhMCQkUx +GTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jvb3QgQ0ExGzAZBgNVBAMTEkds +b2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAwMDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNV +BAYTAkJFMRkwFwYDVQQKExBHbG9iYWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYD +VQQDExJHbG9iYWxTaWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDa +DuaZjc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavpxy0Sy6sc +THAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp1Wrjsok6Vjk4bwY8iGlb +Kk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdGsnUOhugZitVtbNV4FpWi6cgKOOvyJBNP +c1STE4U6G7weNLWLBYy5d4ux2x8gkasJU26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrX +gzT/LCrBbBlDSgeF59N89iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0BAQUF +AAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOzyj1hTdNGCbM+w6Dj +Y1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE38NflNUVyRRBnMRddWQVDf9VMOyG +j/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymPAbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhH +hm4qxFYxldBniYUr+WymXUadDKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveC +X4XSQRjbgbMEHMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +GlobalSign Root CA - R2 +======================= +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6 +ErPLv4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8eoLrvozp +s6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklqtTleiDTsvHgMCJiEbKjN +S7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzdC9XZzPnqJworc5HGnRusyMvo4KD0L5CL +TfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pazq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6C +ygPCm48CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4E +FgQUm+IHV2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5nbG9i +YWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG3lm0mi3f3BmGLjAN +BgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4GsJ0/WwbgcQ3izDJr86iw8bmEbTUsp +9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu +01yiPqFbQfXf5WRDLenVOavSot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG7 +9G+dwfCMNYxdAfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +Verisign Class 3 Public Primary Certification Authority - G3 +============================================================ +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRy +dXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWduIENsYXNzIDMgUHVibGljIFByaW1hcnkg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAMu6nFL8eB8aHm8bN3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1 +EUGO+i2tKmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGukxUc +cLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBmCC+Vk7+qRy+oRpfw +EuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJXwzw3sJ2zq/3avL6QaaiMxTJ5Xpj +055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWuimi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEA +ERSWwauSCPc/L8my/uRan2Te2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5f +j267Cz3qWhMeDGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565pF4ErWjfJXir0 +xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGtTxzhT5yvDwyd93gN2PQ1VoDa +t20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +Entrust.net Premium 2048 Secure Server CA +========================================= +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChMLRW50cnVzdC5u +ZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBpbmNvcnAuIGJ5IHJlZi4gKGxp +bWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNV +BAMTKkVudHJ1c3QubmV0IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQx +NzUwNTFaFw0yOTA3MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3 +d3d3LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxpYWIuKTEl +MCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEGA1UEAxMqRW50cnVzdC5u +ZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgpMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEArU1LqRKGsuqjIAcVFmQqK0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOL +Gp18EzoOH1u3Hs/lJBQesYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSr +hRSGlVuXMlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVTXTzW +nLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/HoZdenoVve8AjhUi +VBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH4QIDAQABo0IwQDAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJ +KoZIhvcNAQEFBQADggEBADubj1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPy +T/4xmf3IDExoU8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5bu/8j72gZyxKT +J1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+bYQLCIt+jerXmCHG8+c8eS9e +nNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/ErfF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +Baltimore CyberTrust Root +========================= +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJRTESMBAGA1UE +ChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYDVQQDExlCYWx0aW1vcmUgQ3li +ZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoXDTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMC +SUUxEjAQBgNVBAoTCUJhbHRpbW9yZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFs +dGltb3JlIEN5YmVyVHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKME +uyKrmD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjrIZ3AQSsB +UnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeKmpYcqWe4PwzV9/lSEy/C +G9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSuXmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9 +XbIGevOF6uvUA65ehD5f/xXtabz5OTZydc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjpr +l3RjM71oGDHweI12v/yejl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoI +VDaGezq1BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEB +BQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT929hkTI7gQCvlYpNRh +cL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3WgxjkzSswF07r51XgdIGn9w/xZchMB5 +hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsa +Y71k5h+3zvDyny67G7fyUIhzksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9H +RCwBXbsdtTLSR9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +AddTrust External Root +====================== +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEUMBIGA1UEChML +QWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYD +VQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEw +NDgzOFowbzELMAkGA1UEBhMCU0UxFDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRU +cnVzdCBFeHRlcm5hbCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0Eg +Um9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvtH7xsD821 ++iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9uMq/NzgtHj6RQa1wVsfw +Tz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzXmk6vBbOmcZSccbNQYArHE504B4YCqOmo +aSYYkKtMsE8jqzpPhNjfzp/haW+710LXa0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy +2xSoRcRdKn23tNbE7qzNE0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv7 +7+ldU9U0WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYDVR0P +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0Jvf6xCZU7wO94CTL +VBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRUcnVzdCBBQjEmMCQGA1UECxMdQWRk +VHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsxIjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENB +IFJvb3SCAQEwDQYJKoZIhvcNAQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZl +j7DYd7usQWxHYINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvCNr4TDea9Y355 +e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEXc4g/VhsxOBi0cQ+azcgOno4u +G+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5amnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +Entrust Root Certification Authority +==================================== +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0Lm5ldC9DUFMgaXMgaW5jb3Jw +b3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMWKGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsG +A1UEAxMkRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0 +MloXDTI2MTEyNzIwNTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMu +MTkwNwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSByZWZlcmVu +Y2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNVBAMTJEVudHJ1c3QgUm9v +dCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ALaVtkNC+sZtKm9I35RMOVcF7sN5EUFoNu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYsz +A9u3g3s+IIRe7bJWKKf44LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOww +Cj0Yzfv9KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGIrb68 +j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi94DkZfs0Nw4pgHBN +rziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOBsDCBrTAOBgNVHQ8BAf8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAigA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1 +MzQyWjAfBgNVHSMEGDAWgBRokORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DH +hmak8fdLQ/uEvW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9tO1KzKtvn1ISM +Y/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6ZuaAGAT/3B+XxFNSRuzFVJ7yVTa +v52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTS +W3iDVuycNsMm4hH2Z0kdkquM++v/eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0 +tHuu2guQOHXvgR1m0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +GeoTrust Global CA +================== +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9iYWwgQ0EwHhcNMDIwNTIxMDQw +MDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5j +LjEbMBkGA1UEAxMSR2VvVHJ1c3QgR2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEA2swYYzD99BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjo +BbdqfnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDviS2Aelet +8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU1XupGc1V3sjs0l44U+Vc +T4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+bw8HHa8sHo9gOeL6NlMTOdReJivbPagU +vTLrGAMoUgRx5aszPeE4uwc2hGKceeoWMPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBTAephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVk +DBF9qn1luMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKInZ57Q +zxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfStQWVYrmm3ok9Nns4 +d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcFPseKUgzbFbS9bZvlxrFUaKnjaZC2 +mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Unhw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6p +XE0zX5IJL4hmXXeXxx12E6nV5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvm +Mw== +-----END CERTIFICATE----- + +GeoTrust Universal CA +===================== +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVyc2FsIENBMB4XDTA0MDMwNDA1 +MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IElu +Yy4xHjAcBgNVBAMTFUdlb1RydXN0IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBAKYVVaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9t +JPi8cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTTQjOgNB0e +RXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFhF7em6fgemdtzbvQKoiFs +7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2vc7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d +8Lsrlh/eezJS/R27tQahsiFepdaVaH/wmZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7V +qnJNk22CDtucvc+081xdVHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3Cga +Rr0BHdCXteGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZf9hB +Z3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfReBi9Fi1jUIxaS5BZu +KGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+nhutxx9z3SxPGWX9f5NAEC7S8O08 +ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0 +XG0D08DYj3rWMB8GA1UdIwQYMBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIB +hjANBgkqhkiG9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fXIwjhmF7DWgh2 +qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzynANXH/KttgCJwpQzgXQQpAvvL +oJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0zuzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsK +xr2EoyNB3tZ3b4XUhRxQ4K5RirqNPnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxF +KyDuSN/n3QmOGKjaQI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2 +DFKWkoRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9ER/frslK +xfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQtDF4JbAiXfKM9fJP/P6EU +p8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/SfuvmbJxPgWp6ZKy7PtXny3YuxadIwVyQD8vI +P/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +GeoTrust Universal CA 2 +======================= +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMN +R2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwHhcNMDQwMzA0 +MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3Qg +SW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUA +A4ICDwAwggIKAoICAQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0 +DE81WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUGFF+3Qs17 +j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdqXbboW0W63MOhBW9Wjo8Q +JqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxLse4YuU6W3Nx2/zu+z18DwPw76L5GG//a +QMJS9/7jOvdqdzXQ2o3rXhhqMcceujwbKNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2 +WP0+GfPtDCapkzj4T8FdIgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP +20gaXT73y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRthAAn +ZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgocQIgfksILAAX/8sgC +SqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4Lt1ZrtmhN79UNdxzMk+MBB4zsslG +8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2 ++/CfXGJx7Tz0RzgQKzAfBgNVHSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8E +BAMCAYYwDQYJKoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQL1EuxBRa3ugZ +4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgrFg5fNuH8KrUwJM/gYwx7WBr+ +mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSoag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpq +A1Ihn0CoZ1Dy81of398j9tx4TuaYT1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpg +Y+RdM4kX2TGq2tbzGDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiP +pm8m1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJVOCiNUW7d +FGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH6aLcr34YEoP9VhdBLtUp +gn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwXQMAJKOSLakhT2+zNVVXxxvjpoixMptEm +X36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +Comodo AAA Services root +======================== +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEbMBkGA1UECAwS +R3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRowGAYDVQQKDBFDb21vZG8gQ0Eg +TGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmljYXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAw +MFoXDTI4MTIzMTIzNTk1OVowezELMAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hl +c3RlcjEQMA4GA1UEBwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNV +BAMMGEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQuaBtDFcCLNSS1UY8y2bmhG +C1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe3M/vg4aijJRPn2jymJBGhCfHdr/jzDUs +i14HZGWCwEiwqJH5YZ92IFCokcdmtet4YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszW +Y19zjNoFmag4qMsXeDZRrOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjH +Ypy+g8cmez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQUoBEK +Iz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wewYDVR0f +BHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20vQUFBQ2VydGlmaWNhdGVTZXJ2aWNl +cy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29tb2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2Vz +LmNybDANBgkqhkiG9w0BAQUFAAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm +7l3sAg9g1o1QGE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2G9w84FoVxp7Z +8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsil2D4kF501KKaU73yqWjgom7C +12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +QuoVadis Root CA +================ +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJCTTEZMBcGA1UE +ChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAz +MTkxODMzMzNaFw0yMTAzMTcxODMzMzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRp +cyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQD +EyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Ypli4kVEAkOPcahdxYTMuk +J0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2DrOpm2RgbaIr1VxqYuvXtdj182d6UajtL +F8HVj71lODqV0D1VNk7feVcxKh7YWWVJWCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeL +YzcS19Dsw3sgQUSj7cugF+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWen +AScOospUxbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCCAk4w +PQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVvdmFkaXNvZmZzaG9y +ZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREwggENMIIBCQYJKwYBBAG+WAABMIH7 +MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNlIG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmlj +YXRlIGJ5IGFueSBwYXJ0eSBhc3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJs +ZSBzdGFuZGFyZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYIKwYBBQUHAgEW +Fmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3TKbkGGew5Oanwl4Rqy+/fMIGu +BgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rqy+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkw +FwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MS4wLAYDVQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6 +tlCLMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSkfnIYj9lo +fFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf87C9TqnN7Az10buYWnuul +LsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1RcHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2x +gI4JVrmcGmD+XcHXetwReNDWXcG31a0ymQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi +5upZIof4l/UO/erMkqQWxFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi +5nrQNiOKSnQ2+Q== +-----END CERTIFICATE----- + +QuoVadis Root CA 2 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +QuoVadis Root CA 3 +================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Security Communication Root CA +============================== +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +HhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMP +U0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw +8yl89f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJDKaVv0uM +DPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9Ms+k2Y7CI9eNqPPYJayX +5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/NQV3Is00qVUarH9oe4kA92819uZKAnDfd +DJZkndwi92SL32HeFZRSFaB9UslLqCHJxrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2 +JChzAgMBAAGjPzA9MB0GA1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYw +DwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vGkl3g +0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfrUj94nK9NrvjVT8+a +mCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5Bw+SUEmK3TGXX8npN6o7WWWXlDLJ +s58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJUJRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ +6rBK+1YWc26sTfcioU+tHXotRSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAi +FL39vmwLAw== +-----END CERTIFICATE----- + +Sonera Class 2 Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEPMA0GA1UEChMG +U29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAxMDQwNjA3Mjk0MFoXDTIxMDQw +NjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNVBAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJh +IENsYXNzMiBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3 +/Ei9vX+ALTU74W+oZ6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybT +dXnt5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s3TmVToMG +f+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2EjvOr7nQKV0ba5cTppCD8P +tOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu8nYybieDwnPz3BjotJPqdURrBGAgcVeH +nfO+oJAjPYok4doh28MCAwEAAaMzMDEwDwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITT +XjwwCwYDVR0PBAQDAgEGMA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt +0jSv9zilzqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/3DEI +cbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvDFNr450kkkdAdavph +Oe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6Tk6ezAyNlNzZRZxe7EJQY670XcSx +EtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLH +llpwrN9M +-----END CERTIFICATE----- + +XRamp Global CA Root +==================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCBgjELMAkGA1UE +BhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2Vj +dXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDQxMTAxMTcxNDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMx +HjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkg +U2VydmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS638eMpSe2OAtp87ZOqCwu +IR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCPKZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMx +foArtYzAQDsRhtDLooY2YKTVMIJt2W7QDxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FE +zG+gSqmUsE3a56k0enI4qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqs +AxcZZPRaJSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNViPvry +xS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASsjVy16bYbMDYGA1UdHwQvMC0wK6Ap +oCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMC +AQEwDQYJKoZIhvcNAQEFBQADggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc +/Kh4ZzXxHfARvbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLaIR9NmXmd4c8n +nxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSyi6mx5O+aGtA9aZnuqCij4Tyz +8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQO+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +Go Daddy Class 2 CA +=================== +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMY +VGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkG +A1UEBhMCVVMxITAfBgNVBAoTGFRoZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28g +RGFkZHkgQ2xhc3MgMiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQAD +ggENADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCAPVYYYwhv +2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6wwdhFJ2+qN1j3hybX2C32 +qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXiEqITLdiOr18SPaAIBQi2XKVlOARFmR6j +YGB0xUGlcmIbYsUfb18aQr4CUWWoriMYavx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmY +vLEHZ6IVDd2gWMZEewo+YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0O +BBYEFNLEsNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h/t2o +atTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMu +MTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwG +A1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wim +PQoZ+YeAEW5p5JYXMP80kWNyOO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKt +I3lpjbi2Tc7PTMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mERdEr/VxqHD3VI +Ls9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5CufReYNnyicsbkqWletNw+vHX/b +vZ8= +-----END CERTIFICATE----- + +Starfield Class 2 CA +==================== +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzElMCMGA1UEChMc +U3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZpZWxkIENsYXNzIDIg +Q2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQwNjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBo +MQswCQYDVQQGEwJVUzElMCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAG +A1UECxMpU3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqG +SIb3DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf8MOh2tTY +bitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN+lq2cwQlZut3f+dZxkqZ +JRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVm +epsZGD3/cVE8MC5fvj13c7JdBmzDI1aaK4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSN +F4Azbl5KXZnJHoe0nRrA1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HF +MIHCMB0GA1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fRzt0f +hvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNo +bm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBDbGFzcyAyIENlcnRpZmljYXRpb24g +QXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGs +afPzWdqbAYcaT1epoXkJKtv3L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLM +PUxA2IGvd56Deruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynpVSJYACPq4xJD +KVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEYWQPJIrSPnNVeKtelttQKbfi3 +QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +Taiwan GRCA +=========== +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/MQswCQYDVQQG +EwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4X +DTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1owPzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dv +dmVybm1lbnQgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qN +w8XRIePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1qgQdW8or5 +BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKyyhwOeYHWtXBiCAEuTk8O +1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAtsF/tnyMKtsc2AtJfcdgEWFelq16TheEfO +htX7MfP6Mb40qij7cEwdScevLJ1tZqa2jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wov +J5pGfaENda1UhhXcSTvxls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7 +Q3hub/FCVGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHKYS1t +B6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoHEgKXTiCQ8P8NHuJB +O9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThNXo+EHWbNxWCWtFJaBYmOlXqYwZE8 +lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1UdDgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNV +HRMEBTADAQH/MDkGBGcqBwAEMTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg2 +09yewDL7MTqKUWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ +TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyfqzvS/3WXy6Tj +Zwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaKZEk9GhiHkASfQlK3T8v+R0F2 +Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFEJPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlU +D7gsL0u8qV1bYH+Mh6XgUmMqvtg7hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6Qz +DxARvBMB1uUO07+1EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+Hbk +Z6MmnD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WXudpVBrkk +7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44VbnzssQwmSNOXfJIoRIM3BKQ +CZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDeLMDDav7v3Aun+kbfYNucpllQdSNpc5Oy ++fwC00fmcc4QAu4njIT/rEUNE1yDMuAlpYYsfPQS +-----END CERTIFICATE----- + +DigiCert Assured ID Root CA +=========================== +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzEx +MTEwMDAwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0Ew +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7cJpSIqvTO +9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYPmDI2dsze3Tyoou9q+yHy +UmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW +/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpy +oeb6pNnVFzF1roV9Iq4/AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whf +GHdPAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRF +66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYunpyGd823IDzANBgkq +hkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRCdWKuh+vy1dneVrOfzM4UKLkNl2Bc +EkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTffwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38Fn +SbNd67IJKusm7Xi+fT8r87cmNW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i +8b5QZ7dsvfPxH2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +DigiCert Global Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBDQTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAw +MDAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsBCSDMAZOn +TjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97nh6Vfe63SKMI2tavegw5 +BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt43C/dxC//AH2hdmoRBBYMql1GNXRor5H +4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7PT19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y +7vrTC0LUq7dBMtoM1O/4gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQAB +o2MwYTAOBgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbRTLtm +8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUwDQYJKoZIhvcNAQEF +BQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/EsrhMAtudXH/vTBH1jLuG2cenTnmCmr +EbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIt +tep3Sp+dWOIrWcBAI+0tKIJFPnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886 +UAb3LujEV0lsYSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +DigiCert High Assurance EV Root CA +================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBsMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSsw +KQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5jZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAw +MFoXDTMxMTExMDAwMDAwMFowbDELMAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZ +MBcGA1UECxMQd3d3LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFu +Y2UgRVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm+9S75S0t +Mqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTWPNt0OKRKzE0lgvdKpVMS +OO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEMxChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3 +MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFBIk5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQ +NAQTXKFx01p8VdteZOE3hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUe +h10aUAsgEsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQFMAMB +Af8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaAFLE+w2kD+L9HAdSY +JhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3NecnzyIZgYIVyHbIUf4KmeqvxgydkAQ +V8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6zeM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFp +myPInngiK3BD41VHMWEZ71jFhS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkK +mNEVX58Svnw2Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep+OkuE6N36B9K +-----END CERTIFICATE----- + +DST Root CA X3 +============== +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/MSQwIgYDVQQK +ExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMTDkRTVCBSb290IENBIFgzMB4X +DTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVowPzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1 +cmUgVHJ1c3QgQ28uMRcwFQYDVQQDEw5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmT +rE4Orz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEqOLl5CjH9 +UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9bxiqKqy69cK3FCxolkHRy +xXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40d +utolucbY38EVAjqr2m7xPi71XAicPNaDaeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQ +MA0GCSqGSIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69ikug +dB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXrAvHRAosZy5Q6XkjE +GB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZzR8srzJmwN0jP41ZL9c8PDHIyh8bw +RLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubS +fZGL+T0yjWW06XyxV3bqxbYoOb8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- + +SwissSign Gold CA - G2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +SwissSign Silver CA - G2 +======================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority +======================================== +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMoR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjExMjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgx +CzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQ +cmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9AWbK7hWN +b6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjAZIVcFU2Ix7e64HXprQU9 +nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE07e9GceBrAqg1cmuXm2bgyxx5X9gaBGge +RwLmnWDiNpcB3841kt++Z8dtd1k7j53WkBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGt +tm/81w7a4DSwDRp35+MImO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJKoZI +hvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ16CePbJC/kRYkRj5K +Ts4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl4b7UVXGYNTq+k+qurUKykG/g/CFN +NWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6KoKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHa +Floxt/m0cYASSJlyc1pZU8FjUjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG +1riR/aYNKxoUAT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +thawte Primary Root CA +====================== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCBqTELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3 +MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwg +SW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMv +KGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNVBAMT +FnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCs +oPD7gFnUnMekz52hWXMJEEUMDSxuaPFsW0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ +1CRfBsDMRJSUjQJib+ta3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGc +q/gcfomk6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6Sk/K +aAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94JNqR32HuHUETVPm4p +afs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XPr87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUF +AAOCAQEAeRHAS7ORtvzw6WfUDW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeE +uzLlQRHAd9mzYJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2/qxAeeWsEG89 +jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/LHbTY5xZ3Y+m4Q6gLkH3LpVH +z7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7jVaMaA== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G5 +============================================================ +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCByjELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2ln +biBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2lnbiwgSW5jLiAtIEZvciBh +dXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmlt +YXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAw +ggEKAoIBAQCvJAgIKXo1nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKz +j/i5Vbext0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIzSdhD +Y2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQGBO+QueQA5N06tRn/ +Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+rCpSx4/VBEnkjWNHiDxpg8v+R70r +fk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/ +BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2Uv +Z2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKvMzEzMA0GCSqG +SIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzEp6B4Eq1iDkVwZMXnl2YtmAl+ +X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKE +KQsTb47bDN0lAtukixlE0kF6BWlKWE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiC +Km0oHw0LxOXnGiYZ4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vE +ZV8NhnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +SecureTrust CA +============== +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBIMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xFzAVBgNVBAMTDlNlY3VyZVRy +dXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIzMTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAe +BgNVBAoTF1NlY3VyZVRydXN0IENvcnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQX +OZEzZum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO0gMdA+9t +DWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIaowW8xQmxSPmjL8xk037uH +GFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b +01k/unK8RCSc43Oz969XL0Imnal0ugBS8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmH +ursCAwEAAaOBnTCBmjATBgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCegJYYj +aHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt36Z3q059c4EVlew3KW+JwULKUBRSu +SceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHf +mbx8IVQr5Fiiu1cprp6poxkmD5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZ +nMUFdAvnZyPSCPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +Secure Global CA +================ +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBKMQswCQYDVQQG +EwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBH +bG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkxMjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEg +MB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwg +Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jx +YDiJiQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa/FHtaMbQ +bqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJjnIFHovdRIWCQtBJwB1g +8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnIHmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYV +HDGA76oYa8J719rO+TMg1fW9ajMtgQT7sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi +0XPnj3pDAgMBAAGjgZ0wgZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1Ud +EwEB/wQFMAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCswKaAn +oCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsGAQQBgjcVAQQDAgEA +MA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0LURYD7xh8yOOvaliTFGCRsoTciE6+ +OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXOH0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cn +CDpOGR86p1hcF895P4vkp9MmI50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/5 +3CYNv6ZHdAbYiNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +COMODO Certification Authority +============================== +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCBgTELMAkGA1UE +BhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgG +A1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNVBAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1 +dGhvcml0eTAeFw0wNjEyMDEwMDAwMDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEb +MBkGA1UECBMSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFD +T01PRE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3UcEbVASY06m/weaKXTuH ++7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI2GqGd0S7WWaXUF601CxwRM/aN5VCaTww +xHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV +4EajcNxo2f8ESIl33rXp+2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA +1KGzqSX+DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5OnKVI +rLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW/zAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6gPKA6hjhodHRwOi8vY3JsLmNvbW9k +b2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOC +AQEAPpiem/Yb6dc5t3iuHXIYSdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CP +OGEIqB6BCsAvIC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4zJVSk/BwJVmc +IGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5ddBA6+C4OmF4O5MBKgxTMVBbkN ++8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IBZQ== +-----END CERTIFICATE----- + +Network Solutions Certificate Authority +======================================= +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBiMQswCQYDVQQG +EwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydOZXR3b3Jr +IFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMx +MjM1OTU5WjBiMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwzc7MEL7xx +jOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPPOCwGJgl6cvf6UDL4wpPT +aaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rlmGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXT +crA/vGp97Eh/jcOrqnErU2lBUzS1sLnFBgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc +/Qzpf14Dl847ABSHJ3A4qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMB +AAGjgZcwgZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwubmV0c29sc3NsLmNv +bS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3JpdHkuY3JsMA0GCSqGSIb3DQEBBQUA +A4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc86fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q +4LqILPxFzBiwmZVRDuwduIj/h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/ +GGUsyfJj4akH/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHNpGxlaKFJdlxD +ydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +COMODO ECC Certification Authority +================================== +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTELMAkGA1UEBhMC +R0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UE +ChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwHhcNMDgwMzA2MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0Ix +GzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRo +b3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSRFtSrYpn1PlILBs5BAH+X +4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0JcfRK9ChQtP6IHG4/bC8vCVlbpVsLM5ni +wz2J+Wos77LTBumjQjBAMB0GA1UdDgQWBBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8E +BAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VG +FAkK+qDmfQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdvGDeA +U/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GA CA +=============================== +-----BEGIN CERTIFICATE----- +MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCBijELMAkGA1UE +BhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHlyaWdodCAoYykgMjAwNTEiMCAG +A1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBH +bG9iYWwgUm9vdCBHQSBDQTAeFw0wNTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYD +VQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIw +IAYDVQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5 +IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAy0+zAJs9 +Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxRVVuuk+g3/ytr6dTqvirdqFEr12bDYVxg +Asj1znJ7O7jyTmUIms2kahnBAbtzptf2w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbD +d50kc3vkDIzh2TbhmYsFmQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ +/yxViJGg4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t94B3R +LoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQwEAYJKwYBBAGCNxUBBAMCAQAwDQYJ +KoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOxSPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vIm +MMkQyh2I+3QZH4VFvbBsUfk2ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4 ++vg1YFkCExh8vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa +hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZiFj4A4xylNoEY +okxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ/L7fCg0= +-----END CERTIFICATE----- + +Certigna +======== +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNVBAYTAkZSMRIw +EAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4XDTA3MDYyOTE1MTMwNVoXDTI3 +MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwI +Q2VydGlnbmEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7q +XOEm7RFHYeGifBZ4QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyH +GxnygQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbwzBfsV1/p +ogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q130yGLMLLGq/jj8UEYkg +DncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKf +Irjxwo1p3Po6WAbfAgMBAAGjgbwwgbkwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQ +tCRZvgHyUtVF9lo53BEwZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJ +BgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzjAQ/J +SP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG9w0BAQUFAAOCAQEA +hQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8hbV6lUmPOEvjvKtpv6zf+EwLHyzs+ +ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFncfca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1klu +PBS1xp81HlDQwY9qcEQCYsuuHWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY +1gkIl2PlwS6wt0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +Cybertrust Global Root +====================== +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYGA1UEChMPQ3li +ZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBSb290MB4XDTA2MTIxNTA4 +MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQD +ExZDeWJlcnRydXN0IEdsb2JhbCBSb290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA ++Mi8vRRQZhP/8NN57CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW +0ozSJ8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2yHLtgwEZL +AfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iPt3sMpTjr3kfb1V05/Iin +89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNzFtApD0mpSPCzqrdsxacwOUBdrsTiXSZT +8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAYXSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2 +MDSgMqAwhi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3JsMB8G +A1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUAA4IBAQBW7wojoFRO +lZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMjWqd8BfP9IjsO0QbE2zZMcwSO5bAi +5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUxXOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2 +hO0j9n0Hq0V+09+zv+mKts2oomcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+T +X3EJIrduPuocA06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- + +ePKI Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBeMQswCQYDVQQG +EwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0ZC4xKjAoBgNVBAsMIWVQS0kg +Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMx +MjdaMF4xCzAJBgNVBAYTAlRXMSMwIQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEq +MCgGA1UECwwhZVBLSSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAHSyZbCUNs +IZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAhijHyl3SJCRImHJ7K2RKi +lTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3XDZoTM1PRYfl61dd4s5oz9wCGzh1NlDiv +qOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX +12ruOzjjK9SXDrkb5wdJfzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0O +WQqraffAsgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uUWH1+ +ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLSnT0IFaUQAS2zMnao +lQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pHdmX2Os+PYhcZewoozRrSgx4hxyy/ +vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJipNiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXi +Zo1jDiVN1Rmy5nk3pyKdVDECAwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/Qkqi +MAwGA1UdEwQFMAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGBuvl2ICO1J2B0 +1GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6YlPwZpVnPDimZI+ymBV3QGypzq +KOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkPJXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdV +xrsStZf0X4OFunHB2WyBEXYKCrC/gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEP +NXubrjlpC2JgQCA2j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+r +GNm65ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUBo2M3IUxE +xJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS/jQ6fbjpKdx2qcgw+BRx +gMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2zGp1iro2C6pSe3VkQw63d4k3jMdXH7Ojy +sP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTEW9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmOD +BCEIZ43ygknQW/2xzQ+DhNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +certSIGN ROOT CA +================ +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYTAlJPMREwDwYD +VQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTAeFw0wNjA3MDQxNzIwMDRa +Fw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UE +CxMQY2VydFNJR04gUk9PVCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7I +JUqOtdu0KBuqV5Do0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHH +rfAQUySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5dRdY4zTW2 +ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQOA7+j0xbm0bqQfWwCHTD +0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwvJoIQ4uNllAoEwF73XVv4EOLQunpL+943 +AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8B +Af8EBAMCAcYwHQYDVR0OBBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IB +AQA+0hyJLjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecYMnQ8 +SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ44gx+FkagQnIl6Z0 +x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6IJd1hJyMctTEHBDa0GpC9oHRxUIlt +vBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNwi/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7Nz +TogVZ96edhBiIL5VaZVDADlN9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G3 +============================================= +-----BEGIN CERTIFICATE----- +MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UE +BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA4IEdlb1RydXN0 +IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFy +eSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIz +NTk1OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAo +YykgMjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMT +LUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMzCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz+uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5j +K/BGvESyiaHAKAxJcCGVn2TAppMSAmUmhsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdE +c5IiaacDiGydY8hS2pgn5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3C +IShwiP/WJmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exALDmKu +dlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZChuOl1UcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMR5yo6hTgMdHNxr +2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IBAQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9 +cr5HqQ6XErhK8WTTOd8lNNTBzU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbE +Ap7aDHdlDkQNkv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD +AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUHSJsMC8tJP33s +t/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2Gspki4cErx5z481+oghLrGREt +-----END CERTIFICATE----- + +thawte Primary Root CA - G2 +=========================== +-----BEGIN CERTIFICATE----- +MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDELMAkGA1UEBhMC +VVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMpIDIwMDcgdGhhd3RlLCBJbmMu +IC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3Qg +Q0EgLSBHMjAeFw0wNzExMDUwMDAwMDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEV +MBMGA1UEChMMdGhhd3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBG +b3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAt +IEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/BebfowJPDQfGAFG6DAJS +LSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6papu+7qzcMBniKI11KOasf2twu8x+qi5 +8/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU +mtgAMADna3+FGO6Lts6KDPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUN +G4k8VIZ3KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41oxXZ3K +rr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== +-----END CERTIFICATE----- + +thawte Primary Root CA - G3 +=========================== +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCBrjELMAkGA1UE +BhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2 +aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIwMDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhv +cml6ZWQgdXNlIG9ubHkxJDAiBgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0w +ODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh +d3RlLCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9uMTgwNgYD +VQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTEkMCIG +A1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEczMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAsr8nLPvb2FvdeHsbnndmgcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2At +P0LMqmsywCPLLEHd5N/8YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC ++BsUa0Lfb1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS99irY +7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2SzhkGcuYMXDhpxwTW +vGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUkOQIDAQABo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJ +KoZIhvcNAQELBQADggEBABpA2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweK +A3rD6z8KLFIWoCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu +t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7cKUGRIjxpp7sC +8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fMm7v/OeZWYdMKp8RcTGB7BXcm +er/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZuMdRAGmI0Nj81Aa6sY6A= +-----END CERTIFICATE----- + +GeoTrust Primary Certification Authority - G2 +============================================= +-----BEGIN CERTIFICATE----- +MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChjKSAyMDA3IEdlb1RydXN0IElu +Yy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1 +OVowgZgxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg +MjAwNyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNVBAMTLUdl +b1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBHMjB2MBAGByqGSM49AgEG +BSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcLSo17VDs6bl8VAsBQps8lL33KSLjHUGMc +KiEIfJo22Av+0SbFWDEwKCXzXV2juLaltJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+ +EVXVMAoGCCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGTqQ7m +ndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBuczrD6ogRLQy7rQkgu2 +npaqBA+K +-----END CERTIFICATE----- + +VeriSign Universal Root Certification Authority +=============================================== +-----BEGIN CERTIFICATE----- +MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCBvTELMAkGA1UE +BhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBO +ZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVk +IHVzZSBvbmx5MTgwNgYDVQQDEy9WZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9u +IEF1dGhvcml0eTAeFw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJV +UzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0IE5ldHdv +cmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNhbCBSb290IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj +1mCOkdeQmIN65lgZOIzF9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGP +MiJhgsWHH26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+HLL72 +9fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN/BMReYTtXlT2NJ8I +AfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPTrJ9VAMf2CGqUuV/c4DPxhGD5WycR +tPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0G +CCsGAQUFBwEMBGEwX6FdoFswWTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2O +a8PPgGrUSBgsexkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud +DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4sAPmLGd75JR3 +Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+seQxIcaBlVZaDrHC1LGmWazx +Y8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTx +P/jgdFcrGJ2BtMQo2pSXpXDrrB2+BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+P +wGZsY6rp2aQW9IHRlRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4 +mJO37M2CYfE45k+XmCpajQ== +-----END CERTIFICATE----- + +VeriSign Class 3 Public Primary Certification Authority - G4 +============================================================ +-----BEGIN CERTIFICATE----- +MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjELMAkGA1UEBhMC +VVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBUcnVzdCBOZXR3 +b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVz +ZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJpU2lnbiBU +cnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwgSW5jLiAtIEZvciBhdXRo +b3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5 +IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8 +Utpkmw4tXNherJI9/gHmGUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGz +rl0Bp3vefLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEw +HzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVyaXNpZ24u +Y29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMWkf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMD +A2gAMGUCMGYhDBgmYFo4e1ZC4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIx +AJw9SDkjOVgaFRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== +-----END CERTIFICATE----- + +NetLock Arany (Class Gold) FÅ‘tanúsítvány +======================================== +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQGEwJIVTERMA8G +A1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3MDUGA1UECwwuVGFuw7pzw610 +dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBB +cmFueSAoQ2xhc3MgR29sZCkgRsWRdGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgx +MjA2MTUwODIxWjCBpzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxO +ZXRMb2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlmaWNhdGlv +biBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNzIEdvbGQpIEbFkXRhbsO6 +c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxCRec75LbRTDofTjl5Bu +0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrTlF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw +/HpYzY6b7cNGbIRwXdrzAZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAk +H3B5r9s5VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRGILdw +fzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2BJtr+UBdADTHLpl1 +neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAGAQH/AgEEMA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2MU9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwW +qZw8UQCgwBEIBaeZ5m8BiFRhbvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTta +YtOUZcTh5m2C+C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2FuLjbvrW5Kfna +NwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2XjG4Kvte9nHfRCaexOYNkbQu +dZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G2 +================================== +-----BEGIN CERTIFICATE----- +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 +66+KAQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 1 +======================= +-----BEGIN CERTIFICATE----- +MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoT +DUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMB4XDTAzMDUx +NTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkGA1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25n +IFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1 +ApzQjVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEnPzlTCeqr +auh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjhZY4bXSNmO7ilMlHIhqqh +qZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9nnV0ttgCXjqQesBCNnLsak3c78QA3xMY +V18meMjWCnl3v/evt3a5pQuEF10Q6m/hq5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNV +HRMBAf8ECDAGAQH/AgEDMA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7i +h9legYsCmEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI37pio +l7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clBoiMBdDhViw+5Lmei +IAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJsEhTkYY2sEJCehFC78JZvRZ+K88ps +T/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpOfMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilT +c4afU9hDDl3WY4JxHYB0yvbiAmvZWg== +-----END CERTIFICATE----- + +SecureSign RootCA11 +=================== +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDErMCkGA1UEChMi +SmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoGA1UEAxMTU2VjdXJlU2lnbiBS +b290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSsw +KQYDVQQKEyJKYXBhbiBDZXJ0aWZpY2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1 +cmVTaWduIFJvb3RDQTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvL +TJszi1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8h9uuywGO +wvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOVMdrAG/LuYpmGYz+/3ZMq +g6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rP +O7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitA +bpSACW22s293bzUIUPsCh8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZX +t94wDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAKCh +OBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xmKbabfSVSSUOrTC4r +bnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQX5Ucv+2rIrVls4W6ng+4reV6G4pQ +Oh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWrQbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01 +y8hSyn+B/tlr0/cR7SXf+Of5pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061 +lgeLKBObjBmNQSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +Microsec e-Szigno Root CA 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYDVQQGEwJIVTER +MA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jv +c2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTAeFw0wOTA2MTYxMTMwMThaFw0yOTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UE +BwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUt +U3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvPkd6mJviZpWNwrZuuyjNA +fW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tccbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG +0IMZfcChEhyVbUr02MelTTMuhTlAdX4UfIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKA +pxn1ntxVUwOXewdI/5n7N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm +1HxdrtbCxkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1+rUC +AwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTLD8bf +QkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAbBgNVHREE +FDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqGSIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0o +lZMEyL/azXm4Q5DwpL7v8u8hmLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfX +I/OMn74dseGkddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c2Pm2G2JwCz02 +yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5tHMN1Rq41Bab2XD0h7lbwyYIi +LXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +GlobalSign Root CA - R3 +======================= +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4GA1UECxMXR2xv +YmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkdsb2Jh +bFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxT +aWduIFJvb3QgQ0EgLSBSMzETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2ln +bjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWt +iHL8RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsTgHeMCOFJ +0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmmKPZpO/bLyCiR5Z2KYVc3 +rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zdQQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjl +OCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZXriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2 +xmmFghcCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FI/wS3+oLkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZURUm7 +lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMpjjM5RcOO5LlXbKr8 +EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK6fBdRoyV3XpYKBovHd7NADdBj+1E +bddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQXmcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18 +YIvDQVETI53O9zJrlAGomecsMx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7r +kpeDMdmztcpHWD9f +-----END CERTIFICATE----- + +Autoridad de Certificacion Firmaprofesional CIF A62634068 +========================================================= +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UEBhMCRVMxQjBA +BgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1hcHJvZmVzaW9uYWwgQ0lGIEE2 +MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEyMzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIw +QAYDVQQDDDlBdXRvcmlkYWQgZGUgQ2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBB +NjI2MzQwNjgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDD +Utd9thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQMcas9UX4P +B99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefGL9ItWY16Ck6WaVICqjaY +7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15iNA9wBj4gGFrO93IbJWyTdBSTo3OxDqqH +ECNZXyAFGUftaI6SEspd/NYrspI8IM/hX68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyI +plD9amML9ZMWGxmPsu2bm8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctX +MbScyJCyZ/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirjaEbsX +LZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/TKI8xWVvTyQKmtFLK +bpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF6NkBiDkal4ZkQdU7hwxu+g/GvUgU +vzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVhOSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1Ud +EwEB/wQIMAYBAf8CAQEwDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNH +DhpkLzCBpgYDVR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp +cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBvACAAZABlACAA +bABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBlAGwAbwBuAGEAIAAwADgAMAAx +ADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx +51tkljYyGOylMnfX40S2wBEqgLk9am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qk +R71kMrv2JYSiJ0L1ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaP +T481PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS3a/DTg4f +Jl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5kSeTy36LssUzAKh3ntLFl +osS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF3dvd6qJ2gHN99ZwExEWN57kci57q13XR +crHedUTnQn3iV2t93Jm8PYMo6oCTjcVMZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoR +saS8I8nkvof/uZS2+F0gStRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTD +KCOM/iczQ0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQBjLMi +6Et8Vcad+qMUu2WFbm5PEn4KPJ2V +-----END CERTIFICATE----- + +Izenpe.com +========== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Chambers of Commerce Root - 2008 +================================ +-----BEGIN CERTIFICATE----- +MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xKTAnBgNVBAMTIENoYW1iZXJzIG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEy +Mjk1MFoXDTM4MDczMTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNl +ZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQF +EwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJl +cnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW928sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKA +XuFixrYp4YFs8r/lfTJqVKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorj +h40G072QDuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR5gN/ +ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfLZEFHcpOrUMPrCXZk +NNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05aSd+pZgvMPMZ4fKecHePOjlO+Bd5g +D2vlGts/4+EhySnB8esHnFIbAURRPHsl18TlUlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331 +lubKgdaX8ZSD6e2wsWsSaR6s+12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ +0wlf2eOKNcx5Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj +ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAxhduub+84Mxh2 +EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNVHQ4EFgQU+SSsD7K1+HnA+mCI +G8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1+HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJ +BgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNh +bWVyZmlybWEuY29tL2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENh +bWVyZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDiC +CQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUH +AgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAJASryI1 +wqM58C7e6bXpeHxIvj99RZJe6dqxGfwWPJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH +3qLPaYRgM+gQDROpI9CF5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbU +RWpGqOt1glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaHFoI6 +M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2pSB7+R5KBWIBpih1 +YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MDxvbxrN8y8NmBGuScvfaAFPDRLLmF +9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QGtjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcK +zBIKinmwPQN/aUv0NCB9szTqjktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvG +nrDQWzilm1DefhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg +OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZd0jQ +-----END CERTIFICATE----- + +Global Chambersign Root - 2008 +============================== +-----BEGIN CERTIFICATE----- +MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYDVQQGEwJFVTFD +MEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNv +bS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMu +QS4xJzAlBgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMx +NDBaFw0zODA3MzExMjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUg +Y3VycmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJ +QTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD +aGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMDf +VtPkOpt2RbQT2//BthmLN0EYlVJH6xedKYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXf +XjaOcNFccUMd2drvXNL7G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0 +ZJJ0YPP2zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4ddPB +/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyGHoiMvvKRhI9lNNgA +TH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2Id3UwD2ln58fQ1DJu7xsepeY7s2M +H/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3VyJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfe +Ox2YItaswTXbo6Al/3K1dh3ebeksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSF +HTynyQbehP9r6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh +wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsogzCtLkykPAgMB +AAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQWBBS5CcqcHtvTbDprru1U8VuT +BjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDprru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UE +BhMCRVUxQzBBBgNVBAcTOk1hZHJpZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJm +aXJtYS5jb20vYWRkcmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJm +aXJtYSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiCCQDJzdPp +1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCowKAYIKwYBBQUHAgEWHGh0 +dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZIhvcNAQEFBQADggIBAICIf3DekijZBZRG +/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZUohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6 +ReAJ3spED8IXDneRRXozX1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/s +dZ7LoR/xfxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVza2Mg +9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yydYhz2rXzdpjEetrHH +foUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMdSqlapskD7+3056huirRXhOukP9Du +qqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9OAP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETr +P3iZ8ntxPjzxmKfFGBI/5rsoM0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVq +c5iJWzouE4gev8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z +09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B +-----END CERTIFICATE----- + +Go Daddy Root Certificate Authority - G2 +======================================== +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoTEUdvRGFkZHkuY29tLCBJbmMu +MTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8G +A1UEAxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKDE6bFIEMBO4Tx5oVJnyfq +9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD ++qK+ihVqf94Lw7YZFAXK6sOoBJQ7RnwyDfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutd +fMh8+7ArU6SSYmlRJQVhGkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMl +NAJWJwGRtDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFDqahQcQZyi27/a9 +BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmXWWcDYfF+OwYxdS2hII5PZYe096ac +vNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r +5N9ss4UXnT3ZJE95kTXWXwTrgIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYV +N8Gb5DKj7Tjo2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI4uJEvlz36hz1 +-----END CERTIFICATE----- + +Starfield Root Certificate Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVsZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0 +eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAw +DgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQg +VGVjaG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZpY2F0ZSBB +dXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL3twQP89o/8ArFv +W59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMgnLRJdzIpVv257IzdIvpy3Cdhl+72WoTs +bhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNk +N3mSwOxGXn/hbVNMYq/NHwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7Nf +ZTD4p7dNdloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0HZbU +JtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0GCSqGSIb3DQEBCwUAA4IBAQARWfol +TwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjUsHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx +4mcujJUDJi5DnUox9g61DLu34jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUw +F5okxBDgBPfg8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1mMpYjn0q7pBZ +c2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +Starfield Services Root Certificate Authority - G2 +================================================== +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMxEDAOBgNVBAgT +B0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoTHFN0YXJmaWVsZCBUZWNobm9s +b2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVsZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRl +IEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxT +dGFyZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2VydmljZXMg +Um9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCC +AQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20pOsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2 +h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm28xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4Pa +hHQUw2eeBGg6345AWh1KTs9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLP +LJGmpufehRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk6mFB +rMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+qAdcwKziIorhtSpzyEZGDMA0GCSqG +SIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMIbw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPP +E95Dz+I0swSdHynVv/heyNXBve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTy +xQGjhdByPq1zqwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn0q23KXB56jza +YyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCNsSi6 +-----END CERTIFICATE----- + +AffirmTrust Commercial +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMB4XDTEw +MDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6Eqdb +DuKPHx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yrba0F8PrV +C8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPALMeIrJmqbTFeurCA+ukV6 +BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1yHp52UKqK39c/s4mT6NmgTWvRLpUHhww +MmWd5jyTXlBOeuM61G7MGvv50jeuJCqrVwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNV +HQ4EFgQUnZPGU4teyq8/nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYGXUPG +hi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNjvbz4YYCanrHOQnDi +qX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivtZ8SOyUOyXGsViQK8YvxO8rUzqrJv +0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9gN53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0kh +sUlHRUe072o0EclNmsxZt9YCnlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +AffirmTrust Networking +====================== +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMB4XDTEw +MDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmly +bVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SE +Hi3yYJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbuakCNrmreI +dIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRLQESxG9fhwoXA3hA/Pe24 +/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gb +h+0t+nvujArjqWaJGctB+d1ENmHP4ndGyH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNV +HQ4EFgQUBx/S55zawm6iQLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfOtDIu +UFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzuQY0x2+c06lkh1QF6 +12S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZLgo/bNjR9eUJtGxUAArgFU2HdW23 +WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4uolu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9 +/ZFvgrG+CJPbFEfxojfHRZ48x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +AffirmTrust Premium +=================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UEBhMCVVMxFDAS +BgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMB4XDTEwMDEy +OTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRy +dXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxBLfqV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtn +BKAQJG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ+jjeRFcV +5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrSs8PhaJyJ+HoAVt70VZVs ++7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmd +GPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d770O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5R +p9EixAqnOEhss/n/fauGV+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NI +S+LI+H+SqHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S5u04 +6uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4IaC1nEWTJ3s7xgaVY5 +/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TXOwF0lkLgAOIua+rF7nKsu7/+6qqo ++Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYEFJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByv +MiPIs0laUZx2KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B8OWycvpEgjNC +6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQMKSOyARiqcTtNd56l+0OOF6S +L5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK ++4w1IX2COPKpVJEZNZOUbWo6xbLQu4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmV +BtWVyuEklut89pMFu+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFg +IxpHYoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8GKa1qF60 +g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaORtGdFNrHF+QFlozEJLUb +zxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6eKeC2uAloGRwYQw== +-----END CERTIFICATE----- + +AffirmTrust Premium ECC +======================= +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMCVVMxFDASBgNV +BAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQcmVtaXVtIEVDQzAeFw0xMDAx +MjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJBgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1U +cnVzdDEgMB4GA1UEAwwXQWZmaXJtVHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQA +IgNiAAQNMF4bFZ0D0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQ +N8O9ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0GA1UdDgQW +BBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAK +BggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/VsaobgxCd05DhT1wV/GzTjxi+zygk8N53X +57hG8f2h4nECMEJZh0PUUd+60wkyWs6Iflc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKM +eQ== +-----END CERTIFICATE----- + +Certum Trusted Network CA +========================= +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBMMSIwIAYDVQQK +ExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5DZXJ0dW0gQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBUcnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIy +MTIwNzM3WhcNMjkxMjMxMTIwNzM3WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBU +ZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MSIwIAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0BAQEFAAOC +AQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rHUV+rpDKmYYe2bg+G0jAC +l/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LMTXPb865Px1bVWqeWifrzq2jUI4ZZJ88J +J7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVUBBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4 +fOQtf/WsX+sWn7Et0brMkUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0 +cvW0QM8xAcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNVHRMB +Af8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNVHQ8BAf8EBAMCAQYw +DQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15ysHhE49wcrwn9I0j6vSrEuVUEtRCj +jSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfLI9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1 +mS1FhIrlQgnXdAIv94nYmem8J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5aj +Zt3hrvJBW8qYVoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +TWCA Root Certification Authority +================================= +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJ +VEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMzWhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQG +EwJUVzESMBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NB +IFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFEAcK0HMMx +QhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HHK3XLfJ+utdGdIzdjp9xC +oi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeXRfwZVzsrb+RH9JlF/h3x+JejiB03HFyP +4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/zrX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1r +y+UPizgN7gr8/g+YnzAx3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkqhkiG +9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeCMErJk/9q56YAf4lC +mtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdlsXebQ79NqZp4VKIV66IIArB6nCWlW +QtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62Dlhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVY +T0bf+215WfKEIlKuD8z7fDvnaspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocny +Yh0igzyXxfkZYiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +Security Communication RootCA2 +============================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc +U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMeU2VjdXJpdHkgQ29tbXVuaWNh +dGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoXDTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMC +SlAxJTAjBgNVBAoTHFNFQ09NIFRydXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3Vy +aXR5IENvbW11bmljYXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANAVOVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGrzbl+dp++ ++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVMVAX3NuRFg3sUZdbcDE3R +3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQhNBqyjoGADdH5H5XTz+L62e4iKrFvlNV +spHEfbmwhRkGeC7bYRr6hfVKkaHnFtWOojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1K +EOtOghY6rCcMU/Gt1SSwawNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8 +QIH4D5csOPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEB +CwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpFcoJxDjrSzG+ntKEj +u/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXcokgfGT+Ok+vx+hfuzU7jBBJV1uXk +3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6q +tnRGEmyR7jTV7JqR50S+kDFy1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29 +mvVXIwAHIRc/SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +EC-ACC +====== +-----BEGIN CERTIFICATE----- +MIIFVjCCBD6gAwIBAgIQ7is969Qh3hSoYqwE893EATANBgkqhkiG9w0BAQUFADCB8zELMAkGA1UE +BhMCRVMxOzA5BgNVBAoTMkFnZW5jaWEgQ2F0YWxhbmEgZGUgQ2VydGlmaWNhY2lvIChOSUYgUS0w +ODAxMTc2LUkpMSgwJgYDVQQLEx9TZXJ2ZWlzIFB1YmxpY3MgZGUgQ2VydGlmaWNhY2lvMTUwMwYD +VQQLEyxWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5ldC92ZXJhcnJlbCAoYykwMzE1MDMGA1UE +CxMsSmVyYXJxdWlhIEVudGl0YXRzIGRlIENlcnRpZmljYWNpbyBDYXRhbGFuZXMxDzANBgNVBAMT +BkVDLUFDQzAeFw0wMzAxMDcyMzAwMDBaFw0zMTAxMDcyMjU5NTlaMIHzMQswCQYDVQQGEwJFUzE7 +MDkGA1UEChMyQWdlbmNpYSBDYXRhbGFuYSBkZSBDZXJ0aWZpY2FjaW8gKE5JRiBRLTA4MDExNzYt +SSkxKDAmBgNVBAsTH1NlcnZlaXMgUHVibGljcyBkZSBDZXJ0aWZpY2FjaW8xNTAzBgNVBAsTLFZl +Z2V1IGh0dHBzOi8vd3d3LmNhdGNlcnQubmV0L3ZlcmFycmVsIChjKTAzMTUwMwYDVQQLEyxKZXJh +cnF1aWEgRW50aXRhdHMgZGUgQ2VydGlmaWNhY2lvIENhdGFsYW5lczEPMA0GA1UEAxMGRUMtQUND +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsyLHT+KXQpWIR4NA9h0X84NzJB5R85iK +w5K4/0CQBXCHYMkAqbWUZRkiFRfCQ2xmRJoNBD45b6VLeqpjt4pEndljkYRm4CgPukLjbo73FCeT +ae6RDqNfDrHrZqJyTxIThmV6PttPB/SnCWDaOkKZx7J/sxaVHMf5NLWUhdWZXqBIoH7nF2W4onW4 +HvPlQn2v7fOKSGRdghST2MDk/7NQcvJ29rNdQlB50JQ+awwAvthrDk4q7D7SzIKiGGUzE3eeml0a +E9jD2z3Il3rucO2n5nzbcc8tlGLfbdb1OL4/pYUKGbio2Al1QnDE6u/LDsg0qBIimAy4E5S2S+zw +0JDnJwIDAQABo4HjMIHgMB0GA1UdEQQWMBSBEmVjX2FjY0BjYXRjZXJ0Lm5ldDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUoMOLRKo3pUW/l4Ba0fF4opvpXY0wfwYD +VR0gBHgwdjB0BgsrBgEEAfV4AQMBCjBlMCwGCCsGAQUFBwIBFiBodHRwczovL3d3dy5jYXRjZXJ0 +Lm5ldC92ZXJhcnJlbDA1BggrBgEFBQcCAjApGidWZWdldSBodHRwczovL3d3dy5jYXRjZXJ0Lm5l +dC92ZXJhcnJlbCAwDQYJKoZIhvcNAQEFBQADggEBAKBIW4IB9k1IuDlVNZyAelOZ1Vr/sXE7zDkJ +lF7W2u++AVtd0x7Y/X1PzaBB4DSTv8vihpw3kpBWHNzrKQXlxJ7HNd+KDM3FIUPpqojlNcAZQmNa +Al6kSBg6hW/cnbw/nZzBh7h6YQjpdwt/cKt63dmXLGQehb+8dJahw3oS7AwaboMMPOhyRp/7SNVe +l+axofjk70YllJyJ22k4vuxcDlbHZVHlUIiIv0LVKz3l+bqeLrPK9HOSAgu+TGbrIP65y7WZf+a2 +E/rKS03Z7lNGBjvGTq2TWoF+bCpLagVFjPIhpDGQh2xlnJ2lYJU6Un/10asIbvPuW/mIPX64b24D +5EI= +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2011 +======================================================= +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1IxRDBCBgNVBAoT +O0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9y +aXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IFJvb3RDQSAyMDExMB4XDTExMTIwNjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYT +AkdSMUQwQgYDVQQKEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25z +IENlcnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNo +IEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPzdYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI +1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJfel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa +71HFK9+WXesyHgLacEnsbgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u +8yBRQlqD75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSPFEDH +3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNVHRMBAf8EBTADAQH/ +MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp5dgTBCPuQSUwRwYDVR0eBEAwPqA8 +MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQub3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQu +b3JnMA0GCSqGSIb3DQEBBQUAA4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVt +XdMiKahsog2p6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 +TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7dIsXRSZMFpGD +/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8AcysNnq/onN694/BtZqhFLKPM58N +7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXIl7WdmplNsDz4SgCbZN2fOUvRJ9e4 +-----END CERTIFICATE----- + +Actalis Authentication Root CA +============================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +Trustis FPS Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQG +EwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQLExNUcnVzdGlzIEZQUyBSb290 +IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTExMzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNV +BAoTD1RydXN0aXMgTGltaXRlZDEcMBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQ +RUN+AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihHiTHcDnlk +H5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjjvSkCqPoc4Vu5g6hBSLwa +cY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zt +o3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlBOrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEA +AaNTMFEwDwYDVR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAd +BgNVHQ4EFgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01GX2c +GE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmWzaD+vkAMXBJV+JOC +yinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP41BIy+Q7DsdwyhEQsb8tGD+pmQQ9P +8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZEf1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHV +l/9D7S3B2l0pKoU/rGXuhg8FjZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYl +iB6XzCGcKQENZetX2fNXlrtIzYE= +-----END CERTIFICATE----- + +Buypass Class 2 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMiBSb290IENBMB4X +DTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1owTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1 +g1Lr6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPVL4O2fuPn +9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC911K2GScuVr1QGbNgGE41b +/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHxMlAQTn/0hpPshNOOvEu/XAFOBz3cFIqU +CqTqc/sLUegTBxj6DvEr0VQVfTzh97QZQmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeff +awrbD02TTqigzXsu8lkBarcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgI +zRFo1clrUs3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLiFRhn +Bkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRSP/TizPJhk9H9Z2vX +Uq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN9SG9dKpN6nIDSdvHXx1iY8f93ZHs +M+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxPAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFMmAd+BikoL1RpzzuvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAU18h9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3tOluwlN5E40EI +osHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo+fsicdl9sz1Gv7SEr5AcD48S +aq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYd +DnkM/crqJIByw5c/8nerQyIKx+u2DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWD +LfJ6v9r9jv6ly0UsH8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0 +oyLQI+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK75t98biGC +wWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h3PFaTWwyI0PurKju7koS +CTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPzY11aWOIv4x3kqdbQCtCev9eBCfHJxyYN +rJgWVqA= +-----END CERTIFICATE----- + +Buypass Class 3 Root CA +======================= +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEdMBsGA1UECgwU +QnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3MgQ2xhc3MgMyBSb290IENBMB4X +DTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFowTjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1 +eXBhc3MgQVMtOTgzMTYzMzI3MSAwHgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIw +DQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRH +sJ8YZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3EN3coTRiR +5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9tznDDgFHmV0ST9tD+leh +7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX0DJq1l1sDPGzbjniazEuOQAnFN44wOwZ +ZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH +2xc519woe2v1n/MuwU8XKhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV +/afmiSTYzIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvSO1UQ +RwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D34xFMFbG02SrZvPA +Xpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgPK9Dx2hzLabjKSWJtyNBjYt1gD1iq +j6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYD +VR0OBBYEFEe4zf/lb+74suwvTg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsF +AAOCAgEAACAjQTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXSIGrs/CIBKM+G +uIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2HJLw5QY33KbmkJs4j1xrG0aG +Q0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsaO5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8 +ZORK15FTAaggiG6cX0S5y2CBNOxv033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2 +KSb12tjE8nVhz36udmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz +6MkEkbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg413OEMXbug +UZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvDu79leNKGef9JOxqDDPDe +eOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq4/g7u9xN12TyUb7mqqta6THuBrxzvxNi +Cp/HuZc= +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 3 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgx +MDAxMTAyOTU2WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN8ELg63iIVl6bmlQdTQyK +9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/RLyTPWGrTs0NvvAgJ1gORH8EGoel15YU +NpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZF +iP0Zf3WHHx+xGwpzJFu5ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W +0eDrXltMEnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1A/d2O2GCahKqGFPr +AyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOyWL6ukK2YJ5f+AbGwUgC4TeQbIXQb +fsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzT +ucpH9sry9uetuUg/vBa3wW306gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7h +P0HHRwA11fXT91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4pTpPDpFQUWw== +-----END CERTIFICATE----- + +EE Certification Centre Root CA +=============================== +-----BEGIN CERTIFICATE----- +MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1MQswCQYDVQQG +EwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1czEoMCYGA1UEAwwfRUUgQ2Vy +dGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYGCSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIw +MTAxMDMwMTAxMDMwWhgPMjAzMDEyMTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlB +UyBTZXJ0aWZpdHNlZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRy +ZSBSb290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEBAQUAA4IB +DwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUyeuuOF0+W2Ap7kaJjbMeM +TC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvObntl8jixwKIy72KyaOBhU8E2lf/slLo2 +rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIwWFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw +93X2PaRka9ZP585ArQ/dMtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtN +P2MbRMNE1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYDVR0T +AQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/zQas8fElyalL1BSZ +MEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYBBQUHAwMGCCsGAQUFBwMEBggrBgEF +BQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEFBQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+Rj +xY6hUFaTlrg4wCQiZrxTFGGVv9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqM +lIpPnTX/dqQGE5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u +uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIWiAYLtqZLICjU +3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/vGVCJYMzpJJUPwssd8m92kMfM +dcGWxZ0= +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 2009 +============================== +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTAe +Fw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NThaME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxE +LVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOAD +ER03UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42tSHKXzlA +BF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9RySPocq60vFYJfxLLHLGv +KZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsMlFqVlNpQmvH/pStmMaTJOKDfHR+4CS7z +p+hnUquVH+BGPtikw8paxTGA6Eian5Rp/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUC +AwEAAaOCARowggEWMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ +4PGEMA4GA1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVjdG9y +eS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUyMENBJTIwMiUyMDIw +MDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRlcmV2b2NhdGlvbmxpc3QwQ6BBoD+G +PWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAw +OS5jcmwwDQYJKoZIhvcNAQELBQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm +2H6NMLVwMeniacfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4KzCUqNQT4YJEV +dT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8PIWmawomDeCTmGCufsYkl4ph +X5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3YJohw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +D-TRUST Root Class 3 CA 2 EV 2009 +================================= +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUwNDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQK +DAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAw +OTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfS +egpnljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM03TP1YtHh +zRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6ZqQTMFexgaDbtCHu39b+T +7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lRp75mpoo6Kr3HGrHhFPC+Oh25z1uxav60 +sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure35 +11H3a6UCAwEAAaOCASQwggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyv +cop9NteaHNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFwOi8v +ZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xhc3MlMjAzJTIwQ0El +MjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1ERT9jZXJ0aWZpY2F0ZXJldm9jYXRp +b25saXN0MEagRKBChkBodHRwOi8vd3d3LmQtdHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xh +c3NfM19jYV8yX2V2XzIwMDkuY3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+ +PPoeUSbrh/Yp3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNFCSuGdXzfX2lX +ANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7naxpeG0ILD5EJt/rDiZE4OJudA +NCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqXKVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVv +w9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +CA Disig Root R2 +================ +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNVBAYTAlNLMRMw +EQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMuMRkwFwYDVQQDExBDQSBEaXNp +ZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQyMDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sx +EzARBgNVBAcTCkJyYXRpc2xhdmExEzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERp +c2lnIFJvb3QgUjIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbC +w3OeNcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNHPWSb6Wia +xswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3Ix2ymrdMxp7zo5eFm1tL7 +A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbeQTg06ov80egEFGEtQX6sx3dOy1FU+16S +GBsEWmjGycT6txOgmLcRK7fWV8x8nhfRyyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqV +g8NTEQxzHQuyRpDRQjrOQG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa +5Beny912H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJQfYE +koopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUDi/ZnWejBBhG93c+A +Ak9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORsnLMOPReisjQS1n6yqEm70XooQL6i +Fh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5u +Qu0wDQYJKoZIhvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqfGopTpti72TVV +sRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkblvdhuDvEK7Z4bLQjb/D907Je +dR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka+elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W8 +1k/BfDxujRNt+3vrMNDcTa/F1balTFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjx +mHHEt38OFdAlab0inSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01 +utI3gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18DrG5gPcFw0 +sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3OszMOl6W8KjptlwlCFtaOg +UxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8xL4ysEr3vQCj8KWefshNPZiTEUxnpHikV +7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +ACCVRAIZ1 +========= +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UEAwwJQUNDVlJB +SVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQswCQYDVQQGEwJFUzAeFw0xMTA1 +MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQBgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwH +UEtJQUNDVjENMAsGA1UECgwEQUNDVjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQCbqau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gM +jmoYHtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWoG2ioPej0 +RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpAlHPrzg5XPAOBOp0KoVdD +aaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhrIA8wKFSVf+DuzgpmndFALW4ir50awQUZ +0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDG +WuzndN9wrqODJerWx5eHk6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs7 +8yM2x/474KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMOm3WR +5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpacXpkatcnYGMN285J +9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPluUsXQA+xtrn13k/c4LOsOxFwYIRK +Q26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYIKwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRw +Oi8vd3d3LmFjY3YuZXMvZmlsZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEu +Y3J0MB8GCCsGAQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeTVfZW6oHlNsyM +Hj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIGCCsGAQUFBwICMIIBFB6CARAA +QQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUAcgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBh +AO0AegAgAGQAZQAgAGwAYQAgAEEAQwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUA +YwBuAG8AbABvAGcA7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBj +AHQAcgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAAQwBQAFMA +IABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUAczAwBggrBgEFBQcCARYk +aHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2MuaHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0 +dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRtaW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2 +MV9kZXIuY3JsMA4GA1UdDwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZI +hvcNAQEFBQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdpD70E +R9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gUJyCpZET/LtZ1qmxN +YEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+mAM/EKXMRNt6GGT6d7hmKG9Ww7Y49 +nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepDvV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJ +TS+xJlsndQAJxGJ3KQhfnlmstn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3 +sCPdK6jT2iWH7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szAh1xA2syVP1Xg +Nce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xFd3+YJ5oyXSrjhO7FmGYvliAd +3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2HpPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3p +EfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +TWCA Global Root CA +=================== +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcxEjAQBgNVBAoT +CVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMTVFdDQSBHbG9iYWwgUm9vdCBD +QTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQK +EwlUQUlXQU4tQ0ExEDAOBgNVBAsTB1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3Qg +Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2C +nJfF10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz0ALfUPZV +r2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfChMBwqoJimFb3u/Rk28OKR +Q4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbHzIh1HrtsBv+baz4X7GGqcXzGHaL3SekV +tTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1W +KKD+u4ZqyPpcC1jcxkt2yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99 +sy2sbZCilaLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYPoA/p +yJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQABDzfuBSO6N+pjWxn +kjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcEqYSjMq+u7msXi7Kx/mzhkIyIqJdI +zshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6g +cFGn90xHNcgL1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WFH6vPNOw/KP4M +8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNoRI2T9GRwoD2dKAXDOXC4Ynsg +/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlg +lPx4mI88k1HtQJAH32RjJMtOcQWh15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryP +A9gK8kxkRr05YuWW6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3m +i4TWnsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5jwa19hAM8 +EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWzaGHQRiapIVJpLesux+t3 +zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmyKwbQBM0= +-----END CERTIFICATE----- + +TeliaSonera Root CA v1 +====================== +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAwNzEUMBIGA1UE +CgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJvb3QgQ0EgdjEwHhcNMDcxMDE4 +MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYDVQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwW +VGVsaWFTb25lcmEgUm9vdCBDQSB2MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+ +6yfwIaPzaSZVfp3FVRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA +3GV17CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+XZ75Ljo1k +B1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+/jXh7VB7qTCNGdMJjmhn +Xb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxH +oLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkmdtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3 +F0fUTPHSiXk+TT2YqGHeOh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJ +oWjiUIMusDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4pgd7 +gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fsslESl1MpWtTwEhDc +TwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQarMCpgKIv7NHfirZ1fpoeDVNAgMB +AAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qW +DNXr+nuqF+gTEjANBgkqhkiG9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNm +zqjMDfz1mgbldxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1TjTQpgcmLNkQfW +pb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBedY2gea+zDTYa4EzAvXUYNR0PV +G6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpc +c41teyWRyu5FrgZLAMzTsVlQ2jqIOylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOT +JsjrDNYmiLbAJM+7vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2 +qReWt88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcnHL/EVlP6 +Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVxSK236thZiNSQvxaz2ems +WWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +E-Tugra Certification Authority +=============================== +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNVBAYTAlRSMQ8w +DQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamls +ZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN +ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMw +NTEyMDk0OFoXDTIzMDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmEx +QDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxl +cmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQD +DB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEA4vU/kwVRHoViVF56C/UYB4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vd +hQd2h8y/L5VMzH2nPbxHD5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5K +CKpbknSFQ9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEoq1+g +ElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3Dk14opz8n8Y4e0ypQ +BaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcHfC425lAcP9tDJMW/hkd5s3kc91r0 +E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsutdEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gz +rt48Ue7LE3wBf4QOXVGUnhMMti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAq +jqFGOjGY5RH8zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn +rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUXU8u3Zg5mTPj5 +dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6Jyr+zE7S6E5UMA8GA1UdEwEB +/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEG +MA0GCSqGSIb3DQEBCwUAA4ICAQAFNzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAK +kEh47U6YA5n+KGCRHTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jO +XKqYGwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c77NCR807 +VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3+GbHeJAAFS6LrVE1Uweo +a2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WKvJUawSg5TB9D0pH0clmKuVb8P7Sd2nCc +dlqMQ1DujjByTd//SffGqWfZbawCEeI6FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEV +KV0jq9BgoRJP3vQXzTLlyb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gT +Dx4JnW2PAJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpDy4Q0 +8ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8dNL/+I5c30jn6PQ0G +C7TbO6Orb1wdtn7os4I07QZcJA== +-----END CERTIFICATE----- + +T-TeleSec GlobalRoot Class 2 +============================ +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoM +IlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBU +cnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgx +MDAxMTA0MDE0WhcNMzMxMDAxMjM1OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lz +dGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBD +ZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUdAqSzm1nzHoqvNK38DcLZ +SBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiCFoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/F +vudocP05l03Sx5iRUKrERLMjfTlH6VJi1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx970 +2cu+fjOlbpSD8DT6IavqjnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGV +WOHAD3bZwI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/WSA2AHmgoCJrjNXy +YdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhyNsZt+U2e+iKo4YFWz827n+qrkRk4 +r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPACuvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNf +vNoBYimipidx5joifsFvHZVwIEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR +3p1m0IvVVGb6g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlPBSeOE6Fuwg== +-----END CERTIFICATE----- + +Atos TrustedRoot 2011 +===================== +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UEAwwVQXRvcyBU +cnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQGEwJERTAeFw0xMTA3MDcxNDU4 +MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMMFUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsG +A1UECgwEQXRvczELMAkGA1UEBhMCREUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCV +hTuXbyo7LjvPpvMpNb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr +54rMVD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+SZFhyBH+ +DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ4J7sVaE3IqKHBAUsR320 +HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0Lcp2AMBYHlT8oDv3FdU9T1nSatCQujgKR +z3bFmx5VdJx4IbHwLfELn8LVlhgf8FQieowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7R +l+lwrrw7GWzbITAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZ +bNshMBgGA1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEB +CwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8jvZfza1zv7v1Apt+h +k6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kPDpFrdRbhIfzYJsdHt6bPWHJxfrrh +TZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pcmaHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a9 +61qn8FYiqTxlVMYVqL2Gns2Dlmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G +3mB/ufNPRJLvKrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +QuoVadis Root CA 1 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakE +PBtVwedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWerNrwU8lm +PNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF34168Xfuw6cwI2H44g4hWf6 +Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh4Pw5qlPafX7PGglTvF0FBM+hSo+LdoIN +ofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXpUhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/l +g6AnhF4EwfWQvTA9xO+oabw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV +7qJZjqlc3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/GKubX +9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSthfbZxbGL0eUQMk1f +iyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KOTk0k+17kBL5yG6YnLUlamXrXXAkg +t3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOtzCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZI +hvcNAQELBQADggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2cDMT/uFPpiN3 +GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUNqXsCHKnQO18LwIE6PWThv6ct +Tr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP ++V04ikkwj+3x6xn0dxoxGE1nVGwvb2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh +3jRJjehZrJ3ydlo28hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fa +wx/kNSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNjZgKAvQU6 +O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhpq1467HxpvMc7hU6eFbm0 +FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFtnh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOV +hMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +QuoVadis Root CA 2 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFh +ZiFfqq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMWn4rjyduY +NM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ymc5GQYaYDFCDy54ejiK2t +oIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+O7q414AB+6XrW7PFXmAqMaCvN+ggOp+o +MiwMzAkd056OXbxMmO7FGmh77FOm6RQ1o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+l +V0POKa2Mq1W/xPtbAd0jIaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZo +L1NesNKqIcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz8eQQ +sSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43ehvNURG3YBZwjgQQvD +6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l7ZizlWNof/k19N+IxWA1ksB8aRxh +lRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALGcC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZI +hvcNAQELBQADggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RCroijQ1h5fq7K +pVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0GaW/ZZGYjeVYg3UQt4XAoeo0L9 +x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4nlv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgz +dWqTHBLmYF5vHX/JHyPLhGGfHoJE+V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6X +U/IyAgkwo1jwDQHVcsaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+Nw +mNtddbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNgKCLjsZWD +zYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeMHVOyToV7BjjHLPj4sHKN +JeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4WSr2Rz0ZiC3oheGe7IUIarFsNMkd7Egr +O3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +QuoVadis Root CA 3 G3 +===================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQELBQAwSDELMAkG +A1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAcBgNVBAMTFVF1b1ZhZGlzIFJv +b3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJN +MRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMg +RzMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286 +IxSR/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNuFoM7pmRL +Mon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXRU7Ox7sWTaYI+FrUoRqHe +6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+cra1AdHkrAj80//ogaX3T7mH1urPnMNA3 +I4ZyYUUpSFlob3emLoG+B01vr87ERRORFHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3U +VDmrJqMz6nWB2i3ND0/kA9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f7 +5li59wzweyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634RylsSqi +Md5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBpVzgeAVuNVejH38DM +dyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0QA4XN8f+MFrXBsj6IbGB/kE+V9/Yt +rQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZI +hvcNAQELBQADggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnIFUBhynLWcKzS +t/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5WvvoxXqA/4Ti2Tk08HS6IT7SdEQ +TXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFgu/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9Du +DcpmvJRPpq3t/O5jrFc/ZSXPsoaP0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGib +Ih6BJpsQBJFxwAYf3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmD +hPbl8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+DhcI00iX +0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HNPlopNLk9hM6xZdRZkZFW +dSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ywaZWWDYWGWVjUTR939+J399roD1B0y2 +PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +DigiCert Assured ID Root G2 +=========================== +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQw +IgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgw +MTE1MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQL +ExB3d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIw +ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSAn61UQbVH +35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4HteccbiJVMWWXvdMX0h5i89vq +bFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9HpEgjAALAcKxHad3A2m67OeYfcgnDmCXRw +VWmvo2ifv922ebPynXApVfSr/5Vh88lAbx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OP +YLfykqGxvYmJHzDNw6YuYjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+Rn +lTGNAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTO +w0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPIQW5pJ6d1Ee88hjZv +0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I0jJmwYrA8y8678Dj1JGG0VDjA9tz +d29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4GnilmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAW +hsI6yLETcDbYz+70CjTVW0z9B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0M +jomZmWzwPDCvON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +DigiCert Assured ID Root G3 +=========================== +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSQwIgYD +VQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBlMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQ +BgcqhkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJfZn4f5dwb +RXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17QRSAPWXYQ1qAk8C3eNvJs +KTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgF +UaFNN6KDec6NHSrkhDAKBggqhkjOPQQDAwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5Fy +YZ5eEJJZVrmDxxDnOOlYJjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy +1vUhZscv6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +DigiCert Global Root G2 +======================= +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBhMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAw +HgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUx +MjAwMDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3 +dy5kaWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkq +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI2/Ou8jqJ +kTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx1x7e/dfgy5SDN67sH0NO +3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQq2EGnI/yuum06ZIya7XzV+hdG82MHauV +BJVJ8zUtluNJbd134/tJS7SsVQepj5WztCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyM +UNGPHgm+F6HmIcr9g+UQvIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQAB +o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV5uNu +5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY1Yl9PMWLSn/pvtsr +F9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4NeF22d+mQrvHRAiGfzZ0JFrabA0U +WTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NGFdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBH +QRFXGU7Aj64GxJUTFy8bJZ918rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/ +iyK5S9kJRaTepLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +DigiCert Global Root G3 +======================= +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSAwHgYD +VQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAw +MDBaMGExCzAJBgNVBAYTAlVTMRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5k +aWdpY2VydC5jb20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0C +AQYFK4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FGfp4tn+6O +YwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPOZ9wj/wMco+I+o0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNp +Yim8S8YwCgYIKoZIzj0EAwMDaAAwZQIxAK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y +3maTD/HMsQmP3Wyr+mt/oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34 +VOKa5Vt8sycX +-----END CERTIFICATE----- + +DigiCert Trusted Root G4 +======================== +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBiMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQuY29tMSEw +HwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1 +MTIwMDAwWjBiMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3yithZwuEp +pz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1Ifxp4VpX6+n6lXFllVcq9o +k3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDVySAdYyktzuxeTsiT+CFhmzTrBcZe7Fsa +vOvJz82sNEBfsXpm7nfISKhmV1efVFiODCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGY +QJB5w3jHtrHEtWoYOAMQjdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6 +MUSaM0C/CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCiEhtm +mnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADMfRyVw4/3IbKyEbe7 +f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QYuKZ3AeEPlAwhHbJUKSWJbOUOUlFH +dL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXKchYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8 +oR7FwI+isX4KJpn15GkvmB0t9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBhjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2SV1EY+CtnJYY +ZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd+SeuMIW59mdNOj6PWTkiU0Tr +yF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWcfFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy +7zBZLq7gcfJW5GqXb5JQbZaNaHqasjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iah +ixTXTBmyUEFxPT9NcCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN +5r5N0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie4u1Ki7wb +/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mIr/OSmbaz5mEP0oUA51Aa +5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tK +G48BtieVU+i2iW1bvGjUI+iLUaJW+fCmgKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP +82Z+ +-----END CERTIFICATE----- + +COMODO RSA Certification Authority +================================== +-----BEGIN CERTIFICATE----- +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 +LaZRfyHBNVOFBkpdn627G190 +-----END CERTIFICATE----- + +USERTrust RSA Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UE +BhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQK +ExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCAEmUXNg7D2wiz +0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2j +Y0K2dvKpOyuR+OJv0OwWIJAJPuLodMkYtJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFn +RghRy4YUVD+8M/5+bJz/Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O ++T23LLb2VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT79uq +/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6c0Plfg6lZrEpfDKE +Y1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmTYo61Zs8liM2EuLE/pDkP2QKe6xJM +lXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97lc6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8 +yexDJtC/QV9AqURE9JnnV4eeUB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+ +eLf8ZxXhyVeEHg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPFUp/L+M+ZBn8b2kMVn54CVVeW +FPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KOVWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ +7l8wXEskEVX/JJpuXior7gtNn3/3ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQ +Eg9zKC7F4iRO/Fjs8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM +8WcRiQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYzeSf7dNXGi +FSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZXHlKYC6SQK5MNyosycdi +yA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9c +J2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRBVXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGw +sAvgnEzDHNb842m1R0aBL6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gx +Q+6IHdfGjjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +USERTrust ECC Certification Authority +===================================== +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwHhcNMTAwMjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMC +VVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqfloI+d61SRvU8Za2EurxtW2 +0eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinngo4N+LZfQYcTxmdwlkWOrfzCjtHDix6Ez +nPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0GA1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNV +HQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBB +HU6+4WMBzzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbWRNZu +9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R4 +=========================== +-----BEGIN CERTIFICATE----- +MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprl +OQcJFspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAwDgYDVR0P +AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61FuOJAf/sKbvu+M8k8o4TV +MAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGXkPoUVy0D7O48027KqGx2vKLeuwIgJ6iF +JzWbVsaj8kfSt24bAgAXqmemFZHe+pTsewv4n4Q= +-----END CERTIFICATE----- + +GlobalSign ECC Root CA - R5 +=========================== +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoXDTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMb +R2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQD +EwpHbG9iYWxTaWduMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6 +SFkc8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8kehOvRnkmS +h5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYIKoZIzj0EAwMDaAAwZQIxAOVpEslu28Yx +uglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7 +yFz9SO8NdCKoCOJuxUnOxwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +Staat der Nederlanden Root CA - G3 +================================== +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +Um9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloXDTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMC +TkwxHjAcBgNVBAoMFVN0YWF0IGRlciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5l +ZGVybGFuZGVuIFJvb3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4y +olQPcPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WWIkYFsO2t +x1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqXxz8ecAgwoNzFs21v0IJy +EavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFyKJLZWyNtZrVtB0LrpjPOktvA9mxjeM3K +Tj215VKb8b475lRgsGYeCasH/lSJEULR9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUur +mkVLoR9BvUhTFXFkC4az5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU5 +1nus6+N86U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7Ngzp +07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHPbMk7ccHViLVlvMDo +FxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXtBznaqB16nzaeErAMZRKQFWDZJkBE +41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTtXUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMB +AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleu +yjWcLhL75LpdINyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD +U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwpLiniyMMB8jPq +KqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8Ipf3YF3qKS9Ysr1YvY2WTxB1 +v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixpgZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA +8KCWAg8zxXHzniN9lLf9OtMJgwYh/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b +8KKaa8MFSu1BYBQw0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0r +mj1AfsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq4BZ+Extq +1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR1VmiiXTTn74eS9fGbbeI +JG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/QFH1T/U67cjF68IeHRaVesd+QnGTbksV +tzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM94B7IWcnMFk= +-----END CERTIFICATE----- + +Staat der Nederlanden EV Root CA +================================ +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJOTDEeMBwGA1UE +CgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFhdCBkZXIgTmVkZXJsYW5kZW4g +RVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0yMjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5M +MR4wHAYDVQQKDBVTdGFhdCBkZXIgTmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRl +cmxhbmRlbiBFViBSb290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkk +SzrSM4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nCUiY4iKTW +O0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3dZ//BYY1jTw+bbRcwJu+r +0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46prfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8 +Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13lpJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gV +XJrm0w912fxBmJc+qiXbj5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr +08C+eKxCKFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS/ZbV +0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0XcgOPvZuM5l5Tnrmd +74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH1vI4gnPah1vlPNOePqc7nvQDs/nx +fRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrPpx9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwa +ivsnuL8wbqg7MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI +eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u2dfOWBfoqSmu +c0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHSv4ilf0X8rLiltTMMgsT7B/Zq +5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTCwPTxGfARKbalGAKb12NMcIxHowNDXLldRqAN +b/9Zjr7dn3LDWyvfjFvO5QxGbJKyCqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tN +f1zuacpzEPuKqf2evTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi +5Dp6Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIaGl6I6lD4 +WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeLeG9QgkRQP2YGiqtDhFZK +DyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGy +eUN51q1veieQA6TqJIc/2b3Z6fJfUEkc7uzXLg== +-----END CERTIFICATE----- + +IdenTrust Commercial Root CA 1 +============================== +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBKMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBS +b290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQwMTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzES +MBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENB +IDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ld +hNlT3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU+ehcCuz/ +mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gpS0l4PJNgiCL8mdo2yMKi +1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1bVoE/c40yiTcdCMbXTMTEl3EASX2MN0C +XZ/g1Ue9tOsbobtJSdifWwLziuQkkORiT0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl +3ZBWzvurpWCdxJ35UrCLvYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzy +NeVJSQjKVsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZKdHzV +WYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHTc+XvvqDtMwt0viAg +xGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hvl7yTmvmcEpB4eoCHFddydJxVdHix +uuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5NiGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZI +hvcNAQELBQADggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwtLRvM7Kqas6pg +ghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93nAbowacYXVKV7cndJZ5t+qnt +ozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3+wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmV +YjzlVYA211QC//G5Xc7UI2/YRYRKW2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUX +feu+h1sXIFRRk0pTAwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/ro +kTLql1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG4iZZRHUe +2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZmUlO+KWA2yUPHGNiiskz +Z2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7R +cGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +IdenTrust Public Sector Root CA 1 +================================= +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBNMQswCQYDVQQG +EwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3Rv +ciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcNMzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJV +UzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBS +b290IENBIDEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTy +P4o7ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGyRBb06tD6 +Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlSbdsHyo+1W/CD80/HLaXI +rcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF/YTLNiCBWS2ab21ISGHKTN9T0a9SvESf +qy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoS +mJxZZoY+rfGwyj4GD3vwEUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFn +ol57plzy9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9VGxyh +LrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ2fjXctscvG29ZV/v +iDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsVWaFHVCkugyhfHMKiq3IXAAaOReyL +4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gDW/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8B +Af8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMw +DQYJKoZIhvcNAQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHVDRDtfULAj+7A +mgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9TaDKQGXSc3z1i9kKlT/YPyNt +GtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8GlwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFt +m6/n6J91eEyrRjuazr8FGF1NFTwWmhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMx +NRF4eKLg6TCMf4DfWN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4 +Mhn5+bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJtshquDDI +ajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhAGaQdp/lLQzfcaFpPz+vC +ZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ +3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +Entrust Root Certification Authority - G2 +========================================= +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMCVVMxFjAUBgNV +BAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVy +bXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ug +b25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIw +HhcNMDkwNzA3MTcyNTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoT +DUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMx +OTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP +/vaCeb9zYQYKpSfYs1/TRU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXz +HHfV1IWNcCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hWwcKU +s/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1U1+cPvQXLOZprE4y +TGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0jaWvYkxN4FisZDQSA/i2jZRjJKRx +AgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ6 +0B7vfec7aVHUbI2fkBJmqzANBgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5Z +iXMRrEPR9RP/jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v1fN2D807iDgi +nWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4RnAuknZoh8/CbCzB428Hch0P+ +vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmHVHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xO +e4pIb4tF9g== +-----END CERTIFICATE----- + +Entrust Root Certification Authority - EC1 +========================================== +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkGA1UEBhMCVVMx +FjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVn +YWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEzMDEGA1UEAxMqRW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRUMxMB4XDTEyMTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYw +FAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2Fs +LXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQg +dXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAt +IEVDMTB2MBAGByqGSM49AgEGBSuBBAAiA2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHy +AsWfoPZb1YsGGYZPUxBtByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef +9eNi1KlHBz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYE +FLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVCR98crlOZF7ZvHH3h +vxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nXhTcGtXsI/esni0qU+eH6p44mCOh8 +kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +CFCA EV ROOT +============ +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJDTjEwMC4GA1UE +CgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNB +IEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkxMjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEw +MC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQD +DAxDRkNBIEVWIFJPT1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnV +BU03sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpLTIpTUnrD +7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5/ZOkVIBMUtRSqy5J35DN +uF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp7hZZLDRJGqgG16iI0gNyejLi6mhNbiyW +ZXvKWfry4t3uMCz7zEasxGPrb382KzRzEpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7 +xzbh72fROdOXW3NiGUgthxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9f +py25IGvPa931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqotaK8K +gWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNgTnYGmE69g60dWIol +hdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfVPKPtl8MeNPo4+QgO48BdK4PRVmrJ +tqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hvcWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAf +BgNVHSMEGDAWgBTj/i39KNALtbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB +/wQEAwIBBjAdBgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObTej/tUxPQ4i9q +ecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdLjOztUmCypAbqTuv0axn96/Ua +4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBSESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sG +E5uPhnEFtC+NiWYzKXZUmhH4J/qyP5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfX +BDrDMlI1Dlb4pd19xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjn +aH9dCi77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN5mydLIhy +PDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe/v5WOaHIz16eGWRGENoX +kbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+ZAAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3C +ekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GB CA +=============================== +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQG +EwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl +ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAw +MzJaFw0zOTEyMDExNTEwMzFaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYD +VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEds +b2JhbCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3HEokKtaX +scriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGxWuR51jIjK+FTzJlFXHtP +rby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk +9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNku7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4o +Qnc/nSMbsrY9gBQHTC5P99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvg +GUpuuy9rM2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZI +hvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrghcViXfa43FK8+5/ea4n32cZiZBKpD +dHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0 +VQreUGdNZtGn//3ZwLWoo4rOZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEui +HZeeevJuQHHfaPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +SZAFIR ROOT CA2 +=============== +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQELBQAwUTELMAkG +A1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6ZW5pb3dhIFMuQS4xGDAWBgNV +BAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkwNzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJ +BgNVBAYTAlBMMSgwJgYDVQQKDB9LcmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYD +VQQDDA9TWkFGSVIgUk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5Q +qEvNQLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT3PSQ1hNK +DJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw3gAeqDRHu5rr/gsUvTaE +2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr63fE9biCloBK0TXC5ztdyO4mTp4CEHCdJ +ckm1/zuVnsHMyAHs6A6KCpbns6aH5db5BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwi +ieDhZNRnvDF5YTy7ykHNXGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0P +AQH/BAQDAgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsFAAOC +AQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw8PRBEew/R40/cof5 +O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOGnXkZ7/e7DDWQw4rtTw/1zBLZpD67 +oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCPoky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul +4+vJhaAlIDf7js4MNIThPIGyd05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6 ++/NNIxuZMzSgLvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +Certum Trusted Network CA 2 +=========================== +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCBgDELMAkGA1UE +BhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMuQS4xJzAlBgNVBAsTHkNlcnR1 +bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIGA1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29y +ayBDQSAyMCIYDzIwMTExMDA2MDgzOTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQ +TDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENB +IDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWADGSdhhuWZGc/IjoedQF9 +7/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+o +CgCXhVqqndwpyeI1B+twTUrWwbNWuKFBOJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40b +Rr5HMNUuctHFY9rnY3lEfktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2p +uTRZCr+ESv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1mo130 +GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02isx7QBlrd9pPPV3WZ +9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOWOZV7bIBaTxNyxtd9KXpEulKkKtVB +Rgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgezTv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pye +hizKV/Ma5ciSixqClnrDvFASadgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vM +BhBgu4M1t15n3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMCAQYwDQYJKoZI +hvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQF/xlhMcQSZDe28cmk4gmb3DW +Al45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTfCVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuA +L55MYIR4PSFk1vtBHxgP58l1cb29XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMo +clm2q8KMZiYcdywmdjWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tM +pkT/WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jbAoJnwTnb +w3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksqP/ujmv5zMnHCnsZy4Ypo +J/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Kob7a6bINDd82Kkhehnlt4Fj1F4jNy3eFm +ypnTycUm/Q1oBEauttmbjL4ZvrHG8hnjXALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLX +is7VmFxWlgPF7ncGNf/P5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7 +zAYspsbiDrW5viSP +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions RootCA 2015 +======================================================= +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcT +BkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0 +aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNl +YXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAx +MTIxWjCBpjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMg +QWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNV +BAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9vdENBIDIw +MTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDC+Kk/G4n8PDwEXT2QNrCROnk8Zlrv +bTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+eh +iGsxr/CL0BgzuNtFajT0AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+ +6PAQZe104S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06CojXd +FPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV9Cz82XBST3i4vTwr +i5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrDgfgXy5I2XdGj2HUb4Ysn6npIQf1F +GQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2 +fu/Z8VFRfS0myGlZYeCsargqNhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9mu +iNX6hME6wGkoLfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVdctA4GGqd83EkVAswDQYJKoZI +hvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0IXtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+ +D1hYc2Ryx+hFjtyp8iY/xnmMsVMIM4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrM +d/K4kPFox/la/vot9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+y +d+2VZ5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/eaj8GsGsVn +82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnhX9izjFk0WaSrT2y7Hxjb +davYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQl033DlZdwJVqwjbDG2jJ9SrcR5q+ss7F +Jej6A7na+RZukYT1HCjI/CbM1xyQVqdfbzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVt +J94Cj8rDtSvK6evIIVM4pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGa +JI7ZjnHKe7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0vm9q +p/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +Hellenic Academic and Research Institutions ECC RootCA 2015 +=========================================================== +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzANBgNVBAcTBkF0 +aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9u +cyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJj +aCBJbnN0aXR1dGlvbnMgRUNDIFJvb3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEw +MzcxMlowgaoxCzAJBgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmlj +IEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUQwQgYD +VQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIEVDQyBSb290 +Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKgQehLgoRc4vgxEZmGZE4JJS+dQS8KrjVP +dJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJajq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoK +Vlp8aQuqgAkkbH7BRqNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0O +BBYEFLQiC4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaeplSTA +GiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7SofTUwJCA3sS61kFyjn +dc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +ISRG Root X1 +============ +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAwTzELMAkGA1UE +BhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2VhcmNoIEdyb3VwMRUwEwYDVQQD +EwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQG +EwJVUzEpMCcGA1UEChMgSW50ZXJuZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMT +DElTUkcgUm9vdCBYMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54r +Vygch77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+0TM8ukj1 +3Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6UA5/TR5d8mUgjU+g4rk8K +b4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sWT8KOEUt+zwvo/7V3LvSye0rgTBIlDHCN +Aymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyHB5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ +4Q7e2RCOFvu396j3x+UCB5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf +1b0SHzUvKBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWnOlFu +hjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTnjh8BCNAw1FtxNrQH +usEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbwqHyGO0aoSCqI3Haadr8faqU9GY/r +OPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CIrU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4G +A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY +9umbbjANBgkqhkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ3BebYhtF8GaV +0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KKNFtY2PwByVS5uCbMiogziUwt +hDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJw +TdwJx4nLCgdNbOhdjsnvzqvHu7UrTkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nx +e5AW0wdeRlN8NwdCjNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZA +JzVcoyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq4RgqsahD +YVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPAmRGunUHBcnWEvgJBQl9n +JEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57demyPxgcYxn/eR44/KJ4EBs+lVDR3veyJ +m+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +AC RAIZ FNMT-RCM +================ +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsxCzAJBgNVBAYT +AkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTAeFw0wODEw +MjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJD +TTEZMBcGA1UECwwQQUMgUkFJWiBGTk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBALpxgHpMhm5/yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcf +qQgfBBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAzWHFctPVr +btQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxFtBDXaEAUwED653cXeuYL +j2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z374jNUUeAlz+taibmSXaXvMiwzn15Cou +08YfxGyqxRxqAQVKL9LFwag0Jl1mpdICIfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mw +WsXmo8RZZUc1g16p6DULmbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnT +tOmlcYF7wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peSMKGJ +47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2ZSysV4999AeU14EC +ll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMetUqIJ5G+GR4of6ygnXYMgrwTJbFaa +i0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FPd9xf3E6Jobd2Sn9R2gzL+HYJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1o +dHRwOi8vd3d3LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1RXxlDPiyN8+s +D8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYMLVN0V2Ue1bLdI4E7pWYjJ2cJ +j+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrT +Qfv6MooqtyuGC2mDOL7Nii4LcK2NJpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW ++YJF1DngoABd15jmfZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7 +Ixjp6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp1txyM/1d +8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B9kiABdcPUXmsEKvU7ANm +5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wokRqEIr9baRRmW1FMdW4R58MD3R++Lj8UG +rp1MYp3/RgT408m2ECVAdf4WqslKYIYvuu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +Amazon Root CA 1 +================ +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAxMB4XDTE1 +MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBALJ4gHHKeNXjca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgH +FzZM9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qwIFAGbHrQ +gLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6VOujw5H5SNz/0egwLX0t +dHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L93FcXmn/6pUCyziKrlA4b9v7LWIbxcce +VOF34GfID5yHI9Y/QCB/IIDEgEw+OyQmjgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3 +DQEBCwUAA4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDIU5PM +CCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUsN+gDS63pYaACbvXy +8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vvo/ufQJVtMVT8QtPHRh8jrdkPSHCa +2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2 +xJNDd2ZhwLnoQdeXeGADbkpyrqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +Amazon Root CA 2 +================ +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwFADA5MQswCQYD +VQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAyMB4XDTE1 +MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpv +bjEZMBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoC +ggIBAK2Wny2cSkxKgXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4 +kHbZW0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg1dKmSYXp +N+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K8nu+NQWpEjTj82R0Yiw9 +AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvd +fLC6HM783k81ds8P+HgfajZRRidhW+mez/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAEx +kv8LV/SasrlX6avvDXbR8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSS +btqDT6ZjmUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz7Mt0 +Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6+XUyo05f7O0oYtlN +c/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI0u1ufm8/0i2BWSlmy5A5lREedCf+ +3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSw +DPBMMPQFWAJI/TPlUq9LhONmUjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oA +A7CXDpO8Wqj2LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kSk5Nrp+gvU5LE +YFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl7uxMMne0nxrpS10gxdr9HIcW +xkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygmbtmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQ +gj9sAq+uEjonljYE1x2igGOpm/HlurR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbW +aQbLU8uz/mtBzUF+fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoV +Yh63n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE76KlXIx3 +KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H9jVlpNMKVv/1F2Rs76gi +JUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT4PsJYGw= +-----END CERTIFICATE----- + +Amazon Root CA 3 +================ +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSAzMB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZB +f8ANm+gBG1bG8lKlui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjr +Zt6jQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSrttvXBp43 +rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkrBqWTrBqYaGFy+uGh0Psc +eGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteMYyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +Amazon Root CA 4 +================ +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5MQswCQYDVQQG +EwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24gUm9vdCBDQSA0MB4XDTE1MDUy +NjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZ +MBcGA1UEAxMQQW1hem9uIFJvb3QgQ0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN +/sGKe0uoe0ZLY7Bi9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri +83BkM6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WBMAoGCCqGSM49BAMDA2gA +MGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlwCkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1 +AE47xDqUEpHJWEadIRNyp4iciuRMStuW1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +LuxTrust Global Root 2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 +============================================= +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIxGDAWBgNVBAcT +D0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxpbXNlbCB2ZSBUZWtub2xvamlr +IEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0wKwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24g +TWVya2V6aSAtIEthbXUgU00xNjA0BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRp +ZmlrYXNpIC0gU3VydW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYD +VQQGEwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXllIEJpbGlt +c2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklUQUsxLTArBgNVBAsTJEth +bXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBTTTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11 +IFNNIFNTTCBLb2sgU2VydGlmaWthc2kgLSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAr3UwM6q7a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y8 +6Ij5iySrLqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INrN3wc +wv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2XYacQuFWQfw4tJzh0 +3+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/iSIzL+aFCr2lqBs23tPcLG07xxO9 +WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4fAJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQU +ZT/HiobGPN08VFw1+DrtUgxHV8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJ +KoZIhvcNAQELBQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPfIPP54+M638yc +lNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4lzwDGrpDxpa5RXI4s6ehlj2R +e37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0j +q5Rm+K37DwhuJi1/FwcJsoz7UMCflo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- + +GDCA TrustAUTH R5 ROOT +====================== +-----BEGIN CERTIFICATE----- +MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UEBhMCQ04xMjAw +BgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8wHQYDVQQD +DBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVow +YjELMAkGA1UEBhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ +IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0B +AQEFAAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJjDp6L3TQs +AlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBjTnnEt1u9ol2x8kECK62p +OqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+uKU49tm7srsHwJ5uu4/Ts765/94Y9cnrr +pftZTqfrlYwiOXnhLQiPzLyRuEH3FMEjqcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ +9Cy5WmYqsBebnh52nUpmMUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQ +xXABZG12ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloPzgsM +R6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3GkL30SgLdTMEZeS1SZ +D2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeCjGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4 +oR24qoAATILnsn8JuLwwoC8N9VKejveSswoAHQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx +9hoh49pwBiFYFIeFd3mqgnkCAwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlR +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg +p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZmDRd9FBUb1Ov9 +H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5COmSdI31R9KrO9b7eGZONn35 +6ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ryL3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd ++PwyvzeG5LuOmCd+uh8W4XAR8gPfJWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQ +HtZa37dG/OaG+svgIHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBD +F8Io2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV09tL7ECQ +8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQXR4EzzffHqhmsYzmIGrv +/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrqT8p+ck0LcIymSLumoRT2+1hEmRSuqguT +aaApJUqlyyvdimYHFngVV3Eb7PVHhPOeMTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== +-----END CERTIFICATE----- + +TrustCor RootCert CA-1 +====================== +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYDVQQGEwJQQTEP +MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig +U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkxHzAdBgNVBAMMFlRydXN0Q29yIFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkx +MjMxMTcyMzE2WjCBpDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFu +YW1hIENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUGA1UECwwe +VHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZUcnVzdENvciBSb290Q2Vy +dCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv463leLCJhJrMxnHQFgKq1mq +jQCj/IDHUHuO1CAmujIS2CNUSSUQIpidRtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4 +pQa81QBeCQryJ3pS/C3Vseq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0 +JEsq1pme9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CVEY4h +gLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorWhnAbJN7+KIor0Gqw +/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/DeOxCbeKyKsZn3MzUOcwHwYDVR0j +BBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwDQYJKoZIhvcNAQELBQADggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5 +mDo4Nvu7Zp5I/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf +ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZyonnMlo2HD6C +qFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djtsL1Ac59v2Z3kf9YKVmgenFK+P +3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdNzl/HHk484IkzlQsPpTLWPFp5LBk= +-----END CERTIFICATE----- + +TrustCor RootCert CA-2 +====================== +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +TrustCor ECA-1 +============== +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYDVQQGEwJQQTEP +MA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEkMCIGA1UECgwbVHJ1c3RDb3Ig +U3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkxFzAVBgNVBAMMDlRydXN0Q29yIEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3Mjgw +N1owgZwxCzAJBgNVBAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5 +MSQwIgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRydXN0Q29y +IENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3IgRUNBLTEwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb3w9U73NjKYKtR8aja+3+XzP4Q1HpGjOR +MRegdMTUpwHmspI+ap3tDvl0mEDTPwOABoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23 +xFUfJ3zSCNV2HykVh0A53ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmc +p0yJF4OuowReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/wZ0+ +fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZFZtS6mFjBAgMBAAGj +YzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAfBgNVHSMEGDAWgBREnkj1zG1I1KBL +f/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsF +AAOCAQEABT41XBVwm8nHc2FvcivUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u +/ukZMjgDfxT2AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F +hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50soIipX1TH0Xs +J5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BIWJZpTdwHjFGTot+fDz2LYLSC +jaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1WitJ/X5g== +-----END CERTIFICATE----- + +SSL.com Root Certification Authority RSA +======================================== +-----BEGIN CERTIFICATE----- +MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UEBhMCVVMxDjAM +BgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24x +MTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYw +MjEyMTczOTM5WhcNNDEwMjEyMTczOTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx +EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NM +LmNvbSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcNAQEBBQAD +ggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2RxFdHaxh3a3by/ZPkPQ/C +Fp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aXqhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8 +P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcCC52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/ge +oeOy3ZExqysdBP+lSgQ36YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkp +k8zruFvh/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrFYD3Z +fBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93EJNyAKoFBbZQ+yODJ +gUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVcUS4cK38acijnALXRdMbX5J+tB5O2 +UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi8 +1xtZPCvM8hnIk2snYxnP/Okm+Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4s +bE6x/c+cCbqiM+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4GA1UdDwEB/wQE +AwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGVcpNxJK1ok1iOMq8bs3AD/CUr +dIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBcHadm47GUBwwyOabqG7B52B2ccETjit3E+ZUf +ijhDPwGFpUenPUayvOUiaPd7nNgsPgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAsl +u1OJD7OAUN5F7kR/q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjq +erQ0cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jra6x+3uxj +MxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90IH37hVZkLId6Tngr75qNJ +vTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/YK9f1JmzJBjSWFupwWRoyeXkLtoh/D1JI +Pb9s2KJELtFOt3JY04kTlf5Eq/jXixtunLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406y +wKBjYZC6VWg3dGq2ktufoYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NI +WuuA8ShYIc2wBlX7Jz9TkHCpBB5XJ7k= +-----END CERTIFICATE----- + +SSL.com Root Certification Authority ECC +======================================== +-----BEGIN CERTIFICATE----- +MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xMTAv +BgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEy +MTgxNDAzWhcNNDEwMjEyMTgxNDAzWjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAO +BgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv +bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuBBAAiA2IA +BEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI7Z4INcgn64mMU1jrYor+ +8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPgCemB+vNH06NjMGEwHQYDVR0OBBYEFILR +hXMw5zUE044CkvvlpNHEIejNMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTT +jgKS++Wk0cQh6M0wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCW +e+0F+S8Tkdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+gA0z +5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority RSA R2 +============================================== +-----BEGIN CERTIFICATE----- +MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNVBAYTAlVTMQ4w +DAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9u +MTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy +MB4XDTE3MDUzMTE4MTQzN1oXDTQyMDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQI +DAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYD +VQQDDC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMIICIjAN +BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvqM0fNTPl9fb69LT3w23jh +hqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssufOePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7w +cXHswxzpY6IXFJ3vG2fThVUCAtZJycxa4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTO +Zw+oz12WGQvE43LrrdF9HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+ +B6KjBSYRaZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcAb9Zh +CBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQGp8hLH94t2S42Oim +9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQVPWKchjgGAGYS5Fl2WlPAApiiECto +RHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMOpgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+Slm +JuwgUHfbSguPvuUCYHBBXtSuUDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48 ++qvWBkofZ6aYMBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV +HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa49QaAJadz20Zp +qJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBWs47LCp1Jjr+kxJG7ZhcFUZh1 +++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nx +Y/hoLVUE0fKNsKTPvDxeH3jnpaAgcLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2G +guDKBAdRUNf/ktUM79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDz +OFSz/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXtll9ldDz7 +CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEmKf7GUmG6sXP/wwyc5Wxq +lD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKKQbNmC1r7fSOl8hqw/96bg5Qu0T/fkreR +rwU7ZcegbLHNYhLDkBvjJc40vG93drEQw/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1 +hlMYegouCRw2n5H9gooiS9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX +9hwJ1C07mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== +-----END CERTIFICATE----- + +SSL.com EV Root Certification Authority ECC +=========================================== +-----BEGIN CERTIFICATE----- +MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMCVVMxDjAMBgNV +BAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9TU0wgQ29ycG9yYXRpb24xNDAy +BgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYw +MjEyMTgxNTIzWhcNNDEwMjEyMTgxNTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMx +EDAOBgNVBAcMB0hvdXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NM +LmNvbSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMAVIbc/R/fALhBYlzccBYy +3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1KthkuWnBaBu2+8KGwytAJKaNjMGEwHQYDVR0O +BBYEFFvKXuXe0oGqzagtZFG22XKbl+ZPMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe +5d7SgarNqC1kUbbZcpuX5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJ +N+vp1RPZytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZgh5Mm +m7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== +-----END CERTIFICATE----- + +GlobalSign Root CA - R6 +======================= +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIORea7A4Mzw4VlSOb/RVEwDQYJKoZIhvcNAQEMBQAwTDEgMB4GA1UECxMX +R2xvYmFsU2lnbiBSb290IENBIC0gUjYxEzARBgNVBAoTCkdsb2JhbFNpZ24xEzARBgNVBAMTCkds +b2JhbFNpZ24wHhcNMTQxMjEwMDAwMDAwWhcNMzQxMjEwMDAwMDAwWjBMMSAwHgYDVQQLExdHbG9i +YWxTaWduIFJvb3QgQ0EgLSBSNjETMBEGA1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFs +U2lnbjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAJUH6HPKZvnsFMp7PPcNCPG0RQss +grRIxutbPK6DuEGSMxSkb3/pKszGsIhrxbaJ0cay/xTOURQh7ErdG1rG1ofuTToVBu1kZguSgMpE +3nOUTvOniX9PeGMIyBJQbUJmL025eShNUhqKGoC3GYEOfsSKvGRMIRxDaNc9PIrFsmbVkJq3MQbF +vuJtMgamHvm566qjuL++gmNQ0PAYid/kD3n16qIfKtJwLnvnvJO7bVPiSHyMEAc4/2ayd2F+4OqM +PKq0pPbzlUoSB239jLKJz9CgYXfIWHSw1CM69106yqLbnQneXUQtkPGBzVeS+n68UARjNN9rkxi+ +azayOeSsJDa38O+2HBNXk7besvjihbdzorg1qkXy4J02oW9UivFyVm4uiMVRQkQVlO6jxTiWm05O +WgtH8wY2SXcwvHE35absIQh1/OZhFj931dmRl4QKbNQCTXTAFO39OfuD8l4UoQSwC+n+7o/hbguy +CLNhZglqsQY6ZZZZwPA1/cnaKI0aEYdwgQqomnUdnjqGBQCe24DWJfncBZ4nWUx2OVvq+aWh2IMP +0f/fMBH5hc8zSPXKbWQULHpYT9NLCEnFlWQaYw55PfWzjMpYrZxCRXluDocZXFSxZba/jJvcE+kN +b7gu3GduyYsRtYQUigAZcIN5kZeR1BonvzceMgfYFGM8KEyvAgMBAAGjYzBhMA4GA1UdDwEB/wQE +AwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSubAWjkxPioufi1xzWx/B/yGdToDAfBgNV +HSMEGDAWgBSubAWjkxPioufi1xzWx/B/yGdToDANBgkqhkiG9w0BAQwFAAOCAgEAgyXt6NH9lVLN +nsAEoJFp5lzQhN7craJP6Ed41mWYqVuoPId8AorRbrcWc+ZfwFSY1XS+wc3iEZGtIxg93eFyRJa0 +lV7Ae46ZeBZDE1ZXs6KzO7V33EByrKPrmzU+sQghoefEQzd5Mr6155wsTLxDKZmOMNOsIeDjHfrY +BzN2VAAiKrlNIC5waNrlU/yDXNOd8v9EDERm8tLjvUYAGm0CuiVdjaExUd1URhxN25mW7xocBFym +Fe944Hn+Xds+qkxV/ZoVqW/hpvvfcDDpw+5CRu3CkwWJ+n1jez/QcYF8AOiYrg54NMMl+68KnyBr +3TsTjxKM4kEaSHpzoHdpx7Zcf4LIHv5YGygrqGytXm3ABdJ7t+uA/iU3/gKbaKxCXcPu9czc8FB1 +0jZpnOZ7BN9uBmm23goJSFmH63sUYHpkqmlD75HHTOwY3WzvUy2MmeFe8nI+z1TIvWfspA9MRf/T +uTAjB0yPEL+GltmZWrSZVxykzLsViVO6LAUP5MSeGbEYNNVMnbrt9x+vJJUEeKgDu+6B5dpffItK +oZB0JaezPkvILFa9x8jvOOJckvB595yEunQtYQEgfn7R8k8HWV+LLUNS60YMlOH1Zkd5d9VUWx+t +JDfLRVpOoERIyNiwmcUVhAn21klJwGW45hpxbqCo8YLoRT5s1gLXCmeDBVrJpBA= +-----END CERTIFICATE----- + +OISTE WISeKey Global Root GC CA +=============================== +-----BEGIN CERTIFICATE----- +MIICaTCCAe+gAwIBAgIQISpWDK7aDKtARb8roi066jAKBggqhkjOPQQDAzBtMQswCQYDVQQGEwJD +SDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNlZDEo +MCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQyBDQTAeFw0xNzA1MDkwOTQ4MzRa +Fw00MjA1MDkwOTU4MzNaMG0xCzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQL +ExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh +bCBSb290IEdDIENBMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAETOlQwMYPchi82PG6s4nieUqjFqdr +VCTbUf/q9Akkwwsin8tqJ4KBDdLArzHkdIJuyiXZjHWd8dvQmqJLIX4Wp2OQ0jnUsYd4XxiWD1Ab +NTcPasbc2RNNpI6QN+a9WzGRo1QwUjAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAd +BgNVHQ4EFgQUSIcUrOPDnpBgOtfKie7TrYy0UGYwEAYJKwYBBAGCNxUBBAMCAQAwCgYIKoZIzj0E +AwMDaAAwZQIwJsdpW9zV57LnyAyMjMPdeYwbY9XJUpROTYJKcx6ygISpJcBMWm1JKWB4E+J+SOtk +AjEA2zQgMgj/mkkCtojeFK9dbJlxjRo/i9fgojaGHAeCOnZT/cKi7e97sIBPWA9LUzm9 +-----END CERTIFICATE----- + +GTS Root R1 +=========== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQbkepxUtHDA3sM9CJuRz04TANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG +EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv +b3QgUjEwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG +A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjEwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2EQKLHuOhd5s73L+UPreVp0A8of2C+X0yBoJx +9vaMf/vo27xqLpeXo4xL+Sv2sfnOhB2x+cWX3u+58qPpvBKJXqeqUqv4IyfLpLGcY9vXmX7wCl7r +aKb0xlpHDU0QM+NOsROjyBhsS+z8CZDfnWQpJSMHobTSPS5g4M/SCYe7zUjwTcLCeoiKu7rPWRnW +r4+wB7CeMfGCwcDfLqZtbBkOtdh+JhpFAz2weaSUKK0PfyblqAj+lug8aJRT7oM6iCsVlgmy4HqM +LnXWnOunVmSPlk9orj2XwoSPwLxAwAtcvfaHszVsrBhQf4TgTM2S0yDpM7xSma8ytSmzJSq0SPly +4cpk9+aCEI3oncKKiPo4Zor8Y/kB+Xj9e1x3+naH+uzfsQ55lVe0vSbv1gHR6xYKu44LtcXFilWr +06zqkUspzBmkMiVOKvFlRNACzqrOSbTqn3yDsEB750Orp2yjj32JgfpMpf/VjsPOS+C12LOORc92 +wO1AK/1TD7Cn1TsNsYqiA94xrcx36m97PtbfkSIS5r762DL8EGMUUXLeXdYWk70paDPvOmbsB4om +3xPXV2V4J95eSRQAogB/mqghtqmxlbCluQ0WEdrHbEg8QOB+DVrNVjzRlwW5y0vtOUucxD/SVRNu +JLDWcfr0wbrM7Rv1/oFB2ACYPTrIrnqYNxgFlQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU5K8rJnEaK0gnhS9SZizv8IkTcT4wDQYJKoZIhvcNAQEM +BQADggIBADiWCu49tJYeX++dnAsznyvgyv3SjgofQXSlfKqE1OXyHuY3UjKcC9FhHb8owbZEKTV1 +d5iyfNm9dKyKaOOpMQkpAWBz40d8U6iQSifvS9efk+eCNs6aaAyC58/UEBZvXw6ZXPYfcX3v73sv +fuo21pdwCxXu11xWajOl40k4DLh9+42FpLFZXvRq4d2h9mREruZRgyFmxhE+885H7pwoHyXa/6xm +ld01D1zvICxi/ZG6qcz8WpyTgYMpl0p8WnK0OdC3d8t5/Wk6kjftbjhlRn7pYL15iJdfOBL07q9b +gsiG1eGZbYwE8na6SfZu6W0eX6DvJ4J2QPim01hcDyxC2kLGe4g0x8HYRZvBPsVhHdljUEn2NIVq +4BjFbkerQUIpm/ZgDdIx02OYI5NaAIFItO/Nis3Jz5nu2Z6qNuFoS3FJFDYoOj0dzpqPJeaAcWEr +tXvM+SUWgeExX6GjfhaknBZqlxi9dnKlC54dNuYvoS++cJEPqOba+MSSQGwlfnuzCdyyF62ARPBo +pY+Udf90WuioAnwMCeKpSwughQtiue+hMZL77/ZRBIls6Kl0obsXs7X9SQ98POyDGCBDTtWTurQ0 +sR8WNh8M5mQ5Fkzc4P4dyKliPUDqysU0ArSuiYgzNdwsE3PYJ/HQcu51OyLemGhmW/HGY0dVHLql +CFF1pkgl +-----END CERTIFICATE----- + +GTS Root R2 +=========== +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQbkepxlqz5yDFMJo/aFLybzANBgkqhkiG9w0BAQwFADBHMQswCQYDVQQG +EwJVUzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJv +b3QgUjIwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAG +A1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjIwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDO3v2m++zsFDQ8BwZabFn3GTXd98GdVarTzTuk +k3LvCvptnfbwhYBboUhSnznFt+4orO/LdmgUud+tAWyZH8QiHZ/+cnfgLFuv5AS/T3KgGjSY6Dlo +7JUle3ah5mm5hRm9iYz+re026nO8/4Piy33B0s5Ks40FnotJk9/BW9BuXvAuMC6C/Pq8tBcKSOWI +m8Wba96wyrQD8Nr0kLhlZPdcTK3ofmZemde4wj7I0BOdre7kRXuJVfeKH2JShBKzwkCX44ofR5Gm +dFrS+LFjKBC4swm4VndAoiaYecb+3yXuPuWgf9RhD1FLPD+M2uFwdNjCaKH5wQzpoeJ/u1U8dgbu +ak7MkogwTZq9TwtImoS1mKPV+3PBV2HdKFZ1E66HjucMUQkQdYhMvI35ezzUIkgfKtzra7tEscsz +cTJGr61K8YzodDqs5xoic4DSMPclQsciOzsSrZYuxsN2B6ogtzVJV+mSSeh2FnIxZyuWfoqjx5RW +Ir9qS34BIbIjMt/kmkRtWVtd9QCgHJvGeJeNkP+byKq0rxFROV7Z+2et1VsRnTKaG73Vululycsl +aVNVJ1zgyjbLiGH7HrfQy+4W+9OmTN6SpdTi3/UGVN4unUu0kzCqgc7dGtxRcw1PcOnlthYhGXmy +5okLdWTK1au8CcEYof/UVKGFPP0UJAOyh9OktwIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUu//KjiOfT5nK2+JopqUVJxce2Q4wDQYJKoZIhvcNAQEM +BQADggIBALZp8KZ3/p7uC4Gt4cCpx/k1HUCCq+YEtN/L9x0Pg/B+E02NjO7jMyLDOfxA325BS0JT +vhaI8dI4XsRomRyYUpOM52jtG2pzegVATX9lO9ZY8c6DR2Dj/5epnGB3GFW1fgiTz9D2PGcDFWEJ ++YF59exTpJ/JjwGLc8R3dtyDovUMSRqodt6Sm2T4syzFJ9MHwAiApJiS4wGWAqoC7o87xdFtCjMw +c3i5T1QWvwsHoaRc5svJXISPD+AVdyx+Jn7axEvbpxZ3B7DNdehyQtaVhJ2Gg/LkkM0JR9SLA3Da +WsYDQvTtN6LwG1BUSw7YhN4ZKJmBR64JGz9I0cNv4rBgF/XuIwKl2gBbbZCr7qLpGzvpx0QnRY5r +n/WkhLx3+WuXrD5RRaIRpsyF7gpo8j5QOHokYh4XIDdtak23CZvJ/KRY9bb7nE4Yu5UC56Gtmwfu +Nmsk0jmGwZODUNKBRqhfYlcsu2xkiAhu7xNUX90txGdj08+JN7+dIPT7eoOboB6BAFDC5AwiWVIQ +7UNWhwD4FFKnHYuTjKJNRn8nxnGbJN7k2oaLDX5rIMHAnuFl2GqjpuiFizoHCBy69Y9Vmhh1fuXs +gWbRIXOhNUQLgD1bnF5vKheW0YMjiGZt5obicDIvUiLnyOd/xCxgXS/Dr55FBcOEArf9LAhST4Ld +o/DUhgkC +-----END CERTIFICATE----- + +GTS Root R3 +=========== +-----BEGIN CERTIFICATE----- +MIICDDCCAZGgAwIBAgIQbkepx2ypcyRAiQ8DVd2NHTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjMwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjMwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAQfTzOHMymKoYTey8chWEGJ6ladK0uFxh1MJ7x/JlFyb+Kf1qPKzEUU +Rout736GjOyxfi//qXGdGIRFBEFVbivqJn+7kAHjSxm65FSWRQmx1WyRRK2EE46ajA2ADDL24Cej +QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTB8Sa6oC2uhYHP +0/EqEr24Cmf9vDAKBggqhkjOPQQDAwNpADBmAjEAgFukfCPAlaUs3L6JbyO5o91lAFJekazInXJ0 +glMLfalAvWhgxeG4VDvBNhcl2MG9AjEAnjWSdIUlUfUk7GRSJFClH9voy8l27OyCbvWFGFPouOOa +KaqW04MjyaR7YbPMAuhd +-----END CERTIFICATE----- + +GTS Root R4 +=========== +-----BEGIN CERTIFICATE----- +MIICCjCCAZGgAwIBAgIQbkepyIuUtui7OyrYorLBmTAKBggqhkjOPQQDAzBHMQswCQYDVQQGEwJV +UzEiMCAGA1UEChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3Qg +UjQwHhcNMTYwNjIyMDAwMDAwWhcNMzYwNjIyMDAwMDAwWjBHMQswCQYDVQQGEwJVUzEiMCAGA1UE +ChMZR29vZ2xlIFRydXN0IFNlcnZpY2VzIExMQzEUMBIGA1UEAxMLR1RTIFJvb3QgUjQwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAATzdHOnaItgrkO4NcWBMHtLSZ37wWHO5t5GvWvVYRg1rkDdc/eJkTBa +6zzuhXyiQHY7qca4R9gq55KRanPpsXI5nymfopjTX15YhmUPoYRlBtHci8nHc8iMai/lxKvRHYqj +QjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSATNbrdP9JNqPV +2Py1PsVq8JQdjDAKBggqhkjOPQQDAwNnADBkAjBqUFJ0CMRw3J5QdCHojXohw0+WbhXRIjVhLfoI +N+4Zba3bssx9BzT1YBkstTTZbyACMANxsbqjYAuG7ZoIapVon+Kz4ZNkfF6Tpt95LY2F45TPI11x +zPKwTdb+mciUqXWi4w== +-----END CERTIFICATE----- + +UCA Global G2 Root +================== +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIQXd+x2lqj7V2+WmUgZQOQ7zANBgkqhkiG9w0BAQsFADA9MQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxGzAZBgNVBAMMElVDQSBHbG9iYWwgRzIgUm9vdDAeFw0x +NjAzMTEwMDAwMDBaFw00MDEyMzEwMDAwMDBaMD0xCzAJBgNVBAYTAkNOMREwDwYDVQQKDAhVbmlU +cnVzdDEbMBkGA1UEAwwSVUNBIEdsb2JhbCBHMiBSb290MIICIjANBgkqhkiG9w0BAQEFAAOCAg8A +MIICCgKCAgEAxeYrb3zvJgUno4Ek2m/LAfmZmqkywiKHYUGRO8vDaBsGxUypK8FnFyIdK+35KYmT +oni9kmugow2ifsqTs6bRjDXVdfkX9s9FxeV67HeToI8jrg4aA3++1NDtLnurRiNb/yzmVHqUwCoV +8MmNsHo7JOHXaOIxPAYzRrZUEaalLyJUKlgNAQLx+hVRZ2zA+te2G3/RVogvGjqNO7uCEeBHANBS +h6v7hn4PJGtAnTRnvI3HLYZveT6OqTwXS3+wmeOwcWDcC/Vkw85DvG1xudLeJ1uK6NjGruFZfc8o +LTW4lVYa8bJYS7cSN8h8s+1LgOGN+jIjtm+3SJUIsUROhYw6AlQgL9+/V087OpAh18EmNVQg7Mc/ +R+zvWr9LesGtOxdQXGLYD0tK3Cv6brxzks3sx1DoQZbXqX5t2Okdj4q1uViSukqSKwxW/YDrCPBe +KW4bHAyvj5OJrdu9o54hyokZ7N+1wxrrFv54NkzWbtA+FxyQF2smuvt6L78RHBgOLXMDj6DlNaBa +4kx1HXHhOThTeEDMg5PXCp6dW4+K5OXgSORIskfNTip1KnvyIvbJvgmRlld6iIis7nCs+dwp4wwc +OxJORNanTrAmyPPZGpeRaOrvjUYG0lZFWJo8DA+DuAUlwznPO6Q0ibd5Ei9Hxeepl2n8pndntd97 +8XplFeRhVmUCAwEAAaNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFIHEjMz15DD/pQwIX4wVZyF0Ad/fMA0GCSqGSIb3DQEBCwUAA4ICAQATZSL1jiutROTL/7lo +5sOASD0Ee/ojL3rtNtqyzm325p7lX1iPyzcyochltq44PTUbPrw7tgTQvPlJ9Zv3hcU2tsu8+Mg5 +1eRfB70VVJd0ysrtT7q6ZHafgbiERUlMjW+i67HM0cOU2kTC5uLqGOiiHycFutfl1qnN3e92mI0A +Ds0b+gO3joBYDic/UvuUospeZcnWhNq5NXHzJsBPd+aBJ9J3O5oUb3n09tDh05S60FdRvScFDcH9 +yBIw7m+NESsIndTUv4BFFJqIRNow6rSn4+7vW4LVPtateJLbXDzz2K36uGt/xDYotgIVilQsnLAX +c47QN6MUPJiVAAwpBVueSUmxX8fjy88nZY41F7dXyDDZQVu5FLbowg+UMaeUmMxq67XhJ/UQqAHo +jhJi6IjMtX9Gl8CbEGY4GjZGXyJoPd/JxhMnq1MGrKI8hgZlb7F+sSlEmqO6SWkoaY/X5V+tBIZk +bxqgDMUIYs6Ao9Dz7GjevjPHF1t/gMRMTLGmhIrDO7gJzRSBuhjjVFc2/tsvfEehOjPI+Vg7RE+x +ygKJBJYoaMVLuCaJu9YzL1DV/pqJuhgyklTGW+Cd+V7lDSKb9triyCGyYiGqhkCyLmTTX8jjfhFn +RR8F/uOi77Oos/N9j/gMHyIfLXC0uAE0djAA5SN4p1bXUB+K+wb1whnw0A== +-----END CERTIFICATE----- + +UCA Extended Validation Root +============================ +-----BEGIN CERTIFICATE----- +MIIFWjCCA0KgAwIBAgIQT9Irj/VkyDOeTzRYZiNwYDANBgkqhkiG9w0BAQsFADBHMQswCQYDVQQG +EwJDTjERMA8GA1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9u +IFJvb3QwHhcNMTUwMzEzMDAwMDAwWhcNMzgxMjMxMDAwMDAwWjBHMQswCQYDVQQGEwJDTjERMA8G +A1UECgwIVW5pVHJ1c3QxJTAjBgNVBAMMHFVDQSBFeHRlbmRlZCBWYWxpZGF0aW9uIFJvb3QwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCpCQcoEwKwmeBkqh5DFnpzsZGgdT6o+uM4AHrs +iWogD4vFsJszA1qGxliG1cGFu0/GnEBNyr7uaZa4rYEwmnySBesFK5pI0Lh2PpbIILvSsPGP2KxF +Rv+qZ2C0d35qHzwaUnoEPQc8hQ2E0B92CvdqFN9y4zR8V05WAT558aopO2z6+I9tTcg1367r3CTu +eUWnhbYFiN6IXSV8l2RnCdm/WhUFhvMJHuxYMjMR83dksHYf5BA1FxvyDrFspCqjc/wJHx4yGVMR +59mzLC52LqGj3n5qiAno8geK+LLNEOfic0CTuwjRP+H8C5SzJe98ptfRr5//lpr1kXuYC3fUfugH +0mK1lTnj8/FtDw5lhIpjVMWAtuCeS31HJqcBCF3RiJ7XwzJE+oJKCmhUfzhTA8ykADNkUVkLo4KR +el7sFsLzKuZi2irbWWIQJUoqgQtHB0MGcIfS+pMRKXpITeuUx3BNr2fVUbGAIAEBtHoIppB/TuDv +B0GHr2qlXov7z1CymlSvw4m6WC31MJixNnI5fkkE/SmnTHnkBVfblLkWU41Gsx2VYVdWf6/wFlth +WG82UBEL2KwrlRYaDh8IzTY0ZRBiZtWAXxQgXy0MoHgKaNYs1+lvK9JKBZP8nm9rZ/+I8U6laUpS +NwXqxhaN0sSZ0YIrO7o1dfdRUVjzyAfd5LQDfwIDAQABo0IwQDAdBgNVHQ4EFgQU2XQ65DA9DfcS +3H5aBZ8eNJr34RQwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQEL +BQADggIBADaNl8xCFWQpN5smLNb7rhVpLGsaGvdftvkHTFnq88nIua7Mui563MD1sC3AO6+fcAUR +ap8lTwEpcOPlDOHqWnzcSbvBHiqB9RZLcpHIojG5qtr8nR/zXUACE/xOHAbKsxSQVBcZEhrxH9cM +aVr2cXj0lH2RC47skFSOvG+hTKv8dGT9cZr4QQehzZHkPJrgmzI5c6sq1WnIeJEmMX3ixzDx/BR4 +dxIOE/TdFpS/S2d7cFOFyrC78zhNLJA5wA3CXWvp4uXViI3WLL+rG761KIcSF3Ru/H38j9CHJrAb ++7lsq+KePRXBOy5nAliRn+/4Qh8st2j1da3Ptfb/EX3C8CSlrdP6oDyp+l3cpaDvRKS+1ujl5BOW +F3sGPjLtx7dCvHaj2GU4Kzg1USEODm8uNBNA4StnDG1KQTAYI1oyVZnJF+A83vbsea0rWBmirSwi +GpWOvpaQXUJXxPkUAzUrHC1RVwinOt4/5Mi0A3PCwSaAuwtCH60NryZy2sy+s6ODWA2CxR9GUeOc +GMyNm43sSet1UNWMKFnKdDTajAshqx7qG+XH/RU+wBeq+yNuJkbL+vmxcmtpzyKEC2IPrNkZAJSi +djzULZrtBJ4tBmIQN1IchXIbJ+XMxjHsN+xjWZsLHXbMfjKaiJUINlK73nZfdklJrX+9ZSCyycEr +dhh2n1ax +-----END CERTIFICATE----- + +Certigna Root CA +================ +-----BEGIN CERTIFICATE----- +MIIGWzCCBEOgAwIBAgIRAMrpG4nxVQMNo+ZBbcTjpuEwDQYJKoZIhvcNAQELBQAwWjELMAkGA1UE +BhMCRlIxEjAQBgNVBAoMCURoaW15b3RpczEcMBoGA1UECwwTMDAwMiA0ODE0NjMwODEwMDAzNjEZ +MBcGA1UEAwwQQ2VydGlnbmEgUm9vdCBDQTAeFw0xMzEwMDEwODMyMjdaFw0zMzEwMDEwODMyMjda +MFoxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxHDAaBgNVBAsMEzAwMDIgNDgxNDYz +MDgxMDAwMzYxGTAXBgNVBAMMEENlcnRpZ25hIFJvb3QgQ0EwggIiMA0GCSqGSIb3DQEBAQUAA4IC +DwAwggIKAoICAQDNGDllGlmx6mQWDoyUJJV8g9PFOSbcDO8WV43X2KyjQn+Cyu3NW9sOty3tRQgX +stmzy9YXUnIo245Onoq2C/mehJpNdt4iKVzSs9IGPjA5qXSjklYcoW9MCiBtnyN6tMbaLOQdLNyz +KNAT8kxOAkmhVECe5uUFoC2EyP+YbNDrihqECB63aCPuI9Vwzm1RaRDuoXrC0SIxwoKF0vJVdlB8 +JXrJhFwLrN1CTivngqIkicuQstDuI7pmTLtipPlTWmR7fJj6o0ieD5Wupxj0auwuA0Wv8HT4Ks16 +XdG+RCYyKfHx9WzMfgIhC59vpD++nVPiz32pLHxYGpfhPTc3GGYo0kDFUYqMwy3OU4gkWGQwFsWq +4NYKpkDfePb1BHxpE4S80dGnBs8B92jAqFe7OmGtBIyT46388NtEbVncSVmurJqZNjBBe3YzIoej +wpKGbvlw7q6Hh5UbxHq9MfPU0uWZ/75I7HX1eBYdpnDBfzwboZL7z8g81sWTCo/1VTp2lc5ZmIoJ +lXcymoO6LAQ6l73UL77XbJuiyn1tJslV1c/DeVIICZkHJC1kJWumIWmbat10TWuXekG9qxf5kBdI +jzb5LdXF2+6qhUVB+s06RbFo5jZMm5BX7CO5hwjCxAnxl4YqKE3idMDaxIzb3+KhF1nOJFl0Mdp/ +/TBt2dzhauH8XwIDAQABo4IBGjCCARYwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw +HQYDVR0OBBYEFBiHVuBud+4kNTxOc5of1uHieX4rMB8GA1UdIwQYMBaAFBiHVuBud+4kNTxOc5of +1uHieX4rMEQGA1UdIAQ9MDswOQYEVR0gADAxMC8GCCsGAQUFBwIBFiNodHRwczovL3d3d3cuY2Vy +dGlnbmEuZnIvYXV0b3JpdGVzLzBtBgNVHR8EZjBkMC+gLaArhilodHRwOi8vY3JsLmNlcnRpZ25h +LmZyL2NlcnRpZ25hcm9vdGNhLmNybDAxoC+gLYYraHR0cDovL2NybC5kaGlteW90aXMuY29tL2Nl +cnRpZ25hcm9vdGNhLmNybDANBgkqhkiG9w0BAQsFAAOCAgEAlLieT/DjlQgi581oQfccVdV8AOIt +OoldaDgvUSILSo3L6btdPrtcPbEo/uRTVRPPoZAbAh1fZkYJMyjhDSSXcNMQH+pkV5a7XdrnxIxP +TGRGHVyH41neQtGbqH6mid2PHMkwgu07nM3A6RngatgCdTer9zQoKJHyBApPNeNgJgH60BGM+RFq +7q89w1DTj18zeTyGqHNFkIwgtnJzFyO+B2XleJINugHA64wcZr+shncBlA2c5uk5jR+mUYyZDDl3 +4bSb+hxnV29qao6pK0xXeXpXIs/NX2NGjVxZOob4Mkdio2cNGJHc+6Zr9UhhcyNZjgKnvETq9Emd +8VRY+WCv2hikLyhF3HqgiIZd8zvn/yk1gPxkQ5Tm4xxvvq0OKmOZK8l+hfZx6AYDlf7ej0gcWtSS +6Cvu5zHbugRqh5jnxV/vfaci9wHYTfmJ0A6aBVmknpjZbyvKcL5kwlWj9Omvw5Ip3IgWJJk8jSaY +tlu3zM63Nwf9JtmYhST/WSMDmu2dnajkXjjO11INb9I/bbEFa0nOipFGc/T2L/Coc3cOZayhjWZS +aX5LaAzHHjcng6WMxwLkFM1JAbBzs/3GkDpv0mztO+7skb6iQ12LAEpmJURw3kAP+HwV96LOPNde +E4yBFxgX0b3xdxA61GU5wSesVywlVP+i2k+KYTlerj1KjL0= +-----END CERTIFICATE----- + +emSign Root CA - G1 +=================== +-----BEGIN CERTIFICATE----- +MIIDlDCCAnygAwIBAgIKMfXkYgxsWO3W2DANBgkqhkiG9w0BAQsFADBnMQswCQYDVQQGEwJJTjET +MBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRl +ZDEcMBoGA1UEAxMTZW1TaWduIFJvb3QgQ0EgLSBHMTAeFw0xODAyMTgxODMwMDBaFw00MzAyMTgx +ODMwMDBaMGcxCzAJBgNVBAYTAklOMRMwEQYDVQQLEwplbVNpZ24gUEtJMSUwIwYDVQQKExxlTXVk +aHJhIFRlY2hub2xvZ2llcyBMaW1pdGVkMRwwGgYDVQQDExNlbVNpZ24gUm9vdCBDQSAtIEcxMIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAk0u76WaK7p1b1TST0Bsew+eeuGQzf2N4aLTN +LnF115sgxk0pvLZoYIr3IZpWNVrzdr3YzZr/k1ZLpVkGoZM0Kd0WNHVO8oG0x5ZOrRkVUkr+PHB1 +cM2vK6sVmjM8qrOLqs1D/fXqcP/tzxE7lM5OMhbTI0Aqd7OvPAEsbO2ZLIvZTmmYsvePQbAyeGHW +DV/D+qJAkh1cF+ZwPjXnorfCYuKrpDhMtTk1b+oDafo6VGiFbdbyL0NVHpENDtjVaqSW0RM8LHhQ +6DqS0hdW5TUaQBw+jSztOd9C4INBdN+jzcKGYEho42kLVACL5HZpIQ15TjQIXhTCzLG3rdd8cIrH +hQIDAQABo0IwQDAdBgNVHQ4EFgQU++8Nhp6w492pufEhF38+/PB3KxowDgYDVR0PAQH/BAQDAgEG +MA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAFn/8oz1h31xPaOfG1vR2vjTnGs2 +vZupYeveFix0PZ7mddrXuqe8QhfnPZHr5X3dPpzxz5KsbEjMwiI/aTvFthUvozXGaCocV685743Q +NcMYDHsAVhzNixl03r4PEuDQqqE/AjSxcM6dGNYIAwlG7mDgfrbESQRRfXBgvKqy/3lyeqYdPV8q ++Mri/Tm3R7nrft8EI6/6nAYH6ftjk4BAtcZsCjEozgyfz7MjNYBBjWzEN3uBL4ChQEKF6dk4jeih +U80Bv2noWgbyRQuQ+q7hv53yrlc8pa6yVvSLZUDp/TGBLPQ5Cdjua6e0ph0VpZj3AYHYhX3zUVxx +iN66zB+Afko= +-----END CERTIFICATE----- + +emSign ECC Root CA - G3 +======================= +-----BEGIN CERTIFICATE----- +MIICTjCCAdOgAwIBAgIKPPYHqWhwDtqLhDAKBggqhkjOPQQDAzBrMQswCQYDVQQGEwJJTjETMBEG +A1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEg +MB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0gRzMwHhcNMTgwMjE4MTgzMDAwWhcNNDMwMjE4 +MTgzMDAwWjBrMQswCQYDVQQGEwJJTjETMBEGA1UECxMKZW1TaWduIFBLSTElMCMGA1UEChMcZU11 +ZGhyYSBUZWNobm9sb2dpZXMgTGltaXRlZDEgMB4GA1UEAxMXZW1TaWduIEVDQyBSb290IENBIC0g +RzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQjpQy4LRL1KPOxst3iAhKAnjlfSU2fySU0WXTsuwYc +58Byr+iuL+FBVIcUqEqy6HyC5ltqtdyzdc6LBtCGI79G1Y4PPwT01xySfvalY8L1X44uT6EYGQIr +MgqCZH0Wk9GjQjBAMB0GA1UdDgQWBBR8XQKEE9TMipuBzhccLikenEhjQjAOBgNVHQ8BAf8EBAMC +AQYwDwYDVR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNpADBmAjEAvvNhzwIQHWSVB7gYboiFBS+D +CBeQyh+KTOgNG3qxrdWBCUfvO6wIBHxcmbHtRwfSAjEAnbpV/KlK6O3t5nYBQnvI+GDZjVGLVTv7 +jHvrZQnD+JbNR6iC8hZVdyR+EhCVBCyj +-----END CERTIFICATE----- + +emSign Root CA - C1 +=================== +-----BEGIN CERTIFICATE----- +MIIDczCCAlugAwIBAgILAK7PALrEzzL4Q7IwDQYJKoZIhvcNAQELBQAwVjELMAkGA1UEBhMCVVMx +EzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQDExNlbVNp +Z24gUm9vdCBDQSAtIEMxMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowVjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMRwwGgYDVQQD +ExNlbVNpZ24gUm9vdCBDQSAtIEMxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAz+up +ufGZBczYKCFK83M0UYRWEPWgTywS4/oTmifQz/l5GnRfHXk5/Fv4cI7gklL35CX5VIPZHdPIWoU/ +Xse2B+4+wM6ar6xWQio5JXDWv7V7Nq2s9nPczdcdioOl+yuQFTdrHCZH3DspVpNqs8FqOp099cGX +OFgFixwR4+S0uF2FHYP+eF8LRWgYSKVGczQ7/g/IdrvHGPMF0Ybzhe3nudkyrVWIzqa2kbBPrH4V +I5b2P/AgNBbeCsbEBEV5f6f9vtKppa+cxSMq9zwhbL2vj07FOrLzNBL834AaSaTUqZX3noleooms +lMuoaJuvimUnzYnu3Yy1aylwQ6BpC+S5DwIDAQABo0IwQDAdBgNVHQ4EFgQU/qHgcB4qAzlSWkK+ +XJGFehiqTbUwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQAD +ggEBAMJKVvoVIXsoounlHfv4LcQ5lkFMOycsxGwYFYDGrK9HWS8mC+M2sO87/kOXSTKZEhVb3xEp +/6tT+LvBeA+snFOvV71ojD1pM/CjoCNjO2RnIkSt1XHLVip4kqNPEjE2NuLe/gDEo2APJ62gsIq1 +NnpSob0n9CAnYuhNlCQT5AoE6TyrLshDCUrGYQTlSTR+08TI9Q/Aqum6VF7zYytPT1DU/rl7mYw9 +wC68AivTxEDkigcxHpvOJpkT+xHqmiIMERnHXhuBUDDIlhJu58tBf5E7oke3VIAb3ADMmpDqw8NQ +BmIMMMAVSKeoWXzhriKi4gp6D/piq1JM4fHfyr6DDUI= +-----END CERTIFICATE----- + +emSign ECC Root CA - C3 +======================= +-----BEGIN CERTIFICATE----- +MIICKzCCAbGgAwIBAgIKe3G2gla4EnycqDAKBggqhkjOPQQDAzBaMQswCQYDVQQGEwJVUzETMBEG +A1UECxMKZW1TaWduIFBLSTEUMBIGA1UEChMLZU11ZGhyYSBJbmMxIDAeBgNVBAMTF2VtU2lnbiBF +Q0MgUm9vdCBDQSAtIEMzMB4XDTE4MDIxODE4MzAwMFoXDTQzMDIxODE4MzAwMFowWjELMAkGA1UE +BhMCVVMxEzARBgNVBAsTCmVtU2lnbiBQS0kxFDASBgNVBAoTC2VNdWRocmEgSW5jMSAwHgYDVQQD +ExdlbVNpZ24gRUNDIFJvb3QgQ0EgLSBDMzB2MBAGByqGSM49AgEGBSuBBAAiA2IABP2lYa57JhAd +6bciMK4G9IGzsUJxlTm801Ljr6/58pc1kjZGDoeVjbk5Wum739D+yAdBPLtVb4OjavtisIGJAnB9 +SMVK4+kiVCJNk7tCDK93nCOmfddhEc5lx/h//vXyqaNCMEAwHQYDVR0OBBYEFPtaSNCAIEDyqOkA +B2kZd6fmw/TPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MAoGCCqGSM49BAMDA2gA +MGUCMQC02C8Cif22TGK6Q04ThHK1rt0c3ta13FaPWEBaLd4gTCKDypOofu4SQMfWh0/434UCMBwU +ZOR8loMRnLDRWmFLpg9J0wD8ofzkpf9/rdcw0Md3f76BB1UwUCAU9Vc4CqgxUQ== +-----END CERTIFICATE----- + +Hongkong Post Root CA 3 +======================= +-----BEGIN CERTIFICATE----- +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 +dBb9HxEGmpv0 +-----END CERTIFICATE----- diff --git a/doc/conf/unrealircd.hub.conf b/doc/conf/unrealircd.hub.conf new file mode 100644 index 0000000..99a989a --- /dev/null +++ b/doc/conf/unrealircd.hub.conf @@ -0,0 +1,55 @@ +include "links.conf"; +include "modules.conf"; + +admin { "" } + +me { name "irc.supernets.org"; info "SuperNETs IRC Network"; sid 001; } + +class opers { pingfreq 120; maxclients 2; sendq 1M; options { nofakelag; } } +class servers { pingfreq 120; maxclients 10; sendq 1M; connfreq 30; } + +allow { ip 127.0.0.1; class opers; maxperip 2; } + +listen { ip 127.0.0.1; port REDACTED; options { clientsonly; tls; } } # Admin +listen { ip *; port REDACTED; options { serversonly; tls; } } # Links +listen { ip 127.0.0.1; port REDACTED; options { serversonly; } } # Anope + +link services.supernets.org { + incoming { mask 127.0.0.1; port REDACTED; } + password "REDACTED"; + class servers; +} + +log "ircd.log" { flags { errors; } maxsize 1K; } + +except ban { mask *@127.0.0.1; } + +ulines { services.supernets.org; } + +set { + gline-address "banned@supernets.org"; + kline-address "banned@supernets.org"; + modes-on-connect "+ipTx"; + modes-on-oper "+HIq"; + snomask-on-oper "+bcFfkGsSo" + modes-on-join "+ns"; + level-on-join "op"; + static-quit "EMO-QUIT"; + static-part "EMO-PART"; + nick-length 20; + network-name "SuperNETs"; + default-server "irc.supernets.org"; + services-server "services.supernets.org"; + sasl-server "services.supernets.org"; + help-channel "#help"; + channel-command-prefix "`!@$."; + cloak-method ip; + cloak-keys { + "REDACTED"; + "REDACTED"; + "REDACTED"; + } + hiddenhost-prefix "SUPER"; + default-bantime 1d; + manual-ban-target ip; +} \ No newline at end of file diff --git a/doc/conf/unrealircd.link.conf b/doc/conf/unrealircd.link.conf new file mode 100644 index 0000000..2f22ecd --- /dev/null +++ b/doc/conf/unrealircd.link.conf @@ -0,0 +1,7 @@ +include "https://USERNAME:PASSWORD@HOSTNAME:PORT/badwords.conf"; +include "https://USERNAME:PASSWORD@HOSTNAME:PORT/except.conf"; +include "https://USERNAME:PASSWORD@HOSTNAME:PORT/ircd.conf"; +include "https://USERNAME:PASSWORD@HOSTNAME:PORT/modules.conf"; +include "https://USERNAME:PASSWORD@HOSTNAME:PORT/opers.conf"; +include "https://USERNAME:PASSWORD@HOSTNAME:PORT/spamfilter.conf"; +me { name "example.supernets.org"; info "SuperNETS IRC Network"; sid XXX; } \ No newline at end of file diff --git a/doc/conf/unrealircd.remote.conf b/doc/conf/unrealircd.remote.conf new file mode 100644 index 0000000..d51e7fc --- /dev/null +++ b/doc/conf/unrealircd.remote.conf @@ -0,0 +1,185 @@ +admin { ""; } + +alias botserv { type services; } +alias bs { target botserv; type services; } +alias chanserv { type services; } +alias cs { target chanserv; type services; } +alias hostserv { type services; } +alias hs { target hostserv; type services; } +alias nickserv { type services; } +alias ns { target nickserv; type services; } +alias operserv { type services; } +alias os { target operserv; type services; } + +class clients { pingfreq 120; maxclients 100; sendq 1M; options { nofakelag; } } +class servers { pingfreq 120; maxclients 10; sendq 1M; connfreq 30; } + +allow { ip *; class clients; maxperip 2; } + +listen { ip *; port 6667; options { clientsonly; } } +listen { ip *; port 6697; options { clientsonly; tls; } } +listen { ip *; port REDACTED; options { serversonly; tls; } } + +link irc.supernets.org { + incoming { mask REDACTED; } + outgoing { + bind-ip *; + hostname REDACTED; + port REDACTED; + options { tls; autoconnect; } + } + password "REDACTED" { spkifp; } + class servers; +} + +log "errors.log" { flags { errors; } maxsize 10K; } + +tld { mask *@*; motd remote.motd; rules remote.motd; options { remote; } } + +ulines { services.supernets.org; } + +blacklist dronebl { + dns { + name dnsbl.dronebl.org; + type record; + reply { 3; 5; 6; 7; 8; 9; 10; 11; 12; 13; 14; 15; 16; } + } + action gzline; + ban-time 1d; + reason "8,4 E N T E R T H E V O I D "; +} + +blacklist efnetrbl { + dns { + name rbl.efnetrbl.org; + type record; + reply { 1; 4; 5; } + } + action gzline; + ban-time 1d; + reason "8,4 E N T E R T H E V O I D "; +} + +blacklist torbl { + dns { + name torexit.dan.me.uk; + type record; + reply { 100; } + } + action gzline; + ban-time 1d; + reason "8,4 E N T E R T H E V O I D "; +} + +webirc { mask 107.161.19.53; password "REDACTED"; } # KiwiIRC +webirc { mask 107.161.19.109; password "REDACTED"; } +webirc { mask 107.161.31.4; password "REDACTED"; } + +webirc { mask 207.192.75.252; password "REDACTED"; } # Mibbit +webirc { mask 64.62.228.82; password "REDACTED"; } +webirc { mask 78.129.202.38; password "REDACTED"; } +webirc { mask 109.169.29.95 ; password "REDACTED"; } + +set { + kline-address "banned@supernets.org"; + gline-address "banned@supernets.org"; + modes-on-connect "+ipTx"; + modes-on-oper "+HIq"; + snomask-on-oper "+bcFfkGsSo"; + modes-on-join "+ns"; + level-on-join "op"; + restrict-channelmodes "Pps"; + restrict-commands { + invite { connect-delay 300; exempt-identified yes; } + list { connect-delay 60; exempt-identified yes; } + private-message { connect-delay 300; exempt-identified yes; } + private-notice { connect-delay 300; exempt-identified yes; } + } + auto-join "#superbowl"; + oper-auto-join "#help"; + static-quit "EMO-QUIT"; + static-part "EMO-PART"; + who-limit 100; + nick-length 20; + maxchannelsperuser 10; + channel-command-prefix "`!@$."; + options { hide-ulines; flat-map; identd-check; } + network-name "SuperNETs"; + default-server "irc.supernets.org"; + services-server "services.supernets.org"; + sasl-server "services.supernets.org"; + help-channel "#help"; + cloak-method ip; + cloak-keys { + "REDACTED"; + "REDACTED"; + "REDACTED"; + } + hiddenhost-prefix "SUPER"; + plaintext-policy { + user warn; + oper deny; + server deny; + user-message "4WARNING: You are not using a secure connection with SSL/TLS"; + oper-message "Network operators must connect using SSL/TLS"; + } + outdated-tls-policy { + user warn; + oper deny; + server deny; + user-message "4WARNING: You are using an outdated SSL/TLS protocol or cipher"; + oper-message "Network operators must connect using an up-to-date SSL/TLS protocol or cipher"; + } + anti-flood { + away-flood 3:300; + connect-flood 3:300; + invite-flood 3:300; + join-flood 3:300; + knock-flood 3:300; + max-concurrent-conversations { users 5; new-user-every 60s; } + nick-flood 3:300; + unknown-flood-amount 2048; + unknown-flood-bantime 1h; + } + default-bantime 1d; + spamfilter { + ban-time 1d; + ban-reason "8,4 E N T E R T H E V O I D "; + except "#anythinggoes"; + } + max-targets-per-command { kick 1; part 1; privmsg 1; } + hide-ban-reason yes; + reject-message { + gline "8,4 E N T E R T H E V O I D "; + kline "8,4 E N T E R T H E V O I D "; + password-mismatch "8,4 E N T E R T H E V O I D "; + server-full "8,4 E N T E R T H E V O I D "; + too-many-connections "8,4 E N T E R T H E V O I D "; + unauthorized "8,4 E N T E R T H E V O I D "; + } + antimixedutf8 { + score 10; + ban-action block; + ban-reason "8,4 E N T E R T H E V O I D "; + ban-time 1h; + } + connthrottle { + known-users { minimum-reputation-score 24; sasl-bypass yes; } + new-users { local-throttle 20:60; global-throttle 30:60; } + disabled-when { reputation-gathering 1w; start-delay 3m; } + } + history { + channel { + playback-on-join { lines 100; time 1d; } + max-storage-per-channel { lines 100; time 1d; } + } + } + manual-ban-target ip; +} + +hideserver { + disable-map yes; + disable-links yes; + map-deny-message "Denied"; + links-deny-message "Denied"; +} \ No newline at end of file diff --git a/doc/tao.of.irc b/doc/tao.of.irc new file mode 100644 index 0000000..d78e3c5 --- /dev/null +++ b/doc/tao.of.irc @@ -0,0 +1,271 @@ + +The Tao of Internet Relay Chat +Copyright (C) Ove Ruben R Olsen 1994 +Version of 940110 +Contributing masters: Master ScottM + +----- +Something is formed by the electrons, born in the silent cable. Shaping +and growing and ungrowing. It is there yet not there. It is the source of +Internet Relay Chat. I do not know the name, thus I will call it the Tao +of Internet Relay Chat. + +If the Tao is great, then the IRC is running ceaselessly. If the IRC is +great then the server is running without ever stoping. If the server is +great then the client will always be the server. The luser is then pleased +and there is Chat in the world. + +The Tao of IRC squits far away and connects on returning. + + +----- +The genetic potential of birth, a lot to know, yet unknown. + +In the begining there was nothing. + +Out of nothing the Tao gave birth to tolsun.oulu.fi. tolsun gave birth to +OuluBox. + +OuluBox gave birth to rmsg. + +rmsg was not Tao, so MUT gave birth to IRC. + +No one knows when IRC came into existance, the mighty master WiZ have it +to be at the end of the eight month in the year of the Dragon. + + +----- +Each channel has its purpose, however humble. Each channel is the Yin and +Yang of IRC. Each channels has it's place within the IRC. + +In the beginning there was only channel 0, thus channel 0 is the soil of +IRC. + +Channel 1 to channel 10 then was open as the sea. Channel 11 to 999 was the +trees and forests of IRC. Channels above 999 should not be mentioned, and +channels below 0 were unborn and contained many secrets. + +This was not the right Tao, so IRC gave birth to +channels. + ++channels had the yin and yang. Mode does not. + +This was not the right Tao still, so IRC gave birth to #channels. + +#channels have the yin and yang. + +Only channel 0 is the right path to Tao, but avoid speaking on channel 0. + + +----- +There was a great dispute among the Broom-Walkers of the Relay. Some of them +wanted neither yin nor yang. Out of this Eris came into existance. Some of the +Broom-Walkers then created Eris Free-net. + +This was the right Tao. + +Kind Gentle and Boring Net was another wrong path to the Tao of Internet Relay +Chat. + +Some time later there was a quantity of some lusers who wanted to be +Broom-Walkers also. The Eris Free Broom-Walkers did not agree with them, +thus a new IRC was born. This IRC is called the Undernet. + +But this is not the right Tao, either. + + +----- +There will always be disputes among the Broom-Walkers of Internet Relay Chat. + +This is the very nature of the IRC. + + +----- +Lusers that do not understand the Tao is always using the yang of Mode on +their channels. Lusers that do understand the Tao are always using Ignore +on their channels. + +How could this not be so ? + + +----- +The wise sage luser is told about the Chat and uses it. The luser is told +about the IRC and is looking for it. The flock are told about the Tao and +make a fool of the IRC. + +If there was no laughter, there would be no Tao. + + +----- +The master says: +"Without the Tao of Internet Relay Chat, life becomes meaningless." + +The Relay of the old time was mysterious and sacred. We can neither imagine +its thoughts nor path; we are left but to describe. + + +----- +The sage luser must be aware like a frog crossing the highway. + + +----- +The great master Wumpus once dreamed that he was an automaton. When he awoke +he exclaimed: + "I don't know whether I am Wumpus dreaming that I am a client, + or a client dreaming that I am Wumpus!" + +So was the first Automata born. + +The master Nap then said: + "Any automata should not speak unless spoken to. + Any automata shall only whisper when spoken to." + +Thus replied the master Gnarfer: + "The lusers shall keep in mind that a automata can be either good or + bad. Create good automata, and the IRC will hail you and you will + gain fame and fortune. Create bad automata and people will start to + hate you, and finaly you will be /KILLed to ethernal damnation" + +Many lusers have fallen into the clutches of ethernal damnation. They where +not following the Tao. + + +----- +There once was a luser who went to #BotSex. Each day he saw the automatons. +The luser decided that he also would have such a automata. +He asked another luser for his automata. The other luser gave his automata +away. + +The luser was not within the Tao, so he just started the automata. The automata +had only Yang inside so all the lusers files where deleted. + +Some moons laither the same luser then had become a sage luser, and did create +his automata from the very grounds with materials found inside the IRC. +The luser was now within the Tao and his automata lived happily ever after. + + +----- +There once was a master who wrote automatons without the help of master Phone. +A novice luser, seeking to imitate him, began with the help of master Phone. +When the novice luser asked the master to evaluate his automata the master +replied: "What is a working automata for the master is not for the luser. +You must must BE the IRC before automating." + + +----- +Master BigCheese gave birth to master Troy; his duty clear. Master Troy gave +birth to master Phone, for the Tao of Irc must be eternal and must flow as the +ceaseless river of Time itself. + + +----- +Master Phone once said about the ircII client: + "public_msg is for a message from someone NOT on the channel + public_other is for a message on a channel that doesn't belong to + a window. public is for a message on a channel that belongs to a + window!" + +Out of this raised the mighty chaos. + + +----- +The sage luser came to the master who wrote automata without the help of +master Phone. The sage luser asked the master who wrote automata: "Which is +easiest to make. A automata with the help of master Phone or an automata +made with the help of a language ?" + +The master who wrote automata then replied: + "With the help of a language." + +The sage luser was disapointed and exclaimed: "But, with master Phone you +do not need to know anything about the soil of IRC. Is not that the easiet +way ?" + +"Not really" said the master who wrote automata, "when using master Phone +you are closed inside a box. For sure, it is a great box for the lusers, +but the master will need more power, thus a language is the only path to go. +With the language the master will never have to limit himself. When using +such a language the master will seek the best between the need and the +availibility." + +"I see", said the sage luser. + +This is the essence of Tao of IRC automatas. + + +----- +A client should be light and be used for communication. The spirit of a good +client is that it should be very convinient for the luser to use, but hard +for the luser who want to create automata. +There should never ever be too many functions or too few functions. + +There should always be a ignore. + +Without ignore the client is not within the Tao of Chating. + +The client should always respond the luser with messages that will not +astnonish him too much. The server likewise. If the server does not, then it +is the clients job to explain what the server says. + +A client which fails this, will be useless and cause confusion for the lusers. +The only way to correct this is to use another client or to write a new one. + + +----- +A luser asked the masters on #IrcHelp: "My client does not work". +The masters replied: "Upgrade your client". +The luser then wondered why the master knew. The master then told him about +the Protocol. + +"Your client does not work beaucse it does not understand the server. Why +should it always work ? Only a fool would expect such. But, clients are made +by humans, and humans are not perfect. Only Tao is. + +The IRC is solid. The IRC is floating, and will always be dynamic. Live with +that or /quit." + + +----- +The luser came to the masters of #IrcHelp, asking about the Tao of IRC within +the client. +The masters then said that the Tao of IRC always lies inside the client +regardless of how the client connects to the server. + +"Is the Tao in irc ?" asked the luser. +"It so is" replied the masters of #IrcHelp. +"Is the Tao in the ircII, Kiwi, rxirc, vms, rockers and msa ?" asked the +luser. +"In all of them and in the TPC, irchat, zenirc, zircon X11-irc and even the +dos irc has the Tao" said the master quietly. +"Is the Tao in a telnet connection directly to the server ?" + +The master then was quiet for a long time and said. "Please leave, such +questions are not within the Tao of IRC". + + +----- +The master says: "Without the Protocol of TCP the messages will not travel. + Without the client, the server is useless." + + +----- +There once was a luser who used the ircII client. "ircII can do anything I +ever need for using IRC" said the emacs client user, "I have /ON's, I have +assignments, I have aliasing. Why don't you use this instead of the huge +emacs client, which also has a messy screen?" +The emacs client user then replied by saying that "it is better to have a +scripting language that is the client instead of have a client that has +a scripting language." Upon hearing this, the ircII client luser fell silent. + + +----- +The master Wumpus said: "Time for you to leave. I did, now I'm happy." +The master Gnarfer replied: "Use, but never overuse IRC, then you will also +be happy within IRC" + + +----- +A luser came unto the masters of #EU-Opers and asked, "How can I be, yet not +be, a user@host within the IRC?" +The masters of #EU-Opers replied: "To be Tao is to be ones true self. To hide +ones self is not Tao, and is not IRC, you have much to learn before you shall +be at rest within the Flow of Irc. Please leave" diff --git a/doc/technical/005.txt b/doc/technical/005.txt new file mode 100644 index 0000000..c1d9b37 --- /dev/null +++ b/doc/technical/005.txt @@ -0,0 +1,180 @@ +Numeric 005 Documentation +(c) 2002-2005 codemastr (Dominick Meglio) [codemastr@unrealircd.com] +(c) 2005-2009 syzop (Bram Matthys) [syzop@vulnscan.org] + +Numeric 005 allows the server to inform the client of any protocol specific features in the +IRCd. The numeric is sent at connection time immediately after numeric 004. Additionally +the numeric is sent when a /version request is made by a local user, for remote users +numeric 105 is used but contains the same information. + +Due to the limit imposed by RFC1459 on both the buffer size (512) and the amount of +parameters that can be sent in a single command (15) a total of 13 parameters may be +specified in each 005. Because of this, a client must be able to accept multiple 005s +consecutively. The format for the 005 message is as follows: + +":" "005" SPACE SPACE SPACE ... ":are supported +by this server" + +Currently UnrealIRCd supports several tokens that are included in numeric 005. A list of +all tokens, their respective value and a brief description are listed below. + +Unreal attempts to follow the proposed ISupport standard as much as possible. Unreal only +ignores the standard in one regard, the TARGMAX token. This token is believed to be +impractical and technically impossible to correctly implement due to existing limitations +in the standard. Therefore, this token is not currently supported. + +Unreal does additionally provide a few tokens which are not specified in the standard, these +include: HCN, AWAYLEN, WATCH, SILENCE, EXTBAN, ELIST, CMDS, NAMESX, UHNAMES, and WATCHOPTS. +Unreal also maintains a few legacy tokens such as MAXCHANNELS and WALLCHOPS to ensure +compatibility until the ISupport standard is more widely accepted by clients. + +Token Value Default Value Description +------------------------------------------------------------------------------------------------ +MAP none none Informs the client that the /map + command is present. [Obsolete] + +KNOCK none none Informs the client that the /knock + command is present. [Obsolete] + +SAFELIST none none The LIST command is sent in + multiple iterations so that the + client's queue does not get filled + causing the user to be killed. + +HCN none none The server supports the HCN + (Hybrid Connect Notice) protocol. + +MAXCHANNELS number 10 The maximum number of channels a + user may join. [Deprecated] + +MAXBANS number 60 The maximum number of bans that + may be placed for a channel. + [Obsolete] + +NICKLEN number 30 Maximum length of a user's + nickname. + +TOPICLEN number 307 Maximum length of a channel's + topic. + +KICKLEN number 307 Maximum length of a kick reason. + +MAXTARGETS number 20 Maximum targets for the PRIVMSG + command. + +AWAYLEN number 307 Maximum length of an away message. + +WALLCHOPS none none Indicates that you may use + NOTICE/PRIVMSG to send to +ohv by + using PRIVMSG/NOTICE [@|%|+]#channel. + [Deprecated] + +WATCH number 128 Indicates the presence of the + WATCH command and specifies the + maximum number of watch entries. + +SILENCE number 15 Indicates the maximum number of + entries on the silence list. + +MODES number 13 Indicates the number of channel + modes with parameters that may be + sent at one time. + +CHANTYPES chars # Indicates the prefixes available + for channels. + +PREFIX (modes)prefixes (qaohv)~&@%+ Indicates the modes on a channel + that corespond to the given + nickname prefixes. + +CHANMODES A,B,C,D be,kfL,lj, Specifies how each channel mode is + psmntirRcOAQKVHGCuzNSMT set/unset. The A section specifies + modes that add a nick/mask to a + list. The B section specifies + modes that require a parameter + to be both set and unset. The C + section specifies modes that + only require a parameter to be + set, and the D section + specifies modes that require no + parameters. + +NETWORK string no default value Specifies the name of the + network that the server is + connected to. + +CASEMAPPING string ascii Specifies what definition the + server uses when determining if + characters are upper/lowercase + of eachother. + +EXTBAN prefix,types ~,cqnr Specifies what extbans are + supported by the server. The prefix + defines which character indicates + an extban and the types defines + which extbans the server supports. + +ELIST flags MNUCT Specifies the set of extended LIST + options supported. The M flag + indicates mask based searching, + the N flag indicates negative + mask based searching. The U flag + means support for user count + searching. The C flag allows channel + creation time searching, and the T + flag allows topic set time + searching. + +CMDS commands MAP,KNOCK,DCCALLOW,USERIP Specifies a series of commands that + can be useful for the client to know + exist as they may provide a more + efficient means for the client to + accomplish a specific task. This + token replaces the MAP and KNOCK + tokens. + +STATUSMSG flags ~&@%+ Specifies the mode flags that may + prefix a channel name in a PRIVMSG + or NOTICE to limit who receives the + message to only those with a certain + level of access. This token will + replace the WALLCHOPS token. + +EXCEPTS none none Indicates that channel ban exceptions + (+e) are supported by the server. + +INVEX none none Indicates that channel invite + exceptions (+I) are supported by + the server. + +MAXLIST mode:num,... b:60,e:60,I:60 Specifies the maximum number of + entries that may be added to a + particular mode list (type A modes). + This token replaces MAXBANS. + +CHANLIMIT pfx:num,... #:10 Specifies the maximum number of + channels with the specified prefix + that a user may join at one time. + This token will replace MAXCHANNELS. + +CHANNELLEN number 32 Provides the maximum length of a + channel name that a user can create. + +NAMESX none none Indicates that extended /NAMES info + is available on this server. If the + client sends "PROTOCTL NAMESX" then + the server will, from then on, send + all channel rights in a NAMES reply + instead of only the highest right + (eg: @+Person instead of @Person). + +UHNAMES none none Indicates that (other) extended + /NAMES info is available on the + server. If the client sends + "PROTOCTL UHNAMES" then the server + will, from then on, send user@host + information in a NAMES reply + (eg: @nick!ident@hostname). + +WATCHOPTS flags A WATCH options supported. 'A' means + Away Notification is available. diff --git a/doc/technical/base64.txt b/doc/technical/base64.txt new file mode 100644 index 0000000..ba0edfa --- /dev/null +++ b/doc/technical/base64.txt @@ -0,0 +1,11 @@ +base64 Documentation (c) 2002 codemastr (Dominick Meglio) [codemastr@unrealircd.com] +(As of Unreal3.2-beta11) + +The base64 system used by Unreal is defined as follows: + + 0 1 2 3 4 5 6 7 8 9 A B C D E F G H I J K L M N O P Q R S T + U V W X Y Z a b c d e f g h i j k l m n o p q r s t u v w x + y z { } + +These numbers are translated to and from their decimal equivilents of 0-64 in order to +provide a shorter way of expressing a number. diff --git a/doc/technical/serverprotocol.txt b/doc/technical/serverprotocol.txt new file mode 100644 index 0000000..bae498c --- /dev/null +++ b/doc/technical/serverprotocol.txt @@ -0,0 +1,2 @@ +All server protocol documentation has been moved to the wiki: +https://www.unrealircd.org/docs/Server_protocol diff --git a/doc/translations.txt b/doc/translations.txt new file mode 100644 index 0000000..800c00a --- /dev/null +++ b/doc/translations.txt @@ -0,0 +1,26 @@ +==[ Translations ]=========================================================== + +In UnrealIRCd 5 we support the following translations: +* on-line documentation at https://www.unrealircd.org/docs/ (wiki!) +* help.conf +* example.conf + +For translating the wiki documentation see this article: +https://www.unrealircd.org/docs/Translating_UnrealIRCd_wiki_pages + +For the .conf files the following rules apply: +* You must translate the very latest (English) version of the document(s) +* The translation must be correct. Not just the spelling and grammar, + but also 'technically'. You should therefore have some real experience + with UnrealIRCd. +* Someone, usually the person who translated it, needs to be willing + to actively maintain the docs. This is very important! If docs are + out of date (out-of-synch) there will be confusion among users. + We will remove documents that have been out of date too long (months) + +If you want to start translating a document, please send an email to +syzop@unrealircd.org and mention the language you are willing to translate +to.. You will then receive an email back saying you can go ahead (or not). +This is mainly to avoid multiple persons working on the same translation. + +============================================================================= diff --git a/extras/.indent.pro b/extras/.indent.pro new file mode 100644 index 0000000..e2b4ff3 --- /dev/null +++ b/extras/.indent.pro @@ -0,0 +1,52 @@ +--leave-preprocessor-space +--dont-break-procedure-type +--no-space-after-function-call-names +--brace-indent0 +--indent-level8 +-ip8 +--dont-line-up-parentheses +--continuation-indentation4 +--case-indentation2 +--no-space-after-casts +--blank-lines-after-procedures +--no-blank-lines-after-declarations +--braces-on-struct-decl-line +--paren-indentation0 +--case-brace-indentation0 +--line-length80 +--declaration-indentation5 +-T size_t +-T aClass +-T TS +-T aClient +-T aServer +-T anUser +-T aChannel +-T Mode +-T aConfItem +-T aMessage +-T aMessageTree +-T aGline +-T aListingArgs +-T snomask_t +-T n_short +-T n_long +-T n_time +-T u_char +-T u_short +-T u_long +-T u_int +-T dbuf +-T dbufbuf +-T aHashEntry +-T Link +-T Dlink +-T VOIDSIG +-T aHostent +-T ResRQ +-T aCache +-T CacheTable +-T cainfo +-T reinfo +-T RETSIGTYPE +-T OPT_TYPE diff --git a/extras/VStudioAnalyze.ruleset b/extras/VStudioAnalyze.ruleset new file mode 100755 index 0000000..d1dd3f3 --- /dev/null +++ b/extras/VStudioAnalyze.ruleset @@ -0,0 +1,155 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/extras/argon2-20181209.tar.gz b/extras/argon2-20181209.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..9ed4ab322d513cd0341eb4ee6962c35883e92702 GIT binary patch literal 55140 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 tlc%cYpN*Zn&)w(lbN9LX+&1|egrep 'Debian.*jessie'; then + echo "Disabling ASan due to false positives on deb8" + echo 'EXTRAPARA="--enable-werror --disable-asan"' >>config.settings +fi + +# Read config.settings, this makes a couple of variables available to us. +. ./config.settings +if [ "$SSLDIR" != "" ]; then + # In case we build local openssl/libressl + export LD_LIBRARY_PATH="$SSLDIR/lib" +fi +./Config -quick || (tail -n 5000 config.log; exit 1) +$MAKE +yes ''|make pem +make +./unrealircd module install third/dumpcmds +make install + +set +x +echo "" +echo "***********************************************" +echo "UnrealIRCd build & install successful." +echo "***********************************************" + +if [[ "$OSTYPE" == "darwin"* ]]; then + otool -L ~/unrealircd/bin/unrealircd +else + ldd ~/unrealircd/bin/unrealircd +fi + +if [ "$BUILDCONFIG" = "local-curl" ]; then + # We broke the system significantly earlier that build tests + # won't work (eg: 'git' is uninstallable). Don't bother + # running the tests. I don't expect a 'local-curl' specific + # bug anyway. + exit 0 +fi + +if [[ "$OSTYPE" == "darwin"* ]]; then + # 'rake' doesn't work. have to figure that one out.. + echo "Not running test on OS X for now" + exit 0 +fi + +echo "" +echo "" +#echo "Now running UnrealIRCd test framework..." +#set -x +#extras/build-tests/nix/run-tests diff --git a/extras/build-tests/nix/configs/default b/extras/build-tests/nix/configs/default new file mode 100644 index 0000000..3a7c28a --- /dev/null +++ b/extras/build-tests/nix/configs/default @@ -0,0 +1,24 @@ +# +BASEPATH=$HOME/unrealircd +BINDIR=$HOME/unrealircd/bin +DATADIR=$HOME/unrealircd/data +CONFDIR=$HOME/unrealircd/conf +MODULESDIR=$HOME/unrealircd/modules +LOGDIR=$HOME/unrealircd/logs +CACHEDIR=$HOME/unrealircd/cache +DOCDIR=$HOME/unrealircd/doc +TMPDIR=$HOME/unrealircd/tmp +PRIVATELIBDIR=$HOME/unrealircd/lib +PREFIXAQ="1" +MAXCONNECTIONS="1024" +NICKNAMEHISTORYLENGTH="2000" +DEFPERM="0600" +SSLDIR="" +REMOTEINC="" +CURLDIR="" +SHOWLISTMODES="1" +NOOPEROVERRIDE="" +OPEROVERRIDEVERIFY="" +GENCERTIFICATE="0" +EXTRAPARA="--enable-werror --enable-asan" +ADVANCED="" diff --git a/extras/build-tests/nix/run-tests b/extras/build-tests/nix/run-tests new file mode 100755 index 0000000..5e9808e --- /dev/null +++ b/extras/build-tests/nix/run-tests @@ -0,0 +1,44 @@ +#!/bin/bash +# +# This script fires up a two-server IRC network and runs the test framework +# + +# Exit on error: +set -e + +# Verbose: +set -x + +# Kill old instances +killall -9 unrealircd || true +# Remove old junk +rm -rf cipherscan/ unrealircd-tests/ + +if [ ! -d ~/cipherscan ]; then + # Install 'cipherscan' + git clone -q https://github.com/mozilla/cipherscan +fi + +# Install 'unrealircd-tests' +git clone -q https://github.com/unrealircd/unrealircd-tests.git +cd unrealircd-tests + +# Run the test framework, testing both services: +if uname -a|grep -q FreeBSD; then + # FreeBSD runs without services since they fail mysteriously: + ./run -services none || exit 1 +else + # Linux tests both with anope and atheme services: + ./run -services anope || exit 1 + ./run -services atheme || exit 1 +fi + +# Do cipherscan test at the end +if [[ "$OSTYPE" != "freebsd"* ]]; then + sleep 2 + cd ../extras/tests/tls + ./tls-tests + cd - +fi + +killall -15 unrealircd atheme-services services anope || true diff --git a/extras/build-tests/nix/run-tests.bbwrapper b/extras/build-tests/nix/run-tests.bbwrapper new file mode 100755 index 0000000..86676df --- /dev/null +++ b/extras/build-tests/nix/run-tests.bbwrapper @@ -0,0 +1,14 @@ +#!/bin/bash +# +# This is a simple wrapper script that will run the tests +# When finished, either due to succes or failure, +# it will kill the ircd +# +# Also, it makes sure the job times out (is killed) +# in case it misbehaves +# +set +ex +timeout --kill-after=5 600 extras/build-tests/nix/run-tests +EX="$?" +killall -9 valgrind valgrind.bin memcheck memcheck-amd64-linux memcheck-x86-linux ircd unrealircd val 1>/dev/null 2>&1 +exit $EX diff --git a/extras/build-tests/nix/select-config b/extras/build-tests/nix/select-config new file mode 100755 index 0000000..790e7e9 --- /dev/null +++ b/extras/build-tests/nix/select-config @@ -0,0 +1,114 @@ +#!/bin/bash +# +# This is a helper script for travis-ci builds and our own FreeBSD test machine. +# It is not meant to be used by end-users +# + +function fail() +{ + echo "select-config failed: $*" + exit 1 +} + +function build_ssl { + DIR="$2" + URL="$1/$2.tar.gz" + savewd="$PWD" + cd ~ + wget "$URL" || exit 1 + tar xzf $DIR.tar.gz + cd "$DIR" + (./configure --prefix=$HOME/ssl 1>/dev/null 2>&1 || ./config --prefix=$HOME/ssl -fPIC 1>/dev/null 2>&1 ) || fail "build_ssl: configure/config failed" + (make -j2 1>/dev/null 2>&1 && make install 1>/dev/null 2>&1) || fail "build_ssl: make failed" + cd "$savewd" + echo "SSLDIR=$HOME/ssl" >>config.settings +} + +if [ ! -d extras ]; then + echo "This tool is supposed to be run from the source root, so ~/unrealircd-5.0.x or similar" + exit 1 +fi + +set -x + +# Take default settings as a starter.. +cp extras/build-tests/nix/configs/default ./config.settings + +# Libtool is required for the other options.. +# Also for our FreeBSD machine we have to uninstall some stuff since a clean +# environment is not guaranteed... +if [ "$OSTYPE" = "linux-gnu" ]; then + sudo apt-get -qq update + sudo apt-get install libtool -qq +elif [[ "$OSTYPE" == "freebsd"* ]]; then + sudo pkg install -y libtool + sudo pkg remove -y c-ares +elif [[ "$OSTYPE" == "darwin"* ]]; then + brew update + brew install openssl +else + echo "OS not correctly detected ($OSTYPE). Aborting." + exit 1 +fi + +echo "*****************************************************************" +echo "SELECTED BUILD OPTIONS: $*" +echo "*****************************************************************" + +while [ "$1" ] +do + echo "Processing option $1..." + if [ "$1" = "system-cares" ]; then + if [ "$OSTYPE" = "linux-gnu" ]; then + sudo apt-get install libc-ares-dev -qq + elif [[ "$OSTYPE" == "freebsd"* ]]; then + sudo pkg install -y c-ares + elif [[ "$OSTYPE" == "darwin"* ]]; then + brew install c-ares + fi + elif [ "$1" = "system-curl" ]; then + echo 'REMOTEINC=1' >>config.settings + if [ "$OSTYPE" = "linux-gnu" ]; then + sudo apt-get install libcurl4-openssl-dev -qq + echo 'CURLDIR=/usr' >>config.settings + elif [[ "$OSTYPE" == "freebsd"* ]]; then + sudo pkg install -y curl + echo 'CURLDIR=/usr/local' >>config.settings + elif [[ "$OSTYPE" == "darwin"* ]]; then + brew install c-ares curl + echo 'CURLDIR=/usr/local/opt/curl' >>config.settings + fi + elif [ "$1" = "local-curl" ]; then + if [ "$OSTYPE" = "linux-gnu" ]; then + sudo apt-get remove libcurl4-openssl-dev libcurl3-gnutls libcurl3 -qq + elif [[ "$OSTYPE" == "freebsd"* ]]; then + sudo pkg remove -y curl #NOTE: unfortunately this also removes 'git' :D + elif [[ "$OSTYPE" == "darwin"* ]]; then + echo "No need to remove curl since it's not installed. Or at least I hope so..." + fi + echo 'REMOTEINC=1' >>config.settings + echo "CURLDIR=`pwd`/extras/curl" >>config.settings + elif [ "$1" = "libressl-27" ]; then + build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.7.5 + elif [ "$1" = "libressl-28" ]; then + build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.8.3 + elif [ "$1" = "libressl-29" ]; then + build_ssl https://ftp.openbsd.org/pub/OpenBSD/LibreSSL libressl-2.9.0 + elif [ "$1" = "openssl-102" ]; then + build_ssl https://www.openssl.org/source openssl-1.0.2q + elif [ "$1" = "openssl-110" ]; then + build_ssl https://www.openssl.org/source openssl-1.1.0j + elif [ "$1" = "openssl-111" ]; then + build_ssl https://www.openssl.org/source openssl-1.1.1a + else + echo "Unknown option $1" + exit 1 + fi + shift +done + +if [[ "$OSTYPE" == "darwin"* ]]; then + echo "NOTE: Not building with -Werror for now on macOS..." +else + echo 'EXTRAPARA="--enable-werror"' >>config.settings +fi diff --git a/extras/build-tests/windows/build.bat b/extras/build-tests/windows/build.bat new file mode 100644 index 0000000..3a8ffe9 --- /dev/null +++ b/extras/build-tests/windows/build.bat @@ -0,0 +1,86 @@ +echo on + +rem Temporarily hardcoded: +set TARGET=Visual Studio 2019 +set SHORTNAME=vs2019 + +rem Initialize Visual Studio variables +if "%TARGET%" == "Visual Studio 2017" call "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvars64.bat" +if "%TARGET%" == "Visual Studio 2019" call "C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat" + +rem Installing tools +rem only for appveyor: +rem cinst unrar -y +rem cinst unzip -y +rem cinst innosetup -y + +rem Installing UnrealIRCd dependencies +cd \projects +mkdir unrealircd-5-libs +cd unrealircd-5-libs +curl -fsS -o unrealircd-libraries-5-devel.zip https://www.unrealircd.org/files/dev/win/libs/unrealircd-libraries-5-devel.zip +unzip unrealircd-libraries-5-devel.zip +copy dlltool.exe \users\user\worker\unreal5-w10\build /y + +rem for appveyor: cd \projects\unrealircd +cd \users\user\worker\unreal5-w10\build + +rem Now the actual build +call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat + +rem The above command will fail, due to missing symbol file +rem However the symbol file can only be generated after the above command +rem So... we create the symbolfile... +nmake -f makefile.windows SYMBOLFILE + +rem And we re-run the exact same command: +call extras\build-tests\windows\compilecmd\%SHORTNAME%.bat +if %ERRORLEVEL% NEQ 0 EXIT /B 1 + +rem Convert c:\dev to c:\projects\unrealircd-5-libs +rem TODO: should use environment variable in innosetup script? +sed -i "s/c:\\dev\\unrealircd-5-libs/c:\\projects\\unrealircd-5-libs/gi" src\windows\unrealinst.iss + +rem Build installer file +"c:\Program Files (x86)\Inno Setup 5\iscc.exe" /Q- src\windows\unrealinst.iss +if %ERRORLEVEL% NEQ 0 EXIT /B 1 + +rem Show some proof +ren mysetup.exe unrealircd-dev-build.exe +dir unrealircd-dev-build.exe +sha256sum unrealircd-dev-build.exe + +rem Kill any old instances, just to be sure +taskkill -im unrealircd.exe -f +sleep 2 +rem Just a safety measure so we don't end up testing +rem some old version... +del "C:\Program Files\UnrealIRCd 5\bin\unrealircd.exe" + +echo Running installer... +start /WAIT unrealircd-dev-build.exe /VERYSILENT /LOG=setup.log +if %ERRORLEVEL% NEQ 0 goto installerfailed + +rem Upload artifact +rem appveyor PushArtifact unrealircd-dev-build.exe +rem if %ERRORLEVEL% NEQ 0 EXIT /B 1 + +rem Install 'unrealircd-tests' +cd .. +rd /q/s unrealircd-tests +git clone https://github.com/unrealircd/unrealircd-tests.git +if %ERRORLEVEL% NEQ 0 EXIT /B 1 +cd unrealircd-tests +dir + +"C:\Program Files\Git\bin\bash.exe" ./runwin +if %ERRORLEVEL% NEQ 0 EXIT /B 1 + +goto end + +:installerfailed +type setup.log +echo INSTALLATION FAILED +EXIT /B 1 + +:end diff --git a/extras/build-tests/windows/compilecmd/vs2019.bat b/extras/build-tests/windows/compilecmd/vs2019.bat new file mode 100644 index 0000000..dcc34ae --- /dev/null +++ b/extras/build-tests/windows/compilecmd/vs2019.bat @@ -0,0 +1,18 @@ +rem Build command for Visual Studio 2019 + +nmake -f makefile.windows ^ +LIBRESSL_INC_DIR="c:\projects\unrealircd-5-libs\libressl\include" ^ +LIBRESSL_LIB_DIR="c:\projects\unrealircd-5-libs\libressl\lib" ^ +SSLLIB="crypto-45.lib ssl-47.lib" ^ +USE_REMOTEINC=1 ^ +LIBCURL_INC_DIR="c:\projects\unrealircd-5-libs\curl\include" ^ +LIBCURL_LIB_DIR="c:\projects\unrealircd-5-libs\curl\builds\libcurl-vc-x64-release-dll-ssl-dll-cares-dll-ipv6-obj-lib" ^ +CARES_LIB_DIR="c:\projects\unrealircd-5-libs\c-ares\msvc\cares\dll-release" ^ +CARES_INC_DIR="c:\projects\unrealircd-5-libs\c-ares" ^ +CARESLIB="cares.lib" ^ +PCRE2_INC_DIR="c:\projects\unrealircd-5-libs\pcre2\include" ^ +PCRE2_LIB_DIR="c:\projects\unrealircd-5-libs\pcre2\lib" ^ +PCRE2LIB="pcre2-8.lib" ^ +ARGON2_LIB_DIR="c:\projects\unrealircd-5-libs\argon2\vs2015\build" ^ +ARGON2_INC_DIR="c:\projects\unrealircd-5-libs\argon2\include" ^ +ARGON2LIB="Argon2RefDll.lib" %* diff --git a/extras/c-ares.tar.gz b/extras/c-ares.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..e39bf4ca90745cf5e3237fd5516e03703ccb0447 GIT binary patch literal 1347687 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

dR53C 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

v%CI`IsLxhe}-i1yaQqjM zt~-2ei5F;EVSd9MRE0Rp_tE3W40XKjh1;TIi6aYu0A!)kOYFL{#GFA3mpvzgd|Dst zjbA%Ub#oD=PxS`>A#T1BJAqV(ZWQBTj%@+nZtcBgsPo1>bhNiEPXpOi482Z$l`+{v z8aGE(pEA@`$Vg;tZwrbGw#M&Q9%c9Uh3s&Qtfj6=oidx&W12_1>t5Q5F?U+_@t%L} z^n0y%=o@8uq$jmJDj;a|c#dWd2i90Kyl~ z2iooTc+#oN7z}fimDAO7tJ6k>-+(HIC+ME0bp;b*UL%~=?d7%Wafozd-n)K6pDpK- zZ09xpj7|eLP~GL=`>+qp7jb7TICbHO>4a(qadr^{9OZ#`Mfb=~lZ@QH_pRNxc*55!Db^O!fou&G^_e7u{D=e* zd6a@i_|dleVj25ab}#VTx7o-c?5aXzs)}lcLmUX7bIL%1%3$sT`T8eo=Qj-DPK-kV zYUcTk7D24*{atMT=Tga1FvoWO=he{>zn=9dbXt$EeIki0^(U`oy|F9X{W#3uEI(nf zrh@P&=80@JoXj{kXl}G5Zi)p<)=cY+dYo$gNw92DvKoC^HGCO?5QUnIQW)bYEh-s+pAR|Z zf)3KUR-%(~pqD(|KVe;%;*PjuxS;D(*XxiOd^6`fReU=kR1<%6JwgEU?_KWg2yt~S2s*S^_q2y+Z?kxsW>{jzmDpVGZ0ly?_4 zs~BU-!gJ8l5;d^KkXcsOcEvZ~y22m8Ujo%`^jU5D@NnPS**m7O!QaFFdDCXK*T1~p z4IgiBsVYH!R z3{JD)JeJL9oH|}T#GipfSAY44qdXsZM0&{wTU~fAC*;$6B9mLV{v6 zpd6-U&C~x1felDo(JNz?&uVmKJ&yU2lrUw#Xq`?y%(ZTqw+E2?k!Hc{}c<3oE-Er+r1X z_E$t7GjLf%+ld}T;aRfS#L)t>OpFoHNl+OAB!tI_$c}N2E@PU*ctZtvZ$pHkLik^v zKS+x*G#Pn0^!Jkfi7CEc@GbOooStwpHkKJi7&=y@cDk4=MH#(E#)L=i3^{t+xP88w zP(x8-;tjq*e>ulq;$6D9ff1BX7~0GG54yW*>tBbZk|!tOQLnk5$XmZZ?}N^sm539)H1z zTA$2=di?A&yRbWf!*w+5nPLEr4bQi1XuG|@Axf*E41k-d^M^(pBRG|$Hh zLvxtRCm7_{WC`@TwBHOxe{JWi%EeKq3>KceT=BkW}jRe;K_Nwy=tRd5v?Tmkp^M6 zsjp+0IU*WgXp?q^MadHFS(8ul=d-_7mR8R`vuEGd;<&(`0Xo;!O6=Y5?ERvg=d-3D zXlkWz6P0R)QqSriu)w^@8R(fH3|h6bDsA(Hs8&^ZTLsxaTz#kCUl7|y^#h{Rk7^;| z;KOtRCEHH(2SS=M@7%bmQ_uoB_HoJ>@QD}uRdeNtMX|$MDYAS9_Rk~iaw9`ni47No zj({xwrRVB8r_R)bETO5FM~zp64XoIgz^=kmh6 zic4K3yIaW`V`T4Cjxrr&H3UH1WO&h^W7AWZ2S=t`n$Bi$Fd`{S3KMhPG4OO;O5(nW z@N&@YNpXh`#WTaH7>Pq?)ykNxj@si|vi)*=P9b2$m>f}U3Vco+vS4+{rd|Xe+>}uW zE949<-A!d^Lc`FiMqY?K6muCNBJ0wnl%kWwjue%~hiN;hz5^hVgkD4;ohF&r>8Val z`#OP~V_Q9Rx29Vo@`<1uQt27$UN$>^X#A8sDp$qf7e6^f2-VDUgC!4+QI8H9?1)E1 zK|Bo4iO9q)q+_LF#Lt>WUpa0RtgfkeKf!Y--m^kSk*QMg(bB3-Tl~hqqoEjx3!$fInpZ_ftD0O0UTTd>>Xfw zEM`h3EV&nJd^z~e22yhOyb->7V{;+kWRLutU z?Ni*$aTuevT^=(d2nj^gUx{gpA(&D|p)ZBI@$1&{!QR2EXAI-f){{QVbz&3ibja7~ zwxRK#I_m-vr#RSwec>d!&D)z4=(XoOx@d&xn|NMuQzXGtD(}Q?$*3H+^pwN>Q&ZxR zkxF~Mw!gCwanNyRkzf9p4)T6WAvM`{dt$WbiQ;^@DNc=Dxm?nD74oN3&{{1tPU$BlF8QD1q^YBVfT5C>MQ$` z2&l_b;qZ`_u?ga{R&5+r38p&RC~*Q3M=lLKXGk5!ZAw%n+{&}|L*qs7GIdkf*B=S{ z{~}g-e*Ub+*4QRc)zj(%9tzQeo%n+n@dv+F7l^r@4~FN#ppP$}EUhkq)Q3lV6W{V? z)Ee-p*Tl43hsr(4UgCzA+_PlyRE&`UqiShPQcWed}qCXY&-~+7uLI%{4Au0SB~Ab-fcDh zZ8!d0Y5V|BELixz6HhFcXs$7|g!pZCg5?gcso69|@Oag#`W~Hew911@WUsU1hk?T|O!5s(e#;$nZh1Bsj12KFD90lN-qg~908+5Po4;>BTH>)0 zwOqx~2lVwN}vsnMXx)Q@B zikF5QJu(K|l?|92I{&+{PA}(M7U=M=%)v-LO@Wf(_RvMB+Ndw z8G?Yya!jL3Bl-%*@P~N10c?!ZqCgv*(GJbu z$wA9KkN-w;Y&4OF*MiiOt6+u+Ai1+kv%hrTk4H)@YKqjq+4#ge5vG)uk1*%#063*f zYFb3khkmu){$^8jJUO@l4=-!VIJH?z%R@!cMbdIqQAC0faV1Xc*3N!B1Ht4>N+xGK zbSr$EDS9DZ%7|X$0GugC;;co{Ub5+c$gUH`E6*v;15bMxNQz(T?iP|CK=il8I>R~>%UIHSyIrzjL$^?@MLRBko{pVHxoc+&hKJpq1Hdj<&S z23PtI+{p+}$ziAdlwq&~OC*ll9D0}`$g7AX+}7Z>he<{}ry}#u@sV#B};5TC0QO|@$|Diu1m+c7!dD8G0OXwLv)1-DryU1=PCwY zQro?GLJXfaT_o86vnB47u`S@Tm-*xNurFijdYGo@+`U9+A{%eINGeL;OuZ(M2J^#V z+LD?uxQFUBY%3#ZQXg*}|3+CK)i{n^IZV--hdrFuwdM~`n>R}^)13~? z^qNdC$}eASkMS71WOXATpbE4t6M{L4)}LoFQ7Q;vK%V-1gGo&*x4Cy%eeN69tW!ld z&~lq%5gBbY%Ct1_1q9wcN=Wr)eMu%d#qN4Q>)a?^v;+-!4l_tHLkQxN)A4&0mpkz6 z9taw+j{b!RW$mK!*k@0gE6tn;nCqxTgb&JQtbT8*kzD`cTwHw)zFXF-gE!lj1yTat z%g=`oHaFo3i0%D`+V=TAHe)w*IJJ545WZ11fn1lInFY3s@{ms*i@3KaykH*qT zZSrmA0l;l?M0j%qE&jEdxL>xyrumV@ON2-C(=LlU8 zwHv4hY^wwbRzyz$E`bNQ{ICt1{1PF=tq_yQqzADT)4T|?Ag>)#dJ%7|4x!)^qw855b15Ezf|q+;x<) zjNf0m^6*sS_0oiq4_A|Ibpn4$CIrUpMI3|}KPJEke4f3C$L4fe!vS_V;I=xUwT+0a z*EsJFcd_MnuqXO_4pF+bP%(Hc#Z>>Hw9G?5WA zE(eaE*;amTVE7V6?M5&|h2ldVN(x@1A9 zeM~kXf@pEwC_*?VYH~5`;I_XQ;yrFt<{d$e@B-5RzOB@xMMHo|bT*09Lj~eGbL$&~y!Smy*fc-_n zo3RWy@%B8Q{^ld4n6-rJ%J{M7O0{IN3HvRH3?qy95w7vpzZdT%?UW0I9BrQfKt$z0ww=1 z%6T`SLZZ{rV|t1zBYYhGD&9g}nXj0-td2y4Lde&&wPiKGLs|rUgxPY@ZXXleWlWnV zhEg?mhmsybAshr15UQ1amm4Nmq0JJ5xq}VINxQb+fa2$DH)R(sO@m5Jkox9rM$X}T zZ4;+PqCu%$ikRK*gnQJu)%Z^1rC5aS{K3c@Ck0SC*$AnI5&LbOX3V$R(bgn8gxdar zg-OR*I1)382mV6VRy9sr=1yu$QWtJ=Wmm^`eC{T<#U3AF?*e^DGlDT|XrsH4ikf}S zl<7vxIyc8o$a3I+hQM~Ot*m?(<(l(>%WJtL1%*mWA%d$cBwA!rVk4P*ll-JYu6~J| z3t;Ye*zg_rx*yLL&sdJg{oD#ExOpL7{t}H4oD<=Asn?1Z}j#)k8K0B{! zHcJ2ay}7uIren)!I(8NTt^MO{^&eyc`J4gU~18TOp2DyL?Hw)<}V=`=1Tv^$79*c;_f zM)g9mj+3-mJ*(m8v*q9%&3HO(9+pO8w&CI_aUmhE2@RKoR5iRNfe&VZfD=6`@%~^#vA2)k}k?>?GX)DO*G~VDBkw3 z16nWTuDMM*@Fcn#Zq~v>iR|zaX1r*r7rIA47xJkwv>lP(o&A0C1K?}`*S*%}IhHLf zH=E1nE~)L}ELO$LcVXYivv2c5*v+#VKKSr|l8fyS^ZTK8^3yIfPB#6G7E#(J=f?2s zSuF&GKi%j24(3cS97J>@h-f_&vRohFAJH&xD=a9z74ZeS83KXiZsCodd?t&Ayke3` z6eUB}F3ezto|yLIo3sK-yjbjhO)!*X`x-jns_$SG@JB3g6WI)Dh2jlzYg$44&uae) z(^9$hN*d<}06LwtMZs0bUI1EBnkDK>r}KYdXe&4uv zd|CexogLbNkd~G%ICl8i}giqt1&_Wl3M-^iu1j;)p=kbnsJ|6%KE19|D48L(gjmr1UCyW4dK#aeV7V~Q#X#f*t zE1~0qL}2l&8h5}2n#Puww^NFf>=3P_k{VlHZR1q{ zR^v-e3G8}y%L%?&&{9{1AXvxuKSnc2Zjwlz+kM!o%dO?3w@wd_m)Y`V^+Sq_ zR%$1dU5Byfio!U0tL0FCi5LAM=< z?Si*#At0WKyvgRB=4F#rkGS;0b<|b7>aNONQe7~dmk%<*gk*v*g3r$2j^I~C?6In?XgTs6^@?XeTynAVm*h(l=T2md6qz+(A7$inR0{=FdIE8mg|VotS1D zFAbzc(&^b7M}HBD$vhn+&R|NiYdT2i_e(g`Lr($n`LzAvpvmYOWSLtbl5J$iAxmMr zkmuSt#gwTFD{p&l(8cSK{|p1pMK%><^2QBcTsWMT{qz5D=0V{&!e^TwlI1?A7TiYN zgBa$!wI^tFtU$xTL@br^0;B2~ym2%{6Hptquv)0@Q_ICV(ZD>C3wLXeG}`@davwxd zd}3QhVNT?*Cpl)*TVpR{xAbBu^LB;-hr}q>q|JJf^O>3y6`zpBJMJ^_0I)zjD-JN# zCnM3;8oG_d8&*>@@pkZ3 z59!aurboFryRzMn!#g=TQuzvDmuhui^hifqQE*)E|%0HRx4F+SIwy`;vY zjaOkE#0kp$ONP7L8lTyhcqKLvp`k=YIsrBOqx_-8ami%wfNohKNl`eo&~P_nm!$K& z;oWdP@yy+;!WI3j<;d8nFFz^yaOF-fq_G z!<}6%YgX2+uHbB!5fcHD&i$I7R%1{Ndng7r9!#oWe>T=l{n=PA+X3MLs76h?>hQsjC|v+AdiL6iB@v_53e<rung?|j)zKHR|eIR0hzL+)D)ha(7VR~X1aljV2@6RF&I{r0C zdqa-M3C{s^2`nIBH-{NguSt@j$t8tz@7s*)9BhTvBn^UIck;KUm?)Xr6t33 z9;7BMvqxAt9g_SvvVj1X6U+!1`PW|L;Ow~Bg&z=k^HY){>4SJ!h<`~ zJKP=oCzgqRVL{V<1kDk)Eh>5KzVEh^2OaLQ)K2y=@}k!4+^2ICmO0Ae zmbGJ^PQo;8jz_zoz=EXH2F3*Fl;Ank$O4|-YB@dbsaxTRF1qN?OfeIP@|<&jcg`Ft zp7IJnswmFq~Mj|2$xI9e{;@ihawcBZ%~^x`gG4MFT!wqJWOKbw4GRf z3^=Xzg5MMKh+ViwJVt0^UolZTb0;m#KG6ViNxupsy znN!p4@;7{nHpNs`LR;Lbc(Hup`_D0&qA5QzkEeJB%;Q<*QJCoz;|+!xd^2~@S+!bG zbJ4b)i=cVM8tk9{w6?Z)4__(?Vr4YUXq!e$$IlWBsPo;|~p5_-Sf8m1R0o->6 z!@kE>o>x9sI7AHg36L&4t95f@4FKOs4_Osa-m1zXKuI=VJACm!J8xbeq2)v}CGdh~ zqX&Dp?*OwQFrc|8X0@8I79#lhONbQj!o~mlUG#%%A;Hul02(4;@^nvz&Kh$fr{t#< zyb_^?f+svTclLIv<&Nu1J8|aNUYm3Q6wIYX8ZiplAZZQH0DuR_A{1K;&l(sQ9|t#Q zniJ+37@LLrc5%*PiCy{E$V&3Ap@M9Hh*}hh3(ZyWs5(c1^m2$gmGfHy#GNB?M2hbW zI?AAR7@MaITpk4?4;JK&gD`kOw9@X)fm3w`t>p-iqHxBf)^x7)?adDq$A9^E0hleb zzeK#``G9PAFXqXy4S+o-I`xl0-SgEYc2-+kSa{BYk057kqFdT$5sLpCe6$dT&|eA5 zV9?Pz`)9m|x&_f(b8#61xW9YE-Y;HVx9lE%TW&uOmft;Fdh{O6?%@08yWcn8FV>cq z#dj#o#H;Eue2Bzhf3rcK)z7>-ga1C{=^^!qi)0flC#=eE{42td93xH9QsAT`Qj@+@ zYEp2;+HOGl!Gzw-=Q*E*AL$Rv-3N7~ePGh|Enkd4C$5wL152kY5yRq1uArxS+#r9zu?9EfJH2;@0rs za*c+Vf(9P~SrhXK!(R2BE)d8zzuUd$qp`U)8kU2BE%W(^#SSI=Eu8o|F8uOhaarTPzok@!3jHtBl~lBvb+{$-$lDGW|RMh$k2=q6HG?7{631J9#BX< z5GWF%r9VWGYG63f9Ucef+i$~w8QKf3%m1`lo9C`E;rd03MhtbM&6ifUf%(}&pB&StSNRg#SFWV+m>d5l~LbaZ&J z`)cnXiW`%0t&kJ-U_^U{5nO6Ub*SOnW8ZrCJ5ac9sPG3HS2G{?3B#5@|9N}9~u;1gyEpwH&L z%N24Dwt!+(^T`3;voGzV0?%D25Un!bTSt_X?H|86h>RSgz`HJbc?AmvU4ObhECEoz z-1276qCx{oJtXP|hEALlb%Re(h=+@>j|c%nuB6TDdQMBh@rj{l;n;1>Y#PxVO^cHN zP%L3e7=96_j7+6CVq3U_jXb4^u^)znt_70{5wA1 zzKD~pAT7?=9x;9he{!r%VXBziI-!mr2Y4JnJu6X6h(8Ns#dYD*+9QMOX1=p=bh;0E z7s46n^ynoIOGh^;je*_2bOt<624hEIFkJo?2L+1}-byt8OE|u%nhg&JCO+%Go+BWA zZid)Fs9!!gq7E&Q3^DmSk!LwxBrVah3?>y&pry8T;rFdRrRCVHl4nj$n*vr-IFxE7 zPX1nPZ%1S=3v@00C1$p=cHi!9TSv#cFZbTE?Zekcd;7b`+*3$hfGQb?$WEX|6m~)y zL8TC<$58Hb)XVh9J=tK2G@T@JDUF*1-aJs$fjPXBf1 zMePh)eYZEjyfz)o2wC9*%dqcQhQ>RqPbc|3sDpb`XY3HTCS1-5Fw- z06n7{rDloE3Wg=)eIW|Q=f(hX%85ZS4zh^4NMK#E9X!qGq9BZ>L1ti>u}L;5a+_&%bBP;U5EPlSos+vI zz6-A1fHEz0(KCyCD~nWcN)RcrG!l?Z5)&mKm!=}(>f+WJGzNa-+-XEG!U%hFbNbjV zK;YA@SHEl>&xg|x8v{(oLNp)dnd`#YA6Wb9vWW17G7}s(RFM?|VW5JkAQ0^&`h}r{ zn!5X`f^B>PV~HdA>W34Ekwv0)k#;W$3?T%eoVjj4NN>^YcAd7%v#J64746Dawd_;2 zcRRSECNXhbhp%pU%@h`s4HK9ccA9!H^g<)0(ef@EfF}5hlrlV1u-r4^wBAfBZ`i%A z2bk^-EV7Z;F=URtv@xA2$5R`@;3lHHA>n|Tu%NV5V@qUXper#>B!k zVX}<-f~peJ%IoBKl+`2TJCg>M+_oAelmS%c39PF(v5m?759jA$8g39N{$@9x&y^K7Ekq7Y!qF=y zoEm}RU3eUaSnXe|I)rlo*b{~GV;TU?A_5VO^(nOHXHR7tJQ!ro9LSulh39}O6rKYr zy{T6oXAXFG<8vVTRB#Sb*I#F1oVLhmNck}vLg@f(%!QBhQl3`^UWv!q_Gxz0EPS<= zGMMI3z-inwUnn}IC?BR&t6;&+I;?6vJZNG4Riz7N=&Ii!&k|j|XG8P+I-Wssl^@~| z)KydW@aP!$fg6!>%u&P^#o)*STPc5hM;-O%D>5nXK{ z7t!N|Cx_@=x7#CK3%X=Y717m}CV=QFxJ*PB1uZPd5j_QOgh`0Z)1Y84>M;pf5f3y2 zr|iZ;w27iCO$d9`c5<;NUO2*@mlz)#W#Vf-=@N&O$(Fc7ObE_BJKEb;nUS8`qHr)F zAHq2ip;}Ah#W-URb(L94aw|$H&sRd`;6h9cvbwoh7XN7IP4O--7JxeRFrBhj0JK)J zFgpFZb$qaQ@ah>eaCLGSLxwI|*BE;77DflQ_Wbi`yP+(N07M<1&;SsPyo|bcjZ2=g zbyLfh>p{j)lcL55^OXi9$79E6EX#F zi3xnhCyoj6wo7Az2|y7{h*mfo6C#XB#RR_baxg(HG#N~YAQqtuIwn*&GHlVk(MJkw zAhUx7G7N0%>w0KZtb7!Zr10*=`I8q%NK>s11@BYRF_MNjP&5pdULR|`w~`mCu^iy zxgsM?0!|&N0e0?4bsoCNNMG;0K6-P!Yn|@CJJ zaU3Gok(MzH8f=)@qq@9s zWo!<$gYquTZEseE7+qDLd&BN#b)_nbqn0eN+UJ*;%3P}uy@8IUyzwtC3~&72AO#w} zF+;;QacEKhdSvs8SDo~Gv+DW0KxGs|BKIPk4J0l*yW7j#@Z0`l`KKe6B_d{5)R@wE z2H!uSb0@nys*OneDhk8XkO6=*XtHf?Ux7Akt_KI1H15DcJTMU!i{C?$9!_f$y|A+y zB`@vVR;g5Gv&dX`dzN$4+oZT-lZZN2nRD?0vn-hD?aKC><9+z{(mFl-dG|m*ox`X` z7f?76f{X%?0m>NSk8#ga(ccd|CR>f)r6+E%tFbU-XJTo^+_G4=(hB3^W9XsgqF&)0 zdk_CFE-%+}tG=sJQTSM1zN{ycLuv~zMu*lPQtSyIZL%t#Jv~!^wt#$9mFQ@uz-X>1 z?3u9}N<*z-zk~PwXc%U}`dYj%A{1bhQz@mG48t$qE3ag06@ilvn{d*b5Tz*dMx-|n zn{kZIh%&4R|QZLvl=Kh?Nojms7Iy9$5T;O~=oF=B_{UHmyQLr_7dN5F_j08QV0q5ssG0>qz}GgE&4t|Zy#vv3zg99n+!HiL`@DU{nx zxPvsh{TS%>W1!oQfo?wry8SqXZo_*c-G2Oq(Cxh!ugg$vD*iyTr$)13ezz?vNwmfD z2dX_H)#meeU&uD^O#!+s3YrPGcv+Hiiva5|+9 zQC{KU7@giRdT_eCZ%G$@!*Qy=e>hf0Jyx}Oyf??I)~h1NtX?7IxYY}lJ$Ch(n)UHZ zw~4i^0aYJJ&_qcPMz=C?^5Xde$r*{{+!qqVSFr$T5e3a8MZ8Rsk{n{f>zRm1oa3e~ zj)B!A&qHfE~_q9+3Ly) zdn})I{DmX}mex_4j=jd^W&6BX!C+vY2PKL=E>;$^L>DW0Q@m*V+U{R8)`}JW)Gc=@ zSJav!$g!vh?$V-SBF8tT^edrQq~Z_9_tcJWm|x@VoOu3lc#n8^^ZC0kXE*Onfuma# zG@sn!WyynE%tV?&U3AV;5ov@!%i|q-D5dSoRx9Ih$G6eZ&dVAPc6=2b>!yNPhdOUY zJ<>V6hXeh~JJ1zXQPJx}Jj@>sxd|R}zwRA8SxX#o{OQ91H`)P5vv*I9H|k6N;l_&@ zk2d})d9dAkTetn~61+4Ne&D31#!18Mniy&R_<_uf$Vb!k-4`~RI#Ym)=H<*xG=Eo; zhvu_z7pgBLFlJ73Y;!gvS7c;~z7VUalUIA}_1@7*ukV*pacI>Z2=s%h<3ZJNUsW9s z8*+jhGE6rl;v*$?W}?8u79DMi#wYTg?A3U;@;7awhH>{MNm`|->obK>CLrZaEs-9YPVU}_n4g!UY zqvOM=I4qS?h-3Di@;dP^N(LN70DO@C9;Ckq>F+`M`|sG0!KItrjrj0kD~`AoVe;l#edfDpC|aw zI{uRq>Eb4ZvVRd|{nYht%Mf*5{(+=VjijIM9sFjLz2%Dsf<7Wa7ZZ42=(*@l0dg)& znyI;bTauW|*|-Z@j%{a9^7F6ET4rn_{i{8IpJm9jtnomor$(rM-8$VqG)L=;UOf=& z5s7s;h4+PAhaD(A!mB)4=G(8CCFRi`7GT}l>ZGAx6yRL z(?5o8pEBwJQKd{{exKm9-GF{xI-b+#4fz+0Vgga?OH70o74Lc?UtphI^MM4-XlPgV zz(G$_I1MnXSU?@?!7O8%J=Y6!28txCL(IjAsp|$f75$+Xf!e#EfnB@7754ec>GWtg ztp>MeRI#QQNCUKUm{`haR4$aNb-F@x)TlBt(*^0m|Bx)oyA#!JxfbEneL7Z7*ugXXh z{bzM#WO)25TVGrIZfSk(>C?>qQSyM?-s!tAOqSgEV{p}XY$fhw{-11k99dFur5K1S z8`u;ld(cY!)*@RkYb$JCdc*I3C_er|gSd9s>iWvk>iTy}s~b<3);2aKG{M(xw)Wi* zOFw+S3cxphC@@Q*yf^8cvA;dquJAIUMkY&>?yqLOK5^jU8h+An`IXS5p=x@LDFL4n z-i2He|0($gb(bVxM2~f`wxn2I z@G>hMfOfZKh95R;zJgyPaojxvuMKWl627s@Ls1Dau`(N&oymFqtMTZ(RJ)yKIs`ro4KF z^&4dcVSj#1TfSlon7xFCMO2m%ThCd@F_-d8*cI?Me7>EOH5Rf}xX?GXR^JZ-F*b~0 zPU@Q*gL!i?lu%SLalo5+&lXNU($m5emF~Enp>%%s0SD8&Zr7j1wZ8&Fdf~O_pDXb@ zvlhQ4>kmENZxCQE`*xRIU*V>wF|cq9l@rGSpj`di?D&^;QXO=0ncB_(7CF$a(~uqu zt=wep(B!s|Rc{Y=G?f0d3T}sUc-5u z^;YALpk=Ymv~|Q0z*fY|PZkX9!7yMr&HQV%;1*nLik;YZn&E0KvdgaTHBr5Peoh~T zEr@$Fll-1L(8&Y_a8*crvliHb;mS?Jbg3K@B>5J3`Czv}>U^fM6EQ|4Wjl`qXyf_k z@ZxdwImx+UDhc)1t>c5egI9(T^&Pwy8EJOL28u*6&ZK8?j}fPy#xYhaW@Vn@3^)4y zLB6&xTU!`G5%XkH3T9{!6>!`Jqh)=v`#?|nZm;LGIkcocd0ST|tF>?=w<8iK>#k8< z?W$JMMMqO7)X|&bYb?5=u_;9#EtbcifKJqtK2jR|#PDmeCrorOan}@^@mMu1ZxHCp z&AC{qhgna|dW6n-^DZSk;}zbu?F}rR0?2qjF&T-OUu)9^I2IXAYBmEgNX{B*sA)D4 zRh6Qp&O&^#COHZG-hbR#NI)qu4N)9r*N76vB&KHUNK<*%l(vo936(l4m);T6$>=tWoLND2hEms{!I*~rV)ELH zobitWC$6I?qMslnY8n1)=FKgq2VX@7jabm8MU~)&H2(4Z@Uu9Cd@* zlT>vBeN+rehp2X{RyhT)aMWSAtCABFSJHgNQ!^qJuNgrn=xb^zh1y30ODS!V(+iOU zLoLR%(lI+&G4sW#O&;`!hf;uxFDc53LX$8%HSYw_{6Wq8FzaKhd9!zu$fV2iC}_QWJ<)THNST=j1Tq*5~zDuInNQ$ht?P6?c$2G$h8xvJoz z%3x)94<>I9D&Yr}@PkVDK_&d45`It#KbXATBen3CW7swW)$kW%zIOlJS!1$}j2w~1 z$!9o#fy4)BzcWrui?{apsed%2E{-GS9aUK zE>_m{a0kE_4`#<{H=w6Z-z(Tq*9|b_N2BeuIyMj8QL-kv*bZ)cPQiMxRXaY^!+(m^ zxaj!ypyB*6v^#~H=mK4FTUT};C)2(38i;mw-zf%Q=)vh;xGf%CrQ!Lo5HR&cdr9m- zqhp@~@x)#NezXRqr&C$DhJAr(hX<>J?%Txxz_uJT><-LP;Q@0m`^FVI?)D2~wBH{% zUSnguG4LBt*3??&>mLI>^M>6jYg_^uSzTF8Zusmar5hNfw4(72?``DA6K)KZ$Lw=y+p{m&!tVXY3aU0{$&3C02DU*pAw?nCWVj@#G*`7WrH+5yWxbZtz@{B3S9FE(s z^^zyJoF$6V0;Fs6$z*%8R<1W@4tV@-l*A-Nmqy3!x&uTczte`ry6rgXsZf+~g+~I^ z>pHmZ2pqAs+Z)_A&i(dnQBbXpe}3-t>9~g(^5I(pX{dYQ#(4isD8BazievCcEam{_YOcr$>ifRsj1{qft?qWwfvc^JWftPd2&0FM5od3@?ibIjshdBfV0X7~V-F zy)h1eF$KBo*~kvjHw~@q#jw*sKxKQF8j^1|oh-?wT>BRnY;|qrhr+|m2s${85q>J# zvGk~g)94nS)76qy3aERtG)5v)y-LlqXCyb`;W7&U^U z5y(Rn#|M+v2b0zZlhy~5)(4Z;2b0zZlh%hQjt@~B?`sst^n^>Q!Z$imQp{zubvrQw zScbO>cpHXFs}4_BoC))X0wCQ+`_{9&+_;HGIairTvSQ3>5nygI{)FdYqXVm`w2%QI zCMrysfrG=b*7gRnD}DXO$h7*Du+vY$WrXOP+x+ zK$SJK`+fViG^QGXOaoa3k8#^`kcA?1p>w-!4c=kH{>3~#Szw!+O#BAiUSR)XjaBvx z|9SsB1KkM_YY)5K+vi^cj++jbJle(XI@vq=y|!UCW3G&k?o-mBgD53mWmOYc_RM;*PG z|Ib2PJ@B8eVgqI&%9pkc$K8lRjUKQox6RYCp7-tkEu)J_&+f3`wtMb(ik>`0!NoSD ztY-1o7OyP@RPCYWS*5?(eS5lle8AtteX#Ji`aZ)KE9QSCg=bmYvh2a2@173_j%Bg= zdCU6b2JX4raR;~f;H(OC!UhyLt1c`oR4YkEed8jku?c-|JK>F0+C(U!FN8)v=It~D72cX~|iD*KT|`O}T&RpZT3iFqnGSINLb z;ry8mVREO@Aj3?48q?hkQ>3QsiJGXAEU6K5eLVHDRABs1uMb5o=BsY2rOpS#2-w(% z>cXUy&yz&RQYe{&l+#o}=c^BLw?zChTOhWE$CL;C#|VGF{gxv?e<4cUblO47?>U=l z$rz^Vt8>}$&sB?iZO%h*@d+T@Q^;3DL^)s6S@-u7W} zc#pq5R~c67V&A|!ld!qipBU>}2=BuD@fX@Qk8J|lE%k_`#BZ{~-D5CP_!pc=&L6C5 zFu}@Zr;=1ayC}%7oOLhPYBhp>OTUy8xSLWO20FDnJR_aVqL4HzqmYMbTnw1`-Xuja zGQkQRs8*CMIcdR5h8X393@TaYL$}jzyZy}%z3cV|mAgkb1Il=z87su>Zo)#D_nwawg%h5YK#6@qC3!w8CQ+QbZO^bsyF zF>1jnObme^ePWW;N1K>hvM?WWJWOCzBZfHw9ixeirt+p`bp}unID`_sXNqsh?ZE`r%(>hU5?Q}MoW~4NB9krZ&;0f3uwf0v$-r} ziDjGx`iBSza5ilhgo05cI7T;k4Wvpe@P~M7f?apI=MG+WqAdfqR}a|sFDGo!cbxqB zC=X7(3d~;e=>9Bwl3v>%Va_{F)Ac4WKfKE{>3CkUE1R$IxdS{;f9MsMlR_ZImn5RC`}mdWCSfLdw}iU24+0fwNkMNdO1r2Ia|={$RLvTJP}@1E2PqEx;V z13*nu%*eP>=fw@T7>+J0_P726~9&>|M5tu4{f(uagGLRzd)iEw6 z=9I=zrGt{Lzj(8^zXLtA_V->OEn%zBfgdA9BNy@`8@9$yNO4#!WTL^5A+3k0`$uhv z8lnCbYpD{paub^eXy_(1mxjXO5UkVVH@lnKlb2ijC%c>VxwE`@ACaKQczCMHoO?k(Da?emzq@r{Z5`}bui;BYBBb#hx3``P@1Me1FyBByJ50!@ z^Om*!+baNSSqn(Tl*hZTwzuJFcnbWq^~-MPfAtfJz@3g@#bvc7bVb#2W80*a-dtOR zn!oHGKbM`InA+LAtR`dcw33wkW^BU)08pOFo4b^xmZ`-;+a0>NPb(+x@L@_8DiuUr zm4t#PX$2y)@f9$sp~5Tu%OR{Yc{a^m(BnM0h@W;itJZDc;l|#4JYNVu>5gaBA##WiZ^tH zJ0HG(eX?xk#rE8E6ISu z85AO;ZyRZYBQpB7!O7@ogiG)!f#3RAgqPvv@_897_x1BK+Cx4y(_nB;4!3_U&EWic zvbEiDY;V|`Uzk3V!`HhAlOs#sBPNG;DVNEKie)o7vfPMFj#%x<^C-#|UMsrS*NSfT zwg1B1zBZBVp3a#V3BlS3qR!sY(edHwp|yK*G#gT|R-6{B-9uuqR*)L36(t92W731Q z=@EorZP4nuy?lZY7R)0EqTqikK~SECQ#MO7ak6&0eYAHp5}B}$em>nhczHN&DiNYc zK9x|4-Ww_r_9=%-Xyvk~gi>%MDiN)D29=08H%B4!cDQJZ{~nxfuH39(K*&m1dvT$X z$H?Up_uO?AtqFQIsvq&&<-?wXzIy`<5D@vbphNf{L${xIC6ix2b{8`U1{PWq-9Qyf zmXRZx2pLP#4V`RU^@ca3s0bguJv`byuucx&9B=P(6^8bR{kX|sfpJlzjXg(~??s`K z#p1!v?oI*-QI<5%XF*di3;bx|hRl;4UTW>{y+Fjq57y{lsfj2q%2NwtM-#LnwG{U} ztH_xl1hvo|PVsuHUOIy-KNy^&AHD;>`R>9}mj0@eP<$8)Y03{esEM$=+CBa0@Z|Kx zZwFhicQ>o6l2VV%ZfLEdDORK71)Ut$!(1ti4Z$ge*ZKfQVMRE_qRB^?WP?m7Mi^G% z*hXCeSoo`2nGEA1Biyulone4~D?B|2t8Q22CL$|)ePU3~Pf`o9J(ES_CwnOu9!brO zlf4O;q)uU4G0&f#s|{Z$^8${;0vJbr`K8hV(_k{lL0a*2 zieRoWB2m!EfY^VW2;ko`bYK!xfC7`9`|uAQqBiUUv6EonK`FYB2`R?2cW*5Wf)?A$ za&q{A9`0$erKcV(NE^=lgnVqL;qH{l7fvZ?1Yf4ux=qnfx9nahcw3$tEi&x}!4%S% z^anM>6*VjEVq>w`21||4#W=;H|C&UbEhT)16?mVg5 zP}A5FEv{Lz!5Cl>w^*s5LrUA@3K3N5M!S51{EgPRl01%D*AU=%k_?7!TQem+sn(KE zXs4-9iI5nom}>9}yk+epJI;YlY^>*G#^-#b| z#*iF#+FpGCe4r;|Ah=GD+^X{ndf-Tn$lQ=nZG8fC_WL|1sNL&z9F1&`Mr7QhD<9-0 zZsMIoTePxMJs+#5)W)_C`xkF%ff_Zhs;QPLr(4IcEY{(PwRiN>;lVD(30{HSPs>1t z?VjFwNg1L&eOFOQ3!I#zEvz&UfLR{EjNxPS=nb6yC%5G!cVc3-^8uutDuHA7TUS=B z^vK5w-3ber@q=Z?he&Kl*~f^faLPe~^9{X(DaRwbUdOtA=hJi6_7#su(kt;|s!9o- zKykF}0Q?Rw>(!7=qC}%3YAYrQ;WI{5+c?*1T&oi2of!@2pn+$TI?i~v%A?+S-?2Yp zC)zM=qhPOoYNre~JhsyhUE`FGbL^VCl5*~*7p7e;FekHcMN_Hvk$S=6gwTYW{mS1(-tR!%taW!Jb5Qp zO06v6M-)+pGDYb}G zK{MTulJ06|x^c{vRM{XL<@KwYLODW4=7CZqDFwgre;^kR+oejq*7r`|A(*HIDI;7uosrYhGNXtgBv`PjOC(Ft1+s${dY}3tufJ zy>{s<J35^5r4q%Ou^YA0j6_ zL{4~!obV7i;URLuL*#^q$O&Im`_vU_~8cX)sdmUX=Q zzi;-AcX!x7VU+ksH2}i7P{#g6+5d3f!}SAebtTDw-Ny^(S?rCj-7?~Lb9Jrg1}OsK ze(w@uCth!D<6d|h?uOMBYjq73&VuPQ7l47TuF)f*q1v>sS^$PE0=$jZJ+jpBM-P3~+uv81#q05e~Y* zd;#mPY{Fs}wdq?hCi!DWk{7h<%ksCfCfAEGl>yk3Y&C!^q1~h=i@LNXhy)K2$a zqmXy{lXddjiG{zCMrve2K_Uyc|K#A2YgceUMQZ+0Y5RQs19WHni7IV=h`ONlwHCsK z{Y`T>=v%?nhnQ8EDBbnF%f8c5?ZZ?6G~;2L;$=Ej9?G zQiPY(W_o^mAGPkU4-XDc4-fXXm)N(1VBrhkKFGjA8_KkqknFZ6qsXO3^aMU>O`1Y5 z%#EWCRe_gMil$afgg)T?l zbfxNaCcvj_N@Gq1qPb+YHZg?6up$?#SQ-gYLH0kZW|%7NfeMzRf_b!XY7{X~@oU8J z5V@wT_6-qAsD9;k%0^+aZKVp>u!X`=?AlG-Lgr?q8wH@6Rx$hNNrd!?wACY>gUoJA-3rokmKFsyyQH=TIp=m_1WGU? zjSeS~G>;-jh?+x@6BUZm=JEoUVH3p=$XH^G84ZIx%_WnO-qc!sKL`Xn2PeCds6L+3 zz7$6?Vj$=gxqx9<=O8-2-|nJY7G}D{F|cq9l@rGSpdu}8$G@x#v8#`CW?;J=-Bk;x zWpe787`t)016ZuH4TCn2j4VduYi3WfnG@7Zt>A@D0q#V}DyGqO@s_+ZUNnOp#lcdOU_w-)BP@98kT>R;!5KUM;VkUUO_4 z3x_2e4W8_{!OOC1J7AaYC&z0l4rqVzG8QlMIB*7^@tA{8<(T7TKG~hknpXUIxH4f0 zu@tln=0G7h%*u3Q>4_{C(;^d*L4%;8lfT>Ie@4^WY#p5Jv27;Q;upXK?K=UTEp4aOv7rZDr@OdBflMf(2@oE{ljh{tP_B(K%ky*-!YO{Q zml$hxfvo{Xv%eALc3&Ou93TrbM1dpL^cYqJBeMU`qE+ zw%J;9rMbo=Rwk$PqVG5}nNqne#+y>??%hr3^116R!?^_;bFc5-G}d8qpJMzcoKvqs zM5~3IKiW@#l*5J|5H9!#kghdsFL0ZcQsUgRsSqjZV}eG7bPMmB>#WYcWh*x;FJCT@ z$=1!v+R6f)=z?3>JJ~<{b@zC_wZP`s(EhQwKl!*UPNnN#DROEiWwGTpf z!iQ&W8n~#iL0>d3N-Yf;+?z2?#mMa99D~PCq8C%mWHma1dgfqvcP9;3lKL275jG+{ zcDjE5HlH4gVtMqKirpi6EV})5(PJ^m`Sds}cyH*j=ur+mR!Zg2I)ez}QpQZw)%} zhdsM*cjFI-=rGZFapwl>5~GT z@O^Da@j2?aU3Z{Wvim)I86%6rn9`mTZrg*zYaGl}Eu<5BD#t>4CilL{I$Os_TNZ{W zKiNIj>gfQ~Kr6qK`(vbSh&6~F>bs|jCgrLd8$H-Pg*iF3_71dqD&|EER_?8x_=vX^ zwkNJ18rU_zk4evvz6E)4)zd4cv1l!eUftN)6PCW z=Z(qhfYs(|yfF!$q8oBZi{hi#>a|+W<-5hjUauwK9qewilV6V4NgZw)f`lq89(q3Z z`Y-(FW{KTCr+x(kd*HV8BE024oxYEQSXo+;BiPz|%iiv@ZMNE6K`s1>-W;cPdxJ-$~6G@mY1<*5mnXTxa?3xE;wFB;BG512i2 zgS@`-;rNATJ&f1q@}_JK*Y1idC%WHehiQF{y^g=+kmA^Z&#bmMuVLX2ZTJ>Vf)B>f9W$h`OKUrXhJ*SWEgxz641}Zk|`fz5s6g9j9C)O|;gV@vobP5OXpXcgm?B2U4 z?}2u+bAcsc>BV!LUUlY|`ks`$^Z%vAL z@tQ^9?oB#)US@f5aoMDQ*SSo(1yrN6yMH>?AdJk8udVP|s`s7l#j8~^25K)LH}U#x z=mqYj=d=;oG}h_C8Ti2&_`w-?63)Qo9fCED!h?74Y`udOQ)jXo%nLlP6i!W`M5QcI z>YjyQ{CYDpe`OZ>qiS@rRN6ZJYG(a|pgF)4K`j>X?9uZfzSx{#@Ru<0lD1dU?@{9A z?)(}>?@(HLrbHoAT*`QgQ>03KoHHQ0olR~KN@88>C38`zppP35mo`r5A zgt_8r*6<8Gd}-15lasxF!|AgrdnrAy(o3R{$ZgE>sZc5uV2e`UeU5_fYZHl=PNZJS znMy3D&!c!U31;AQ=f&aSe%vdN--kt~ZQ9cCj>KtR8sbw+rv~Jg)2|1o4b}#&p45ax_L-|Wal$b^nSCaj~MPxlU99!{G|gea0vC6uD~hDwBe%Apck zxhyK76dZ|4L~EXz(j_K`fe2}F{c9mfOp`+u(WZ!6I@12eDkk*5CJCs(jnoY8pUT=^ z)>5bY9vdGD9O?C)Uf*vy=;sSW1RDG#a3p$DKwcMpdimyHduxAx`|#iwW|89{zzlt5 z4W$%hP}&Ox;*fgHjVv3}C~-A9j%NW0vrD@rC1JM_!pL5Cy|lJ?q9AV zMk6KW+awIHDPFHpAWmt#1Ay#yyI&_0ekBqoWjCU&5q1wj3d@PQYC2Kpy4L6!{!9SW zT)xu>lojT4;(3mYxsC+&%qga9KVv}y%Et+mF0E1ppVmXdLF|(3ug(r>S7)s>U5)rjVIUDh~AdBpb8PrZia|Pphh()u{ zLqUm$osQsH(h8<{@u`e-GGr!Z*HU0}?k?D@duZ1ztJcG!baKiv>-apBoH8N7<|fV* zzliLDDKOdhY^^TWOJ*me35A_ri;NFutKs|=3w3F3zBu7lkieAG_Fu1Ig$F2 zH0bt1^0!${JHo44o#*N?C}*_{SR}JlDH|?dq_Ti{tqjPESrAj}g`x4L!add0Ug+JE zr%wjqN}Nk30OV*uXAsoxzvDPIuh*pDJRyR!f3a2ej5Su@=W|L^KkIUcRoLljqDC6o zO6-@3u}FHz@iC9i6k=dJI#bK09G#^IP1Z4p0d-PNoYX^*6RoT@k_0RwT}I7I(q7=` z&HjE&`x4i^sFbS=R7Km83RV)Xap9J&FSR+Qj&WU6F@Ty$1;E_jJwStt3<^}P!)T?E z3g3v65`Kl7jc3?yxSoY#c-#<1ef(cyy&A7Ry7B6?y?zre%2YGqpUl0u6CtP5Ol6cM zH@ml#j*6@&QkCEt#{d6h1D@u&^qQ(9Z*62~gRrzkrANNCi6S(_Aja~{D1v)c(?C^K zg_ZUuO)F(?Zw4Bvhn@X3?d&4jITFA(8A2drWAoM3=34VfbG6CTo@=i7KkNLG!#A)`ElZmx>)0(~E7cP`k+EFQ zqEg^~E+WNgBgl*aBV$;zJa!~@J75I^zi(eUF)Lkesc$Isr4Y0SmLq#13pyzXcMBZ+ z*3Ql`{60M1dX?rDSTSC}!s%>xlnd8_E_EY|W?Nm$cn011o zG1WRDx`G`!8<7eeqkPz%J}m03G*$r$&OZ4ad*F7QZ0D5{fDD<6CZCa~$nxf-u%VzW zveWtiN$XY4pDmB^m`)xT;UK2;-I60R1bCZT9*gXLj1)PpEMGO3P{C*PDG`LQz?Qat zIo#hm-P_+aI-aR~ooW(Pe%A_IBQoe;h+}|V*rBy41p*wZy{jYs&X0%J=m`w!7giL9}Uu&4dka zqSP8YA6^tF_XLf63zS=D7ajXDw`H0wICo%6(S!s`*blNKUg8iICT=qvzuJgXOJz}% zHBpu%8st(miV2z;8#0f_Opj9@Xg`%76SzEylfaa_lVmYG?${jL+HP!bZU3~}fWO;6 zSH`2WS$8SDzK@By_?awjRODH}IN112isFMtjraP_Cu{HJ$z~1ydCu@#eW@-=V6vi?DUAkbP%684pQ5$R|OiJ05J5IMBAj$f^^S}8|wt@0YH zt&Lpy39CIBx$-)zt&dh21ngf}?P=`JYOb)S8bV6=s43})6?Qt@jv=nZaqtZ#%SDVM z?jHdRFc>uF9TV1I4^saZBK2di@B)%Q7JHEXzcT3`7gf;!d{KG;?E9>B0ldw-(+BXq zIy;>}4s9q7q=0S!i%ncV5CTor5m1RTdIAY@6kUO=TT)*jt4&O2AOV)s8^mirHF?Ua z1A-w^IP_!@Bm86w8@z?ka(t1Gnm*P3(gR`2m^GmVG$0|y6w`t{XhKHRguFaHe0|@v zA!?tpH6n4XNJK>vaMA&UCvZ)pD@#oKy|$DALf1BgbRq^~y*!AgF%TQ2bTbKXnL3(8 z=^R~6a=h6(n?(6s-A!^j7!s}$6*j0siEc?nQFi%AlSGJ<)Fv%ayGye5=_!};j@uYc z$51+kt}$$lVWK{E$`(R6jz96NCAe&?2TY&bf* zt~VSw=zr*4a$b*;)PR`npj8`1D+$<@(|1a#E0A=?R2DIXg~Ioj?iG-9(WmjbfWm9^ z>(=qX-odM9tf&@`r|&W?9dBk#h-=S3o3w&7HJ3-zBt){FBxrxU&4- zAlR%mVsE*3r&>mJM_;_qys#BNYwbDWQRBi?P;tlBT2xLGeVwan^CWC&E$OugF{qHK zNQ65ayVIJC5c_wL>}fef?esAldXn9VwB{>CCM~Q>23fRY;)4qJQZyb0+cX+W0>;x+ z7*7ks*hq!3kp^S5O}eHu5l+HLd**-NZ0#e&r*Vv+)fi_RKQ;7mJct_xh#M&zJv#l8 z6P1Y5Gtv@RdneW}hkHATD~OP}%IL$>iS*&=Sbf--NFO%x`!I3x`Z%Awj>(nf@n!mD zQh8=6>$)kamNf82MF2=vsC@T+^M`$kHQ;o4^38LHeHwN=r!QL#{4OzIUDA;59Go!H zTVj&d!1pjyYTgJY)CM2q!AHkWQWyT2HKoXa*WGSQ2+5TNmrjouc$V3VNAUarY{=8H9X4;4P=KeMjgB*2MW zxk+FXG1Coa`@u|iDwk6yy9Yb>>0(OlPcbvyXvb-F&6VivsfGJ)iG|#O=zHj4C6an<6DJ7DpRe@v@+4r5SOAc{5KfiDugZT z#zHGr+W58r^&G|c7QyBl-%{h_sMwX>XRFt>mNHc9RF1S+k)|-ztryY}Ac+}SHLg`I zs}|QPmsN>JmD7xD@3lJIux>f3@TdkYa$F5guM^s0Lo=hPzhkYZH*9LMGPWX%R$D4^ z*VJ*9RSRoKCm|&j%=cfdhXct{=_wN4=(gcpoH5#lKPaK@X^#8XC$Fr7LmpElM-inK zO$#Z}4K6LuA3dhTLw5TwUcJThULn7|sbb8;)5EK%mY(WLFLmcxuGH?Ngy)DCG3B<> z%Z!rNN?n?AiLGXk)XJF9Y7)t;zJNql_dbbL#Oz?~b>sj7tJU!XM`DJe6{P6weShF* zmY_MyEMa##{&i}J(XL-$f)#);aUR~d;dq>Oc0jb$YSXx;Ny*D34w01C0*lg#v`l)W z3}t>r$#hgc!_lnoCQ^`Z`j-?b4bS$r!q|z)TwBBt+zlA*U`jzzd|znQ5@7)+u`|Zn z7!eN76P4u$Yp<7>`RW2&gE2GAKUCX&b-a57V^*j9$K|&3Y1tcgI#_Tu&Z|r(>Rt+6 zO)^2#2tAn6czgr!d0ech=^}IlP5_w}0`o%|h1OCC995eN0#{O#?&&x@0(s9T@KZ@* zH$7xGun4n5c0=P65hPMKMxw!~Y>Z)GUpkCft1^^btCrXpN>p8rv~4#?aBo$_%<4^S zK-0t@0|OZy-X}4RW2tfIE`zWb^kx#^YU? z7(bxmbqPr?wb~3NJ#{~fCC({>xliI;8qUv9s7u595k$M`;%!j@FSXii1-wF}JfE0< z=`!5xF+8;kGnVJ3xEo4Hb*a@xlj`K4?p(Ih@anE4JQcGhB1amsTkM#)XnBLqRIPX49PFK(?!+n$JvSJ% zQ);~2J~-WvRiJ*3XYDK7WCGSbw)&+W-gl#4T>~Hx$teGu-|>BKe#duu^4-YPkwBG^ z`wbPQ5_Lr^2yf2yJij&chY|zCuCOfFLEDxEJ0jc=9k=Ta0>x=0dSwTJ)7N}7xbI60 zW~F-|^>`=sHa4M~8Kt3{8|L~nIo&#>@0-$X&`n9!QD`ygxD@Re>XzAiW@T( z*%j=VkigDYp@g_@s8B#y*KsXfRL?JG!rgQ+eS93Bu#iq-Wx9y2QJqM-Q3h?nium4n z$8UYi5?IoT%}KA_+LaGA{4fkeF!cOjeGvpN+r4>$pXZJrXyG5QW^xm1ErnY`_1BG) zp!j$vOoI-sgTsRt`-j^fXB}S9r5yR4FC?RN^FlX`SqzzT6j~reIN{0e%$+ zbQ1YyeO7BdnAx$dv^u@rQ~EGZt6TP5*G6}TN4%M|&GxiU;MYVCer3f<^8jgeGueS0 z9L_n(Cx!OYIMgj=KC;hu6I#ti7oUbvs8yY5AF^%(JZI28pXzPE!S3nKi&!0Mbv)g^ z0CA61`qabwAIBr1*6%wGW)pM03qMV}pH)N&?*YFIXG2 zdTwu2b0&^$>1?bz#`*gkay$(aXR3nNTD~()ywZ!wF`g=}m(k0o)|;ix-()t)cn>6%u!Z_@>rpqKKIK zCMlzUNUc{!`Jj#Hjua0`ESjy-A%RDeQaGq9R7Tm5TCd2xg9%47t{;jP&)5MODvU{O zm`STIj(2yrc6N^U4qhH+s4h&1IU|*U0VhqGgJ96^xYJb~oSg3L@5OZoyxlRwfC?D* zISeRu@jj~$5*-GVxtuaSz_xjnzz1wMv&MBPij9Cas@PPH}<_0OM>Y4$97gcnnR{I+D zT!qhyFVZ;Yj`oG2@kwjKbp27^4+1gUlq3zP$d>g2K-024k6?BI6P>~Qw*-sGA?CjIFXrjN!a`J=9yD#& zlBSSbd)C35*Sp7i+dmzioSF*SUAJ?KC0|-^4o;4Cw+)4GRw$eCCZn`RAhGXmy^acU zJkv>cb#?8#<_i3`TBR<_-hXSm3z~f>GGfQ8TBygZb5k=M3=V0&os-BYYPr zf5W0>u10Vl+`&;`kYQ(c6c`#e90iL_aU%4cX1HS)*=5)Fn*MOW&d=$?AVZ*Vk$HBU zJ3w#}RDfGrW!|fpP6)$sk{BRAePEE2JWfhn!K79zaRZYW&g?H>lK48)`axp<9{pzJ?X#-kil%DLKn(#HvtKHN5TN)Gg&gPQFh`8qW*5In| z*lko#D%Uv~ZXz=fQll=F5>lgT1|ikpX2a0E=H2SrllAva;cWA?`EF$uek~;OW2Y!_ z<>YD^SOHLR2#TAI0-|mAuU(Hi_jK(3aA4zh32*++gSIkZ;t5O|JsY!^0@}FUyy^}4 zqCVaD?)x8jNAcO}O7wNLxuSeuT^Y0I2xr`G1Ai|jckJcnpvLXcVksELjs$+k?z_R- zcwGte8SCd-qPCX8Jv>pEPQpBU;C^x}k&o3x!1DV>^s!ub1pG>6c7el73zFhu^a^En z&#y2=nwb;F7Rcf)M=Ap;r89|8@|qOR&(V}%IDx@!_uTJTB6>(tJTaA-kU~jcNxcyh zinNCP4&Bw-fJ#u#5_7f*G(P-NW zq@FN-7Q)a`lpRdsDNM`SbLFwr<%-uj<(Y!^Ha4w3>;o6|L_tx6BP7dE3Z|^Pu@n!Lc>_=Frm6h*Te%LqY(>aY%LB2ga+C9(# zs*e!dcPlHYpfn{-4%wO#E(GU*(LpeDtnc!%Kr1}K_18(8w)=^qAYqA)N@gq^N6?}b zl`+XG2I7^;OeE-6HqRi4nD{84gFEFQk7>bEOBr8yc5%SVtpt<#^5cei#`Vy>i2sLMHkV9?Wp)C%yKS>1;;d?0y zoJ5UTCKu!PePdhC&?Mfy;fxV~XJ9j9#NiU=GSk7q5=JtK8Z%B5CeW~$aSL>I{%bI2 znK8EN?asoTYdV-+?*1@QqukXY_5aRp4I>Ph^@U-GBa^!;#FZ#_O_-=r?1oUqxy;MK zyn;q7&b$&F7u_d+zqfnvOXk&{iefXn)l;xbNxqd3!0@8${1!#HbU7@eOt^d*Wx|z9 zDKiejM<7eeXlWJiO?s{pUJKD!=D&ES1rSRB5iG6ZJxkG5$_*it_PxFwO!zb4YNiZWuzc2D$dm{tw09;i z7@|AFi{J1fE>k`JDHF9(FcpL~r$zP=z|TQG55!HAlId#ooAcvM(X!1={5{zm!E^aS@pOE3+d zaYPNlebx`iy)g*|!F^H>+^KS4BC3IDB5+Byz`a)r8SWIBrNWiXEETS3W+@M7X?DNH*-0wUl1j4ls#Erq z*BaJb=G8Zo_nkLGFXBY6^*G&|UMrU3R;Ck{?@<4zc4U&w zk-n2k=>gNL&QKRPA!8tYdhcG}myPr@(D`K}ehIx_9^&fNj7MF%j6M;pAJ`wAfUTpp zBWRYxdaY^#>!%)Btw_)`MLbu#o|f%mN<#W{woE3gr3IGEV58O(QM#tFxiY&tvFKmM zIF)y|r=E_!r=EV{IB%EcN!u{XRL}y|!BA^!Mpii|O!< zxSOfRFI*#ge`MfyqFc_!=FYZN=I-oW=#Zt=3qaEhK? zhUcuxF2m`3dYO^WQVnF8ySt2v)4aLUn~m=6wC5APwM&7WduONjHRZ-mFJ!u})0;1T zTbFG9-rv>55PX(5b+M-J>Yh&P#>7OU*sdvlN0(7?hBtK45i;H_U2Jmi_>L|I*{6L& zmxJ&{@8@QOutn7}85L)1ov+|*0sDKc+h0){`8&gLWApbdmHaIBPKk8#85JKA%HM~C z@;Uk9Ba)MoQ9g?z>FyM6@6(3;Zgu1F>ig&EMb_skpI63j7o$UqR#r&UDn3+MZl zXV2DF*PpFlTwFZ6a8}NreYes2zM5He4XZwT1~r^#-(9S%JX_5!{{+i_cd-TqpFLaN zSkErKu9b$qeYgJola2Ks(rc~D;jI3!)?D5AzPY-BY2!1?uf@tQKUvGJ@FdZIxo?0( z4K>w#7j~^Pn5R`)VyjD1RYeaL^i=jw){)=Sc5EHODy{taNQFBDC8AMX=1#drta zt=z1vyvJ5oZdxk~An$1Ra8aREQON#2qtKctw6UI1=!qz_vYJt7T`4r`C?`GhYhTUG zuiT@VZ>;9e{F4dHeAK6nc%L@neOg`nKDARD)R&ELCla)cu@PcJLx>Bo z381^ahH@)rt%Mu9TlMP(+lzg9B#mooKy=116jYm?u5b`calFM`4n z&%e7UfSoDF;Iy!Fr2sap7AW(DV|hN^EI>9_ijc7aRBU3qF8fs5STC@#o{X}w%qW(L z{u0O53L(&Hkri7lvSh0TPP)uO=S2#&iWF)WDdZF>G&NdM{$#sv`}w=s?y(GRHriwB zlQ_Jn?8-uM-6N`6?m+KoyiJ{*-qF~+LGQTO6za#m(+m|ui|n%Ndrf~hVCU!bVYp1f zTc%7!<+)>blWI%6?andGGpi#F+DpSAxw=zN);$63WeFR;jEW^J_zZ)Zz5SjEduM9B zXTaYH+3xA9RKjvEqhbNOy=>GjdaIRgvsb*l5zR8nPkOIS*uIbKp78I{>ES`T*S;B} zXJe#hL}n$mh1u$7;P)~ueoXIGTrj;?*V6P}#f|v;F?Sq*D{tMCs5E`c9&9ph)dSC_ zV$q|)EojYy{mZoE!2;=4JlJGe3m)0z7h=6bh&y}B9cuP&t#+Ub6TZZy-B8wACsFB( zwbY>ry%$zGMx>sNg^m%i%US144Kd4ETIe~TRG@>ge#Gh>MZX#6eP{N-^lZ5&huu@^JLERVxF)E^GM#yci_2f@>-sj$MPuN z%DJA(*TUd0TyETx}NJ1x%xEMA98hLvi@dk;XJ3c_$0T) zdTxoQxg|DoOMIu4_%FI;xI=G@FV7RBgcru-JupV{z8K&0;?BJ;?$qOAI^Gr|d0LF_ zWl_e%qKtP%8PAF`UKRJ!qoRN}#a($)B)lk+!hqi!1XB(3`{rQpcRaI>f?e?r~sX(Z~B97C3f!h7+82 zab|ocNSN`RAX$lbqZ51tRq7%vSz)S|VAPy)0fxUPefg!s%)j`eKBZlH(M#in7d2Dj zvMX%n{$F%)gq-Om7jN>;F1WDy$*D*=mY2BLN>-TRrIsYbV_s?TDZK0JEHmm({VL0h zzJ;%`rh|Tkudk97W_xuNVqlSrE9~r7b7?hebk&-j^ktP%l`#d>E~A%7Rw$#B;GMrC zeT0G=v(-gJ*fA+R1g%0D9YnH15&eUPYZA6^KeIzpHaVqDQu@#|RxEpXMuWP;Lo|j>rcXNt|o)&7_z-9LWwUb#VyhtGFUi6(m@ZXF>UKueQ^icNeIOa7} zyqlw5>%#1gd!^Ya?yS_o!t&~R(YFRHWdPE$%Kh?Y`9K`TRv@wOHR zSo%)YRBakJt7g9B+V!vlYZ=Uk#$fQ?8no)=`HDNfwv_8X^UF)w@SR>^@=i>aoe-E@ z_Bzv4ZHAYc(GD2@R#VREeYo39!|$2gaHipSse8`p;%F%`(o}7>0%QR~U6fRRxkBLV zaoW)M%mlwF;(u9T&s43fm?wvGhXS64KeHF@R1BJ=P$yQWtT<dzq%)&lyk=FukLPZI``73={u*y# zzSe|sQ#jd2y}Qk-UQ}h9g4=~o<$HUZ zD?EIP-RY*_+6=X(W;C0*@>b_x^HsQ3%kDazd_`_bxg-*r%O%k+S#IQQxQAd*N~?BL zt4-5sMr|~5ol%}n*n!3fIoFLw?PZEHjatOyQlmCp+_5I!@Ry{gmMDEk+G^SSJ%?A8H+*Py+yhO>oq-UaI9 z?TuoR_W1j0igNb$*6ZEh! z5)tqG?7usGxz_wt_tuC!!6dcjvBBOG9^t-d&<&V41)gC9J$i2Sl6rJA&X+jj@4HT& z&iZnibu%W;UcYWc!aLHk>)f-FrA61a2hIS?!||J=v!2#O{;ZB=3c3?ZV@tHiqLInI!VCd%I2s95PZu6p|Ar#bA_bT!l`QJ>C%^zL+b!!@qL(( z5s%|k2w&6Dd~&!i;(jlw1OD1hYaKi9?&Q|{G22sIZF|}~ZnV=q6~ag-y*}Q%KJ^V4 zct;#S5(g*G4X7(Q8fTCSp@8B!2j`2N>l527Q#<1=b%qL@_eKPqjea*9_hzYSPV&JS ziNG@ha%9Hh$PB|V$p{?fgKylExEr~wOiF>mn&z(|V8>m=>bUDL9TWD-EFYZXzQpAi zbBBzlXucnI(RUTgW85$vQ^VoHQtbVS+fhJjO)XMFsQs!;rSB@<$1FpAOlOajkvqq; zf4Nvm`*#gSGiVe+F@ zS}pEI8*BCc3y%s4&s2a^+PyO&GVH_T7z|}!ln^FUYR%SN7CJMoK&VXUT?>U7cs+H& zFax&>3y0Ij&B8)rO0AhY(GYqT5%R(g&wmwC-kl(FvhA5jds9XFGE!ektum6IGL}1% z{^FQ3TM00RJCl+Eqm?Nm38vI4A`K>SGD9LPRyY;gGbF>wY>i1vho{HeTPM5Qua7b$ z#3UNdNJ>m#V1}d!3z8uwn%+i>XnGs1TKw%;s1Lx(iiU|Q)0PXdL0u?>CsU9JHK>Ke zLF`$EEQqhu1VL=9oD?V<`yxa@Leg2wf7Iw*3V+ani8305`Q^mEM3pa5=A(JM2LhiF zi)SJ288Nwxs5d1{EF_gt-V$ zW-iHvm@+{z4p*b3440@srqi1>bv>65z(+)=@J^gO%c$r zrBd>lZ0So7&j>YVES*uCcPN}e`;%lB2;WPIW{DbKpkzjqc=v*t5r1bOml<)mgjhBm z94sM}C2HJfnG8BR|24>CGsafE-5E(^Q^4$UvRI-u}sW_J@gyj`9VsWMjHZHnPUIN>BlYM2TqS(yjF9o~O#VDBW3`P`U~GNp~v7lWu9tNjKYU(#^1$bW0mdx?hsDqF$&gLG$U1348GFDIV4 zW12p?cWd|P-ks5-I|YkJx4gNdJEEEIdncBSZXvTq zFV_Rk%XNYCa(&>uNjt%Lqj|x3ci{%-8U5hAsX4-VBYDDk`L1wYjxU@yk~5t5rFp}7 zcjXS}-3Na-Zwmew-e?|i-q+$1=iMWpIPWf<;=DIj_9ioR{M_ z=Vdw0dF4Ilyf4ai&bt%eIq%M$=e$Wfba*4U&v{>k|D1PU9O%3|^Puy_cA=XdK9-UQ zzbG#{?`v|S^X|-#&YP(t-INf$tnfFcFP(SC&UD@#deeE+aHsP|@Tc=eb*S@-d(?Tw zUFy8zK6TzbbgDbZ^{Vsk#;wjP=2z!sTXuTcrk!54ZKpR;<4$h`>rQXx=AB;BzSEnI zfu~pA!qdw!@$|B6JiYQpp57N_<>}ptnWuN>cAnm(ZI8SWEIqxi!qn5dFSefEof&(2 zV_SPp48%gN-(eES)&v zIF}~@(7J_f;&1a5SE_h)5|>D5eOA3WtHmmxAzt4oh)rY4$3tbHG~>nr0$ch)!BND9 zw(r4NX%h9X`|iN`lp^S-yyUw%t~TeL4tULTWeF zC?T`U{@;znu3^Yb<#iQDCM2zkl_(*rn`#u0)MGf8E~ghLXvE@l8GQoiK4A&{*W^B9WFMmpEAi)8c4NN9xu^3h8Ro}X@H;F4NwDnbvJMqCejs>%Pq?j7tL{z_T{ z_ks$+lP7D|{_fU+wRNy#y@oI0iW%QYrGk`&u3fL~UvoK0ZwYfzu2EA;S;`-*N={t1 zO4DtW(robLmx*dT{iN0=7nTH>5n$wsgs1o~TgQ7_FZOqT-8$LXeF^V&WCexpF?R4j zyQkp`4tOjcHrZ@CKg-eB_kw}#$*i8DbJ~jxhA<*oN{xuN+yj~+7e=8P(<2Qb0T^}v zZx!4BTMzsHp6&mwhy8y)_y5+N?EjGoKrrYJTLajA8aCAjU>9 zLZQ}pAQoR0u~3)xfnZFXU?7em!9dCp5e>TFwm&(Rx*D6%%nYcBe&^kFy5~+`z3Vm- zjcS00OwjUsj^(zi@_wDy7Spc{#)?;X*z{A}^kixvwYg=NW|N_kH@XNYir@-nTPO6- z_Tka4wYQ@lj%82|JLq~BKBAXvU3BcrAO+K8NlPjBfMC-=uu+9yy}g|m@uu46CQ&&T zj|~eyD*AHzj2OIk@bWNbC&1 zF8Q9_bt<}T(kI(sm_!=knt-2altdkfnIiE@(v}Ds$TBs;*ORm}iuE{VWfWfNVX@7q zwWrNE`A@n%z**LcxsXuQ&SD{7L=Uhb>i3)c{-$VUsruVD)yf{FwZ0|KYb z>bJ}Gc?(KiUb+AI*y(zH?~i^k7=F6Gx&3o_>&5oY?#ov{?fuWs`>ziUkN)@g>FmSqfRR`ESxV3=PRJCO@7fF)MjKT?usmzQ>G`%b6087KS*4K!eEHlWeHHQ^lfN*WgkZ~%`f z&S_<81C)}}G@DeKQEVrbrxP}yG(yg`qEvgCVoIqNG1*h94Hq}6j5mBwPng!Q-@(nQ zbaxiUmBwagYhP*T0ymx++xkc0YKrYzbA{;`w`CcxDUDBxE1H(&Q6apY1p|`NooVB< z!JKXCNNodBjf&stb*F>s52}SJ+>ei>A}C06gte^t{{tENYRJ$es1Tts^I_rpm&2~( z4T2J6D8I5shhR9hzvM_rGE+)g03&$(>@&NtVVxBjLT!1zWkcib1rAfgh)lSe=arPu zElChF;)aA~(%n?fiOpyb}kgf&7jj^3q!6L?six8E2C)Pfn<26dnEfa?YCz zHvf$fQRXdP68=3nU06WjMSH~l$yRPwp02De$gZhx!{)Rqyu$rB-bDXi9qesy?eA|N z9{j?7J=xki+WQhtzGUa+D`xm3q*pvA)#0j#V@(o(B__YFEg6BO{2_UGF{-`3G0W<* z+IM)OXYd22I%_Pjfud}}>7P{$$kCM_42qQuoc^Z*CBI{IVUbo02Lfj{P?#7WLmeg- zMs$h3i$<3?(1i(l0BI|geYQl16ycGwsNu*b;&P*rc~^TtIYT-Xe!rBxj5G|7HDyfJ7~*?a3Cd+zYu` z=9F&zF|<1tE&y%U&Dv^MroiQoG8=Rv&Vx~CZp2GGvhlW~E3$7<`EpHDP! znw#Lt@_U0|v(|{c#lZHgrj`L39FmR2i$&Gb@_9tGwdc5^jSEvjC$L+l7CF(>*Q2Vo zOw6~|NLYc^j^4-KMk~t^%g}~$-NxDb<>e5Y(#NMao!Y9Qy-N0slw9rqeY3TXtG%iW zjanHKdj!0w*Jezb7_L0d$CaW63@VL^_glFGOzIO<*G9azD=#}=Upa8%^x66Cz+ryB z?exicF<|HJC32>=mmxdnS5C^#d^{~HEHa9`ET=^Qvnh^H9uS3{I1agBI`ux%db>mY zbq80>W<$^YYhJvynzetH|&1vigTUN`@I3K9QHBl;n3?iL4fsf zogFyZ;qQQT92=<4;M!L~@Y#i)UqDId?I*i41R1OH2s(+SHt8E~JoqMVm#+b7P`0ma zZ^Pf0`&+M0;PdE6eB0llFC^tZ3i+vq$8UHMlw_D5g*!WfDrV6A*Y_JhF>k)#ur}7= zORv}B|8A@=gi8~`{*%MT4p&ijjto=zqfPz;n+V%}#N-g=s}L?>D=&~hS24->`n>Ph zAHzzpnIA=T<&mT+k2p0DGYFt{O9AQ<_V0!kMV%R03!lS-h~*|WdJ_D+>`E;$Q0S4^ znHp~!?obq~dv@RM!j9uKF~D-{#c!v(*5UEa?lB03t-jx^OiU@0q6!eZPkSkP_M=HU zMYYQ}Y+hasD;@s!+wj8p#ojAx_h4sl>wul%O5-2p_5R-JDUb%pe4*_=&jtT?=rRT8KfvNx@nC99&Dz|RR zG=H1O)d|%p`)I*z_gI02+#?9%-IG_U4?#<`(o~^gSL~c7$8p(lH-!#8OaZ z-f3Pom)MElvHNbYFqOR@S)1hV?O1PBgOI4#_j4m!)8C1CGs!ukhfOx6O|~uO!sa!5 zeg6`PUnOxL0(cmRnFDSZc?H#W5J8>xZxLrMfpG&S{+3<#on8+)XU@#Ai@x7w&=nj= z3spiLXF}K%T>1S0ak+NTa$T$2efOSi(wX-cTe(?ZTmNARKfl{}ik}<1>+AIS!^SHA z{qzZbe)j`?vd_RbJ&MD0T@B{O59`}l=jr-W4(sX0wt&ss_(8O>OKotN2yGaEgozN@ zJpObS*k1%xplvt+_dRGS)iKhWn7Pq(RK z-~X_^&VPTuY8b2l8k@oGwQZWg?eD&SDuAtXU<3qy@2=tJ*7x+OkCuZp4>xL##v2VO z8nAMaapC*VGYsUEsfCgYY;#j&@4Set0lY!#^5u}DV01)haIU#?Af?UT(%?LEwc^*Ea z%d^%yyeaoD*t{&V@Lm@A%!cyou-SnnUzI=Qc4-=_!z8V~$DOlU*a@^h^a>uOfKsU^ zDQ*FM*%zB)_4`gUT&_iS+4a4q57>2nP9Fx760|kR#FKN!?ix?xN`!#rFNX{pEq=*h zD#5L7LIp(Z;07$4o5ya!1TC0M^tX<8PgFiFZkPZ3xd7n#QVSVA3iSwP$lF2@_2yvj zm)+x&t$pjoo4x&=r0Ks7Rcbo`w?Ih0%ir9z{9&i<)sZ>49Kzb;`to@Io?;1(!(iA& z0wi`9fAvl7UC!uW>2?S8v!p~piwvO*ll*d{ftssE-}c(Dv#;%dUBZ-l&Bzm@_7|40 zc!|e>Gx&`37e1A(f+c`U+N>!>pEGv6b+B{z+IqRSzq?tji9%J)>L>kAChvwOTnWP! z?$7WN&OL*p8a%bCbl41e|Ee+Pi_x4A&NP^3)f`WRc=5Q3n0z$OYJb(Dv5cl7&SZOe z3_O4VG!V`t^fmhzbd+CpwnAko&KYxV++g5%EfTTd3`c-W0T{WZJPmQC(P!1zT!)J# zL;OT*rFz#V-wH2#_@CavW1v@?XEmivc&3a*^7>9-qH}%4vN7Fx2AfZDozbyhn~jiC z$1Yw+Bs%eRQ`>@7!&Qte+w+KKc)sW46QGGS5#5Q)I~)90(`+kqhLIZio42v&-)yqC zo-g^uA{R|c^;jdix9n&pn39$P_vm&V;n+gZ`9iv!7u|EpXVU$neI z$MVDB^2?z_5MXuAs0up_@lQtWH8iuzIRvvG@pdB4Tz~L z-Av2wI%P()hjmX%GzKe+P5C{H;ZbH)qKfP!zBWQ_SbpP04J5Xl{wj%OT7k(KuZa`3 z?F^iL7mq9r@x`+8W}8Ki>%zd~!5jsOE;`%-XYZSnT}#q)VOo3=GxR7wU4{V#3p0L-7wwO>G7N0&CC)nxAsqVH|ukC zDG}xX!;<;%BzGT?HN!CCcvTh$c#9foqh@)bqvO3_woZ4g{k<0_n{ORy5a1#9#W=7$Io!ytw4`F%~ z{f5pepc3QZMDnI(o!f1U(*wwM9-y|AJ2KrUwoX_)bX*cl|BbZY32hM@okjLH$SH!d zZ7MAJv!p?$@;2TF)XK)n3vON5(}!1%v6|}rV7YxY3~)=}IG^$1rkzH{f*ax}F5Dbe zWVGbsd)K~Yz6bPPBwZlBy63dqi(7G0xK6<48yz&KTu41DCjoaOIz;uQX>%76GlnR3 zZ`nw)ld|vvx?%01(wk8#?Tu0?9fym7D1fNE^4Pe_XZ%?>_c<7ADlYL>>0LK~GguS} zF-iQ)MkengI>h79me5wB8phV| zPvh7?HxxyhW~Z%T_t?Wk_6xX#V6x*Z12ui1dy^TcG~;QzeWx|>k%UcRq$7Y$A8I-s z8Drof#peAY3O~|N3js2DyM z&5-~VIuEj7iDHYOAg>V~)VNw}5!~`R79d zIkFFkID(A5w{BT~=wW=#Bo&aS;20Zj6zJ(BCI`nSFc;IAgGr42znZ*e5!W%<@YV=i zcxwbEJhM&~*`E;6AD`rpL+~dS{$QL2;(j6?HygzXN58VHM0r&sF zmpt$#{{?(Wo+g(4{kM{~HSGvYFQuuvwmuTeL;omUQ3^(;6k$v0eO`$QJ&K!wE-o&z7YLUE1k!}}oj-;y z26eI-!3eoD-Td7H@zx4 z|CLHGJcpA2F-m-+iad%`g(r}_a4*R=IoOmbCBrA|wf)f{8(biRl-j)6Yssr=EJ%jG z?4SQUled!W6!$e%adEMNE2q<8L96ff2GA$;Cc!G)$DB_9MStY24*M8&T&(!e116o* z2_Ac&1wK~0MdK1=-GeLWQ5(Jut{unIK=1|wif$V|N07l1`D%vG>d<-*i4^Q`{;)wE zY*yyfhzx;qG3;P>e4+-tKNPj$0{uOq=D>EnARN)HKg6S@J^(OyeTt;!qvQ0J=ncvr zeW#0L5ReWCBQ!LC7NIcjLo*oIgJHmhl%9PH0~riBF-1r?cYNmgL|+h8q(=a!Lct=DW4SjV^dR+VeNB<5+6sxHbl2)+bk2O^Lplmr+TK4w6Vd>xx%oDD)MM=5ZP z;u}xz&RdnU(RBeOyf*gTbFMq&=nR4y2e<@q$fL?3hbn~N`3(4kk9Hrksd4N?WOKVc z90KlpoQNgDBIn}5ZMm=ph#4pT62ZZtMDr!Efb5M$^H}&zXV7<|F+(XFPK&2{o>ieW^-}*Y<0O;{}2kk z(kdQLHMEK+@R7!bKj=hmIBb#Vq1X8wa+FHJzETj1BHk=6jAYK%;v=Wk34w=O)s~A? zz?Q89B;aI>(TGwe<1TVDu-pyB0CA7J5Z@k zF7!lV{}}oM@>CO8kHp??xB2tn85A5M`$a!P7;vTq19vdw1a8=e#W;gM+-~>mY)NdK zcKA-bX@*hc2;-FVJa`VG&0QCS6QGR6yb~)T>d>eB9_n5w@ZjFtkrSEPG`@Q@0@`AzDe`~=jGjBpWnmm zEYy}It9-VqGRPRw;oD^iHEbXO2O+@pV)f0lwa=o)GpJA(W>U0Qkw3yfNa%fpzloWt zvWQ_xNzeUU+OUNVA=f$xMH*9?Or;I7I1HhWXp%eZwQV}ucyF}^QuLykH6kHc_WB!i z5!Gi$23u-e8OQucdIF0X)XG#0engyHM1?e>hyJ>#T=>_sMGD)|{Ur08bMPAUS`Cdd z!&32g`Y=>dNc$}hI>mTW2(_^2rjPO_jl?a=#Ta^c+VdD=MOU&EfY7>0OBK)eKt-Zw zuMaHz4LOJ%93JeVq{tspxGdqLV(~}7YwV+8Hn9E7x#y-)`_iZ+IxDa@F@N(~!^%DsoAXxb4{|Pqf`yl-FW>cmObP;j5dD`KN{~>j| zYTfTr`_HiP7FR_$ghD^W=Tf!;uZfkwJ1_&cfWyG4$??}$1lB2Gv^ zapO=>95h3xOR~gnvuFia6}>*g);`l%U;-5H@2aWxAgg}04gflSo#)yT-6FgbwJMeU zQ|<8}d{NPY!u|DnYwzF`{_Y-IuMc;2$@cbhr1vlvBHP=~5gAT6ocdmyt~}7^wHm8^ zRwX@;=YYT?L;5r;Zvt-1PQp&tu|3X}^ScEsPePmPeeyp#Bz(#SI=4+-UjUm{AL2H4 zdHe8}-Q%rS80={4#s2P&d7$Q^<%Vm7F@r&mkYNHvvrETw`ZkJ2TsMJ84U9MH@vdw| ztj$U`Q3g)j%}bAe*tLQV2=rFZZEL6e9Q(;_J1{4Gk79e+=jbZmcW8ef?d?dm?b>#c zBUiuxD-tpemGB@ctxakhylLe#=}N31($?#p-6J!O@mJ+=it5aK>E_t zDLf@wrLm_(g?1mNG5>Bb-K5Woik2H zR)um?kpXG;nDOR#e`oi_n^!3~5WX(C+Opov2gH5Y4q!f&^hn0B8B3NMrU}FhMr<5% znr~mqxKq9SN)FxtXBIQ?j0+GXgyZgcbF$f7)-IktS5X|Ns|w%@+|K3--4%AAWqvVe z1@)@ZeaAOM0oDMVrrQgkR8#ZhAdrL>{ZZKht7{47r}%-!Fl zmsiTKR_4B8wUeKA_xCGv>{TdCoZm9uKHm8p554F%j9WJz8}qJpIDoDVNAVXWcZA(e3H;!CV)$G=353*-%oq=Z*% zRBe-DI?<{Hmbfj{o(0esZy+93Xvmvq5$fRY2A_$~73T);%NU;*K6k=6=)Zi#=4g6f|9rxND?LEaU;jS&NpfjIi48&-QW;pEUZ5pO8}4Fhh|EoGYpJq)f!4)-3b{k8hITKj+1&r2Bl zsC7jUTz&^h_FsT=FkV0v`x3(=?(oP00x1C#>HZhURL2GK(YR#w5Mq6^j-Pe91Q=k{ z3*f(A?H|6dPTssYIgKJi1`fYKWDS2o6<(uDpv9gaxHpRn!ey41W%Mvq)P`?S5lebl zGBKg6qs@AyE-{N9RB)PHk7mKhlQIe><&(ambiiAEFn9rAe#G7U^yC9VxtOefKW7uFG2Nn(>J|i+zG2)Y$ zw(yeN9bBQ_0?w9!2psp3C+0kdX-1=fKZC2LewNbxq}UfVWsg)v;!@lsTygvM19bp{ zw81WwWB5S!D{tk`s)keQxylz&0a1^hTVC|WqgNCTMsN6n{UaEwSp;zAnVQ8np=cW3 z5xxB|PuMtYoiEc-1%w3tmu>31hxbQ$t?HL#d*^=pcC${`ya~wF+A6=Mt=6?V(8qY$ zx_ZfBfDL=EkCU@nWxzGOm6x1xz)BUFHm85NSzCRsUw-#5^}GG5=qBFM$d;gx-j*oy zyz&TPeu$TAF7g6l*FI>M+u`>#@TjdH01~yC>>}zUr}A@;CW!T;HV$i=X9sxIoD)QxrB4vgX7!{D4sB? zJSjI2oC5zl^angeP(`McfpY?LlOQ{ShDd0(Nm0h}nCu8^7Oumj_8QO}aw_wC7YvSZ z>uBrrC+pX({h!%2LTk}I3ctrdqXsfOSVGq08Uu*R05^1?p_x{Aqyd8iCFv{H!}xRE z-r$zo?lc!Fn57Lk+3F*?NKpGFX2in)$=8$_2gbMW`yZuQ3|eaQ6hzWe1MPjHo07o6 zBo*+L4u3CR}eA+o};JasjimXqD1t>dlJ z!()Dx6eh&x3IuHELa3HL!FscNZ_|SF+oL;4!Imh0Rc}-*pMtcs1EKD|Nx7viO zd_pj5BkhWBn+hzOd1`+Yt0qTS+Xi{(!4`e z+*HE91+O-|TUI@BF3}L1*k#5eGJ*^lAY;gB0JKz}pRe;6zepJR?&T%163`w|lQ!}c zPn&Da)%B)CW?{!fr~dB2FAV>_-rC!ze*}grF-vbmNLi>xOfxPl&KmLt$QiJCX{1DD zC~-0$Q-Ynw@>*dm`;1>P9-XXi)@wk%k51M$>p#+$_09TY_yQw4*gs+35NMFsLi?Hh zZEFienr+Eq^52#Ht%Fx@wqETjFT@iHUc7^YYgR;m`Ol0#@&ZJ^Rh@v4hIWsS50BY9 zF6pxU!&lbJo%a>9JY)I;MGv{GSp5K4;UJCz{rV6hIW1Y^n-|YVAq& zbMy}3fCL=>U5h;+fCUv7Vi9Uja5_Owz+F!Pg zlbuE(i`xX>vap!!0)HU-APq2ABiqZ>=btO2dZOQ(N~N%AVN?M?;qU&N-P9F?7hAk6 z&K^z#P8HRW79sf3zu?9ppAd6aHW{!x7+PL|EJ=izZ9&IUMVR@Y2Y9oNSo zoVqsu^Jt^_S7g~-TYbEFR>M8{Il6Sru7GCHtD+9@2uxq$2-$#RfH7|!ziKv{#??lY zbNa9+yNt?q9h@s{WysHSpL0+EA`sTD1Jrdz-W7t!0zj7?VB9+5%~uZ9_eVb%3_o4p-2Pb?MfZ14Pj`<`HtSn2ws&@4 zzWQnJe}3M7eQ_?^!E+u)zAh=c&A5G`RkzY}yjTE?T z`55+IxJgwA_+nYDDz4#JLjT|NTZC|lP~=NELZSM6aq=}&||MpegpoK@^gLQZBwH#jyj!c z_%M2c_f}0&e{F&7{LibSBlb^}&DYr#UgY{13K`=G2G0e&I=`PJU)JkBvIKpyn;z0J zDuL~Jybp+w0ePEU*`G*VCoHz{>xWj4HG0Q&UMX#+;%g96>u;2$L(Gsq>Cq$#_!SXV zz2lW%h>jQ2F~=ceUX_sa>n}C4b|V(Yuu?#|#6f(yxU)FRG+pZ(E9C=5XKn4jX!MLdV${9j%S59Jsy zpjSYK083?;$O4ehHz<8qc?YGt$P7dsF2+L$4gzcB@dirqf`H4h8!U=#q2a8ejSgdP zBvsx)gxpnrn5a1MIdWBsZHKgUQhXans()Drh(M$UkYoUMFmJQb)0a?FL-WF$^{{Bz zk-C=u3cA=_hSxA~PLA-G4kO}n72SzE4q#7XlAugw4n`|L!b7=*(Cgk)&Jz#=FNYnw zFOtO?;0v7v?=I@mm1q);8~UwjOQNa>4U1Vfn{`o~-+3!#HVxHC0mbD*9)}6fvaa33 zcme!2-$yr18*hJrW!;7&6?Z-Len1gYHmigkv~OO1Xr=%JpM$lnCn|O1$*;=~kPKLG5wzT$%Re{O3g@YE_D2YpnB^fLM z@8L+L;Ui~^W^b?{7sC!$bPRm1XrfzHN-zNj8LF#Au4I@a(G}bmC(IeNnlUw$i@GXN z+`d2|h{s9@7=;nwYS5MiecP;7qQDlYvL=VJwy?}HgcM8f;z^PF0gVGBoxYBj2iG4|DAz@N=e? z@aS~!@ZdcPjqjj3e!+d%xLN|rdgXL_LLldcMr2ZlPnWpvlI|0r^eF zK+r}T0g%b4tbyT5L}^BeY$P z03p~-q;&6|o$kIq+TS|eeQz3vva}q1v}q;EO{|oJ%QwyVkU1OyV>|IA@m&{3(Zj52A;a2&jxC{W6|k)5Xs&`(1sFGsXX_4dEnzIZ>-J{7 z#=q1nLBEAUb-l*F)GK=ju(bR8@I-v8S6=_Tvv+JA!6WglUfKHfXZQ*K)+?bw^cnsp z`3v9L*B{3?UU;Y{so_Gb4Db#Sog4VY;V?kI2pKd+2JOWgOCjI1EHt-~VGV-KXBDpf z;7slu2IyGfwpW~0SmpZNMq_dFUm`jS`nwY%MAn9@Qn;7VNQ8{bi)x06q9_#s{31U2M>qh*IpLX{GUp_-|VPgF^7gnIi#Qd#PS?bpDyv7m zs8=OU=zE;!Cg*b^PUFAj*YKPCawl_>IZ`RMjWAX|s0DFnfDA*&Z4JVZh=N&ojd@@nFg7KewTCP)v!Cz7N2E8$E&oh zK;nbG6aK&o#HTMo>@33H{?H?Xc+~@LQ?!0oTO*V;0h zn_GU~dwzp|>)ZkI#o=32CmxGo3;#x;I>eXp%?*vBvKZYmM_z6WO1gKjciITGPIHwg zN(o?F^rOmNZ~csq{=&}&Mos!$t;mR>KOHsRyd`%iB!Co2PuR6d!5y#cadRnm1Kd#7 zAEH?vARf2gr8|CSP~PYlX5FG_eHMi(M1EU;f{~FhuwkrJ@*xy-I`*w4RnSpU!{d5| zT!TY_ss5pc76PzF+H*X)YA3rpn2eO5a61OI+3E)gtM7brjlkrKg3z{36bM@<1#9i> z@1GtX?kiQrlY;dzDAk+SM@oJ1q+op!teb}%R-kClOTt2f#+CsVJue8W=e8`&Nw0vB zkIMB11Hf1!5?ZoP>f3^F`IG>iZCznb=B|VKE(;|#1$=s;f~^P|8v>-?1?yrJr7C_D ztf{;AC@}OF1)-r5-6BU^1yb~|1e93)GVS|`#{Hr#^AP0m0Vq$)z==aB)dxS>fx@GJ z5-J|;?i8%|HqZzH{w!GY)$y)Mknm?w%#BsuEm8MntnSMab@$aN+Algo2d|Y{2d|5^ zbzrF{1^z62Ufo!&ZrcLRQ#-7}rv>4JaSs(JQ7puQ)b+;E0q_R}Yj+01T_CD29~Fmi za~H2(3@nz_*C3peg_tLWgH4P!{^Y_dA);wE_j9_Zv-v9%iJmNDPAWa&YCVV>P`l2$?3PYhMEQpwFNFqC7P8 zJ1~R8HwEEQ4tmc=JxvT=>`f`|1m?=ZTS#==`iMXDk*60b%Im7U!Par%S{9{h(&}0w z)m<^l#rY}BUIZH|#&acK7Cj+PkM~qEK)(ytJ>ELl-+Q4{<_`+i_TeD!`FKS|9B6zS znO>KKJoIv4>jg?cm%Ob3uKKDdwew+Lt9416L3iIO$xAO)u$}E~1>E*_(OPl5-7bT* zGNq4FKg#k`jHA-J{i<-k`4JJ^1{Qacg0J0kI4pW@&q2*1dpQ`Y?!H$9F*ItjJ`L@tZO6*Weq}dJ9)Zxa$ zg=Y%c4Xb?%M=jJw8W}&-(ux$7D6jmE6EeuA22x6t{5=}kl zI!nON%8c4Z3eskl8v%P$u(l*5-ib7T%G;tkMZZ1lBs!=(EeFTkz2wWHxQrX^(i>Wu z{#;NdtIV|rcm9QD(|Cf*gjx3K%|mfuFU7E_xV_i$>N5!(o(#$~h- zmMPl?zlAnI=5I!WXUQmL>43u`Wn1XF-Y~HCO_0T_vJitSm_-Z-N0D6&aJ2$uq4V5I zIs=+~SrDr0T{(SsVD%{}d<0N?UYI}eK3b?<5*l2MQ_)`)-pkkaEqTS_DaoZ*jTV~T zmph$Br6e1Zcv~1Q`cq2^sKeCW6kee;c(FG{Z`=D0twwCX>f@r2{9s@Nr9LmCYd4Ag zBgy<>7()sX2?W{iTYP*9~_Fu;qwEIJRqse8)P z!W4#I3dnhi8{-(?m!J_Tw-O`Xc4XdkjC{+1;pKv>I5_2LIXLJ`orHr=%bxa_?AMB& zrpcE@G3J)5dIJZg2#a<{9DP!X6qXpJi7HCUR=cCX(FDizVxzUhHM*AEOxf)j3YX@> z;`ddtH{~=F?T+8mEIqX6qrkE##&8Nii^nA%5o)T{U$RUIIUOCpkT;Bp^u^Sb@ZTHWw*u z17>Z%eXH4l;e+z_G%+x-H|6bW%<$x!5pV2cKuxd9u8a;*eO&yOI|f8Nnb5se40w^^ zW87cmwI+&;evg&c0537#eO6u@QK|9nwUX_ml^WyTAl67)k%`?O#M&!XVa$7kc$*o; z#=B35HIz|moO^{dq7pAN?)^drIZTwB#63e^d-1ZPV0{L*mxrk6?o$BAN|e8Uh{27$ z8TlT<40g2MDmM>t{MX-%aW4^{-jpJv-cQ898{dz6PZ4V)v)s7%6*+Bb(A5oc%&ugAIXNDzsX zGNa#nm>G$9iP7#q60j3*N4p0}tmUY1)r*f9(D%*0(NzIG@|CkKE^9gpTEzI?&PopZ~P>PbnBZy8fTlRx8TydgU|r1d|XtR0oq7 zQk2zzXB87E#kNk^nRNJuZ^BU&^$1>Zy?NTDlfw7vZh|Ibbv!`7&jdyWg;yY7P$%6Xxt;LDi0& zKg?8JnTqt>mg(_z$MlpdCc@?uni%YCXeM+HSGw7SNiFR5A<^{ETX&%Qb1B7 z(=(xW*C~{EqUw+fV0~IKp=mW^f7+W!vzfjN#M>+-TRPUp#~4>>>DVitq-g_8SS+4r zO5a)79F8u*MJKUZJWVp48R#TlCmFINT4_aNWrB=mBs&sjh@g0AXCL?$z(1Us!EeKB`vV`3F}4&$JOxOnBBgP`g;!9doQv1LVYw)`&2F7bBs+7xb!huNBAI~2F4 zL9H+z#HW$L=_q$pg3`ndJCw(|ZH9QEsw)WzlO6=IlA4~@^e$F6)`CHe2~QOzWb{if zVvvkEs)iz+z}5Kg*r<(Dp%|MWjZU${AnZ>!o=Cnn*g8Z6SW2OWl`uR`sK@iBUQ)6o z*c45&z6|=4WYH8wMQlkF5~4l3w}hhM$d}0wT39lApQI&fWkXP{`$lc-mSqobEFQ); z`cdaeEgX^i+~yg&J)X;g{TW<|Jdw^o4cw|G_wJn}-Gd>)$6oS-~}g#mOnp zfr6tv+S>jZ6EN3n;v3K7C1Am0@r^$|ehp8KU-KV6g$u9O=o99G{)`@wxT1%;4HICB zG}y5qjg;Lz5xG$fH*Bau-L7IZYw@aiRb7b12HmX25;`!wyhINUh9Vyoha!uIK!97| zIR_TvIUynlVU~!na9AD4C5BolR9lt}E5EisItVYSO@Uyesyr@iSWIoTg~Ms~S~+#q zlJV%9QDjfo<2hgCl2cgE`0~}O6gZjhPz+?KhOGu@|DU~oUu)ya*2dBG z-+o$GQNiwj97!O+*v3sd7_dV(20p+^dc|qEB$c4rl1foYV3K&>%D#(z1N+AIc*hv? zR4Q?B(&@FnU-GQg7F9LRbB;NV?*M8wGPzIuY^n@8s8H5;LHlpO4?W=d8WOXst|m%` zm%>39nOLv2Fn-1=g(B2dwEV3X6qNx^=GOvTXIf4b`Q^>?}KWAN?g*4df5;hq$H-73SB0{ zG#PdhS|sdVT4j^@fDd3qQ_D%yk?;80PQ0(08z*s&{2AvlHU<&`a{2`NMc)WnN6PH3 zWKh74VQf=;B#7{r28%hDD{FZ&7;&cGJVR#T0RZ*6Rl3ON-W%lDGGAxedmckdJJk^X zspQ~bK{_Fh%PFX7NR!5Zg@if2GHp*cI~C<`(MtxWGBRP0qxw;DFH!M!n|@g=6>ZdGrxLppt0Z ztGu!pt=LAryyeZss2QzB&9$icxbo4Z9gL%;9B{Nr75y&kCp_VWY*g&X-YrcBasED9 zdGZ7u7`(@3C`ZS%E!o`v4&U6V z`FMLOw(@gAyQ2}%(~2$?Dz0eO`sqlLg>V{$oaZ7S?lfhLtIYc`0tLc$F!>))cA&Wg zG!ZDBE5Cw9MZuph7>HR~5IRhBma{~>lL>J-9n3Yn7;-?ttz&o}0b?F-N$%J0h;^Ne z>7T{7E6vA?@2K&kVbr-krvp=q+Hrot$CD;4dduBNiQ9blF35&3PJWy+yBX2$?~E~k z7j#UB_j^ACH`l`uB@d6F-(Jbs(T(UTn-b}vb4TkjxsGBh{tw~KGzj^A=_Pr-DKuio>7AdN({_+szX z{vjPUF+(iGZ^!M0=;LDa7awZZZC}^&L%%job{+F6?uGCX#X)%|v=O-q`ExyI47WjBU&YeR}W)TAtho2Os@o4$; z&mMk`_au>|gXKlPnAQZmWv><5GMvYC<^=Le;}8NSxscFp=Gbv_EhJigH?NQ9w@0N+A7go#-^t*SGky!KP+4_(u&7U$a39d7RUg(T#Co@gcpRMEpl( zbJ*u9-!3)Y{@h%D`u5}7Y6F?zoA?IU`%QZLJqg*!F7)~GIa>Yavb6q?9u4Ugnjco$ z(%9y$g|q}ZY#QYrQCBvlS2y=)^~TCkbz6F|`YFAT9uWDQ+0{&9DwyPjg&&qdwGIIj zzx;Mc1wT@enH^BF@H5*7>3{CMePn;!yo=l(iug)idY>>&Iju>u${DxBfjn`hgB3 zGTppH`oe|(*FuGcg0XQvMLMU;)k_p;j0B`XqeW~6m4+{ zB$L>}|DI1SmiWW(n?F=dS5kVn`aDXbznH4&k1xKcYA$B<@439wFBc6cjFJl6}44=wFPEzvA4K$wCnOIs)F(jhd zAnshy?2NBNVsAK%2hlg2lVA{EtF$&5v#wLPQ;2eWbL575(?orFMxQ)fl7wGXNQV!9 zmOnnSc=(n4@l`}}|2Q=wqO^rs=C=^)78(mRHfM}zk>jq4m(Wj)HQ`(*>vJwfq-llD z!lVi$mX)o1vTdnSshwoq46-Nlpj6M2oa(fVvH66yO>^ur_W0{`0L|0Plgf=xsa^mP;e@bicAd-JWG!cBT| zE|1Ja+DB$G&4Yh#KH?fTAK||Gz&C=l$CbD@y(H{v}VKF^W4}2DE8glvLJeU5F@FKymy+;#_=#`Js8@j zl6m6-s$>ls-WBD9HUeThFiGmUDO*a)W;`rZON#_IpUpW@|DfBZEzOz^9f&uPv)Ey0rgO8v8O!23PKy?mA93J<@39V8TS_{LLp(d8tvXBBz%M%^mf8qn*UjnP5ldd3RU^p z7v6d;;mOhuzr1}|U5-5Q;;qORzEly9&q=0;Sf&7TPk)o>5N%Pz4;Bn_PmOR(R0ZCz z3U^P0ps7#R@I=__*&@o@OU<=twOTCA^?kG*!f@ zS(b&G_V!pCh<5b{7a1lWCdKJ`5S@@XkCqC8xC7@Bb)GVm~@c&dVF2u9h7{C z2cv#c(@NA}!?s)^?k!F#);c|UbF#BnQ`-hr!VXyMVa7Z#G_)x_(n>P1w?z4M&W1kG z$6D7DXAbEm9q4=M!j{^Q%-2eZZUbx~4I%wnaI&ImPnRFjRO#HA?{)5I=^rf{=K`HE z*(4t!GHVSVf3{^i#PJ3nxSP{#eyx6hdpro(CCEW%!Sd^%gt505q< zRr&kPgGWR+H+S%0u2~v|#UM?;O3cux^M`s>N3d1jth>jL>|-szss9qs>Gv2aUlP7r z`!7$o9@78NBmCUd#ET!yZ0Pfc-uGVqM0(0T8JvMw9u{Xqr{RG6m1om&2cNqR+f<$G zIGGMd(@8G5k9CoHLK8FH&$jZO@vn#?nTy_*6VfL{Z5GshfL#C{L$%Hf!Tl3ev!wPJb{I>A7dPRFRVFrx{aZd#`&c`Pc8^Z$`Q#cj2UQt6 zu#Co-(S%ow-ffa_^d~(QJz=DQP4f#qEY1R+d`}lOJgp*=MfOiJa94qdt;<@`=bxK7 z3!ZC1>=M(KzfGIg+($$UCTUtOo=oFH(JR@nL6+P?-(4QwUNHr4@22d#&!78M7SpSG zdU?P=Cs;qZl86W_d;lX#VK-bmueF(i(kd1p!Xq9OgxUn8eY&`26J)U`O#x?~}d zM6*hCImt#)+87HQU4cY&a}lmd{^@RNDf(~ukrM!;=#`(%J`gnN<)dYB%(I@1JjAU< zSBUjGi|?>*-ef*nycyOAj2r8Zu8;KF?=$I$uO(yF8a9XTpe5wkcM=o zboqxH&p!%1Np;c>lj&qkl=i1YTyyAh>0HEcu4R!7o;SQ3cnvUZ?9R(92CD$9yRX~L zg%P5}gC)%~{W(bfqqo1vKW`sJM#st&G3m0~kxrX`1d6j3{bI_g36cFQKmX+i=GBRT zU&N^}%~nflFIMS09)`KH?fpeHZPqur>zhPoLsg8BSyqJNzZ;dI>K@=0#-kE5skDPM z^$;!6u}ls9V8@VpJ@U3A5h|Xy52JDPo%eh*TKo=T*Z2Qi{((fVW&VNxf3*DQ;bQdm z7wY<-N=hs*lgvh+-SWweRlKe8+lFt_wjE{v0Dk}#yR6Iq^t$|Z`K{M!`u%YEXQs&{ zqOoF;fB%SoKH`74FbYZk8;|b%`5h~+-c}_Wwi_fv{%TQc5k*pE#S4g{QW=C?4w_n8;xJi zi99cB58SCNR4YexVWE1@DPi(Z`nIfBJ~Ko1KBa-l^zfDeo&4*j{^YJ~8&(ixtJuDFJ)D{6Wu20L=k-Hpz^p6; z;yz90<(yVa=CZUWx6Mvi_U1`i_B!eBAn&WNV4*AXPK7lYcrevyRy*--#h8*_1|~*Pg=)Y5A}!bjsAT@Z=~gAY1`IQ*0!n3 zwf*Vt@YbOj{(JqHgPhdXz|LlI8xaECcoHK&6fI2+N$=S)mEDhD?tk}sZ_}89I`2sy zH0-a~2)l4AORl2pBqlaXJU~|)8!KXzaP_uOdh2;qc$z24aI2zBjd`)PSXuTy5{(_M zl^>z_`wFjMs#_l6kE~;Vr^8-m|LA8OgmIZa;rh$J7lpt`1k8f!(%*^`gWrj_3zn@> zp<{uAVIFxslf|4F&vlaHin1Mj^vfgDPy969#BbM2{H2}b%k9p5^tan5hx>=GHjCY* z8_0O2pAX@Hi)~P^d%cBH0F3oK#{0LadG-0nTeML(Dx*qv5k#2$b347CKh$5JpX&>m zYkJN<%wsd}pFh-J=7n2?&mY>~=B2L5=MUwFK1S5f&tAtqN+TR^10{6y)flGHg){(AqV(Br|)3hT#a`N~7nkxy4SZcgZcejnF=+OGe1>j(2= zrT*-PM_(;})~@8gd{vNfzWU|ij3D&Oa~f}jR?NTXzxurF>i>M^Q>DFy&-JPOTzv%i zBl&G#xob~eyT60R{7>B9K`q74!e{o=aD?Wspr-H>|H({)v!D7;?dN(e%2)b_eW~}B zywpGB<-?LwTv;$0;I2=8c{jaXaDt#Az5rf z)u-*o^B{ca=GQYkxmacN>0K0x#@OXnarx1#mW`NXr+q?P4uciVoPFP8XmOTYsDGnV zYq`+NU#;0P8q{vu3)Z8gtuN;|Gu}&6>UK^}`?7Np56|Zxh`Apdjj8AIS=>?j*xyuc zDBeKdR{r$sCXcnYwj;mCez@1F*NZ)-{?fM31|talZXy=B;Q6J}NdpgN*_96j+pv}u&aY5g#DkkDnCV%`;Vr*-4_Q1n-hjN!_Dt4;_(oiiU<$=P`%Jc!R3j94d8R29tR|2vpf9jm+Ep4Bk^=3PDYq;CSO_4 zx)rFp6}5zFe>^ej{(1rf-evtt8i) zXkSw|iJiT!12pJ8Mm&a2m`aYP2t<&8aw*i%Qm<&H7LAvdIP-H8V(*|0sO}EuxcWAu z?fvg0e(r)JMmg$3Dq_cF%*pD?`cpXrh!m%R)5bQzs~7P72k$(FVZDp^R4~tzXnkd6 zrD5qOgqghd&v;O;o6}0uR{O3d0+N|j?#OpVCd$9cjo*%09van%HhGy{Q7bK273JyO zZHoT)r545F2R9VIlQmJh{eP=1kyi~Hz%5&w2+z&yw(QR&qA`}-6jX0pv0t?y%jGN5 zps5c!akrINzQ^P)f8zB19EG>G+|-*#&A zFRDu&r&zTK!UVH|j-n*D0b1}hZZhTGGQ{7-$`R=lE$#PAL zv{Gpf7N}lwzbz`<6|R1Jm9*iD*Jqs$D=4`h@!spakI$26DekuuS|`JV<#aJ9HToI#0HqMl3x16Fi#&9NV-H*wXMgtZpXYQ5g4=PASo;1spmyFz=9&A7 z7!B|Jpy%GuPV?T3JN(84_F~&%F7w9VeZ{cO9?BDO#l}_cSEG(eHTOauYXtshtoXbM zcWfT?m}(Kk!KrsH4y!*ih}cJY%eXBI4^Li4ZxQ&H;3NCZg7KPC zbZj7DM_+#FfAHY5=pkcUR~~r2eRgZH{iS`ao`cbn0Y$4u1_uq+prf?pK@Z$`tWnb37Ej1)5s;P?0B4A!r@#vNLZG-kzya#t)GP1{qW;Y zIo#+$^zAsEOh|U2PQJ>n>X+@%kB+D9J`tG%n(-lkSV;E6ll+1m5Ct1-?rhQ~O<7#fB*wH;sR?aG ztE|zmIrMgdo{#l}RuOq7GMp()s{%NA#&%N2$mByOv2^w3p4V_xsR63On-;fCF)*TA zj5mhZ$MbPKU@=m*p~bFeJmU&HYO&_tO4NAb5gVA#x0<^4?TLf1IEFv#*cdoJHG*|9}PJ zgf`Jb(GlysKo$|DefHzYUhpNbpNi zaoxZnynXuu+l%8(_3Gw`8JW`v4kmOuYkb82axs~VHkX&LuC5yA!)YTMpD*{Nj(qvc z1|#g9sd#OV%_KfQPr8;th~=hHvL*hy+@yqTHY)KY4UJ(wsbs#j2*}e#p;yXcbPY0| zC~XY9YzQ7Zm<|O94gB8EMCVWcaoRfAe{r&X@{bnm^ILaHrOPQ29z1vuNuV-Sz&P-t z&y``)8`lq)M+U{!pp{Jl6GyXWam~n+h8hz^6+Tkoi^K zJ}Bz|UK`j;y_lm*7|b}9AbUJ&=_A_<{~-tN%WNnVa5O+PIy@ys)U9#VMDkef#nZz4 zT^nky4BGbocMVNYVG)U?PRVioaQ?fB^)R8afo5JwV9aI48YO`oQ*eQXr10P+7lsFW zZ75=sq4tKxPI!K8s56!b;J;iLKg{80-xrr#z>sWRW{$CI6mo@d9pNKW+XeAQwiNzo z5hE1Sc5uJ>u{@A3GV?miO*LWbvbD4#?+RwroPUQ|?bD_i6{@Emfg+VRAyrDdx z{?YCC)NLe-;Uf59sX!_K4ukkZI+zX=AxD@Nm0m!CKL9VgMK3{O?H?XVWUfSzc$%)YytC;6p`XI|46fA3h*Bl!Mq@PG@*-A z&JB-EE_EvVmJb(0)yA~PCs~UR8=GTkPPa4-Zt?lNin&f)8J!FGv3b?kJE zC=vhYv@ZmW%`ll_Nt@PYGe>cCvyb(1;RFBz=fo;H%b#(!DY;GX%bP?^9cBQkiJH(T zh;fp*RW}~VQ^i%t&(ahZ{J!kPoXi)&_u(s_sOwRQBjjFUu7Ju|hDj4;FvEopT7E7D z_j2pu4KHN^cOsKfr6FnB(7l}ZTOFwOI7H5E3l}`r9@?! z;Bk??-#$Ei-Iz@P$FrlM?s6=9*BYb&|0YdB5vE!1G{9(R!{N^vm9BEfTz z$wT+MaNk%iJ&xMx5W*Ku9T)cV)p;}IKMv+tRU9t3klAhPqUun!RVp?Z;lz1x1eN@Y zDvbvO08Ric;s$EHP`nI>?c^Nwv%ZF}U%Gf-Z@=2#Y3;lwiNpS6=4hHT`n1qpkBP`c zJqvQk^y9ByZai5)`zO~E57Qp>Zmiu1Q|IyL!4sY)j95rSI+}8Ll2Yw%wEOM$$xFej zH+P=&jg{4%=;$;e5!mG86BUO3;a4pVkdYh_Jm3HiOP_+uB%`0o8~8b=k3CvKqfTHa z2kCR6Hlzgn!JZSMIE=5<^&_jmN@@{Ojp9jHY6?Tq9=*$;*eRJemF592#dz z%FLB7u2COU8K_%THIdQ3x?-3X$s*VlP3oJ%@GjJUI?0QPU#iw zqX6+!3`T*|gwi?Vu1thIh0?HbLl#8t)%@3zpv+3U46{T%STJ{oXnT<_DmO>dyCMn? z3YEpyw$RHws;Tu@J*58^b4at=C@9!ykn*5~zqTIwf0gVIqL!E%K~gc}Z&c{9$*I2e z(EFpLhC<08A3Ky^-k+S+1*@sg^ge-NSrSvQ&OaV^>xj7Wwy|70DDqdY0h4?(Z)p$x z=4M_h?BF1tsOFce=Bq)Lr4i)8lqbEuHI*-r{ zJ;b*2658yg{S-ox1ru_dj0b7Xo0lCw&8$0+Qq|2eCpx2sE=?oK?UcSL5$840Nui}# zN>nO2%}7o2>bIiOEiIHtTji40j5H`&_?T@Mx@IrAsmMeI|Dkb*YmW-~M#XX#5O&+PEa-kihxHWt{nTyr<2PZa&+ zsGoL-V<@qIvGYfF%6eRb^$Y(Uxz%nrjg@tv{MV?+!O}H6H4)!bsD_`F*CqBOW@MN;cJENT8llP>@$6GO90sKQ#KR<;=KX8y!c_0Dyj9PP!RxOTKW()qkk6#FE;sGQU8=3$2`BnC!?iHh zv`K1tL^Ak2b@RT$(BeriWZ}IljIn{DS3wr4{r7I`>As)1! zd;nJ|Br0#r&HAk(RQb!&CM@85XijmV2O_|!^xT-2P+TkoDdlj+2+y1f}TC7Er^G;SSRN*lLtO)?Lfh=pr} zN6`4hsJgpV9k7c#;p3!Zg`gMKTL2B6F%@|Fq9$Cz)Tbi$eB1F-IQ!etj_+ zX1o`Mt?}IPIiKNz!P{M^r44qa%!rJu-@j^g8Of7@hN8Ej(nr&qaK;7|X>)6U>ds6_ z%QQAKH}=i^Nn-S)1B{#Z%DlP3%)ov44(l{Xhts@u;B`iy%|^9FI9a0U-$m5D>l1AQgCt(MrK;6{^$noTIFp>84qlaf#*GI8*yPlAjNhUp&P z=FXwo3Y^Dib1Q{di zral-UU!By0$_mc{mc^zgP{oZLMyo+sGAnDBv8qniiq{7@Ppko+cF%ioLt~;S^J#!- zR`iC2O8qDIu=1)OQE1tnHS4MzYI%Vf!XVJ=n#IYTYX1PMhezRo*>pxj$+lms;#c2s zD;KcP<+5xSdf~|fo|2Ag&O?!)@KTg_dL&bESd-)xYGPnA#!6k*xT_S>PR!ykTWivP zCneqD1QjC{LhLT^9`TCKd=fs>TKwX+Tu>l)iliA^h%n*o4=^-=PJ!g59uB zDfaY*c4z*xO29Dba+a)=l03oE{An!t#3~D z@G;aoEkp_=qF7~WMmOyK_KSl(_GG4y>bL&~E2Alu=GH7?@uSa`E8h zcetK^Sg^q`w0C&3voL1Hg?ct^MR%%4u>EJNp|6g)n&TffH@~NUw>N*l|CUyI%(Wih z);$SlG?So6X{eNoZ{Mv~#j)ASO<6^h=LPXbTq)g0OV!HH4x#Rqq`3FCr`jl> z{26N4{oU!rbOpK>@@F-&**hW*e(QAXC-%<~i4Ju0o9FsxQ1os6QSdkY#aL6bxj{4_ zK8lKCZ;9lwrAxA4hPPmrW+DGGE%%@Q{5;D4{7)~QqyFbVFTB%rF?YhPwA{NSWHL1X zL?$y%Kdk9~kqhMQoXB4WNI^Cz)~qs03UO6L!UwrSk9oyzr2Rh8>QygN4*3UBlwC#Q z98t3peQlzwca9DY_IA!%khf2xWO$j5vmu*E%|%f&c__I>s^~Ii6R!AtPJ0|Bnh&z~ ziA%zX+CSSuoOMutA<{Z{hg?0v^M=on)znO6A*Dk_LX!pbd-?%<(Xx$JX4EEzaEEzY z7znGW#DtryIkYz};H|X#w^zr<(Rnh-IWACmj-CNW68D5b`hlMAoGc%_f)NE6Oslo82B-(M+|Ds{;JuG7a#rzL<^avg>a`CXp3KdiIxmZpLu6u z*d>mCa2dX(pP9{|fhuhI%)&-?Mx_Nj{7Lf?XQFdKa}|B@!G2ho8zP^Tuvvy(JKKJx z2XZso`R==W8!KB{=+_%8xuzS8mZqiO-f(GZzL)XR6uPGY(;LOV*NABc_3tud7FPZ@ zFlNr3o8QEsX=?v>8#PTkzlULSep~-p)tA#}Fs-^Lgk*84x#AX>7L zzpqi$bl`uAVf6Ry&;MfM=*<)LI~quD?#O@6NII`y|LY8;g@OE@#?m5r`aKM$^VaP* zG@7J01i?>3^|(%`Q!q}sXp&5Wr9S@_>zQ1v(Df6%CE zh3NmRVU@da2ji-IH)~+^%ZEnRR-gp?pJHe=y($`8i`qMdSDk`L$}i*>cDA`P6a8SD2aeq?xL*4$*xiHgv8GdQj|iO-p_J}`zte< zqb-x2z^dJs#z_@J5MUSVWX}Lwk}&;SUW;tN+!)dw*y-efUxBfefZ0rPHfe7yZlG`n z&Ooy8kVH125S$zW`5TQ{1Ur*9w)@&(^#` zoEm2Kc~q|xBav`Qb)N3W4vw523G{4XYe#dcl5~6C5PGqs-O-A_bn9ahEl`;n^9P@Q zUSmZXLy+MBbB+ZQuL;u?E?LIPZmOpN*Kx%h22Z^^UwnL7@DPC5iHSwU%{`tfv`Zx8 zu-*02^{~kU1}Mg~G=qQhf*9gcqMKU5gK$;p@J-q9Qdn5-=LzS>pxI{AC}--Z(O;5i zPtLtVrxxXGouQ5RmNR)lxT>7F@oS`D#LTe?b~@6;(ZrK`ad2k40G)fBT(YT6bCGg( z47-lz;{`7hhEi5~?2=goSjt*!h@k8>B{pL(X#!(cdnr|rN=WU?-n>M=1k)7$8T_S& zEANr_+x@h^%n$un{;3u^&P60Oj2f7|&TKs@^se}z@HhQA)5qWw{}1oC`)PlLRc%?1 z1JlX6tfU+APVoy(p!|#7ckZYCWq#^7+EMXx0P5a4T}Jl~aUhAzIYh7Z(Em6ZN2wr1c_Dse_YS5};)aIW?ivxa1CG zK&;h6CI2nJ*S(E{^m zt(S43a07dUa87%sj=9Ylr1_HhpLaVTq8F7S@lrg7m`6NZ4u=G;$0_P%Npfb27@XO? zs@F9)lw3r7*{X?f{>8E|zfU*JCeCO!0;PC2y6V1j7mX;Vqs{1{b`(BII?o?8n>!}@ z!zQ~Gn2SXd1MJFe2vMU?92YZyvBwiA5CF#RrH23?kz6Jwy8z(Db20GrslygSegg1x zs9k6^a@IOC>ObFvNHHR$Z`pRz&lY61!yu1 zs^8`giNb@TuQn=5A29g~rnAqLVhr9xKRz{Br)B9%v6NsVY`0bZcRude13gzqZo1Wvwhb>SmLe zm1I-i(!?y4LQ-b)JREmL#AygRSAe-SK)Go@om_8L3f$A zv`nmCX;^wG{Db}5C892!0rOdyv)T+yriZr-?(e^D>QC;m3!xd7uX!2F1v+gS@IwO7r_s-V5Vw#`! zwiZ62_B+4Qs#8YJUU1V9rFY-2s`mm44?gY}hR*n~c>aP&4HwL8_On6^;^S6NrB0t#%VZ3dMfCU6|L`x13=w z=&@gc?KIV3yKO$;zut1HS=t{3jrHtoK}AMXnKLSzgIAI{J0S4Fwl5edkzN{IuR9GMpR&B*)X%`@&07WZ`24a!V;Hs=N3A3&$>XUFiVvO zcZtl39z4K@(dk697;z8;Y!MM1Yf;y;eN8{STaBF8`vb49N>Gc9#Y#7;*wy(=?jZZk zvdR7GsGv^A2bLAEaiWsXl`Lj}+n)}*jmUf-w~-)`rh|38PInr;OeSE>XS3fqoN`g} z+9ph5Ce0yGp%&;7uYSJuj6s z*){;a|Ed$!ujt>&SVTM2iXb`sn8fXccNLDpyCIQaG~hgDEMd2kWXQ&~8ty;!mgs9v zF0lmBd|s#+&%3~;c8YJFxQ1KchyKW-`uW7>f2`d3IN2RoI*;YY=C(2*qBPVO>_upo z*gBz)kgy}Vm=52|LXWomMZ^Pq(3lKH3;cdOXqil#bCwSZQX6aaXWb@${!^VJ4gS0s zZU0kNzB1S@_oM&E>`;`@6J24%h5ofWi19^~&|a8!yc!o{a2i zN5}QJKMcpAkz88M&$4Yle)WMX!#3G^`>vncQlbXNuJ8L@d;9Kr^p@@!@4qj#3o~__ zZTR-#+lQ{1sGj^7tyua`hskSFwx?@hZrze?a@-3G7kYN{e{<{ZrT3`i=DI~~I*7tJRXphvz5&w^{(K=Of+d{3dOz z(0?22>-e|%K?U;mr_)4|w(|Cjt%S$^bY z4{knt_SAT8Ul=cJF5AvHPMi~gl$7PqkYd%1ex_Ot9)#x~ zl?;Yga}72zpN0ZcG!yX^K1PO+z)#|0h7_zwoAShH;vcZ~$ z3#*BYwCurV*J~k$!_fjt+6=uPMx2rdc=3fCz3AOCQDGy`E->|??Mke~#X|7~9u+u!&gYvjAz_> zNZBIs2<(eM-QcZB|K{mWyn99&51r(rM|kT{R9xp#;*l1iz51^yTP|Wg z=X4&%8BHr@RXR)Cm9x}w3J+{kuGgvW58oUd(5KtRWf-*-2Z*fD@MFcWQj-spkpi?H zP8^PkWv|c>iW9N)a{pj2dej@$5REgA9^q>^0Q{7+CU!Ui{UIOF8qiZHg!QAW*MmdY zR?cEZwxyL?;*o7_@sPxu^GkoLlQN{_!gm0hh zowoK4k6!P+e(u%9Q@<5a9rE;JMI8i|o<9#;##FSgCz1yx?rJAKw5C5zvOHa~mDP24 z)#nwzQ#}Aa$iTkPFKT{$wWv3$&h&aor|L7Bt7`ODl5aPor5-C=WjeW8CukxkYHav+KN`qwhZe#eY3N(cY6Aqe>c9Z>~OG-S~t5|6juYd*zpQ zs?jP*boEtQVN|pm57VR{of3E1PT>hqUmAwD3PvTIh9?Ui9_$H+!64=gt063y_i4 zruLWoI$xfqS>xi%$^$5GdO?}Py|aD#|JMFtq1Z41uR2*yhqshG+c}<7bkZ5kFT49< zwp6!0=lkuG*MXS z8(L_ISDn|*aOKWU_77j37FUkJB=b3A!)osz?VKHytaqAqCjHrRG=bj|=Q8s-NqE5q zaog=LL`~`3@jLsh*BNT<_EA3_5Mjf!+vV5p@ROz5ieU4w7%&-Mw>Zvf34akcKAaAS zBh)WAq)6iWXdAY=@g!d2>HuCaB-*b3635@gaf%*k5MVd2Rc^5T$nncM?~@6MOQuXM zk`N;nOW_Ohh=x<>49jkJ>o<=1qF2!1^5$TAVd z?Y4fLCevh2r?AxQzfHT6?ulFaQ~HNc8gT70mT z$%mLh;MlW{w+6UKU{Z`j)gfMWiLxz~?4r_c6~E&aM5EZx*t?;VM_b6kd{zH)a!LEV z6V;_3=I^TN5|{YfFQXOF>gY(C&!IxPhU$|$hv0Bg9+?t{uG|O&_^}*~Q(#$NNbnC)C6Ipx!Ws!8 zLnf!-Dh0GcHdX`CRSW=D?FLKerwJnW;>ltjO-HO#psGe0hr4#NF$^hvm6nCA^mKxE z<#1;gT^85dgC)}_y5OUozms_SVtY4O%)-0>Ns~eyyw8c6!{5_b0IOXXC;CjsAnjJ} z=~~CO#%>}GZP_??#)Lb`Ve^*@b^&k4%b&IwFALV?M6V`uk0?E-B@w@RCF|0|HneDJ z#RCoFPk6mnusAm2sbNjA13)(k=F`{5^*7&{^cfvC`{}*2xBY5+|B$LdC41i{~&V)9}#8Er1ZjdPrjJIw~Moow!HT#Oo>Y_NQK_V?4}&UspI zr^96`yLvGh^#6*I_>Uf-uC3*1K3-;sAAG~#HU4`UB3WbAC(Cn%Z<_oEG;g077)!73 z@JMpcd4QD%GNlWLNy>0*{^vt_q4S`ntP+N3?NthYyd~4DScz1};nm`BC%lK7mB296 zeD3K;qOgbPwEp^RYfi=ddTyNstI-PYGo8jjEY+RN8}f1vxeB*@UQ-rWZ=N)}r2F+rm_w_H4MxlGTL@jZpECtSf*y^(haF zMXPrj`~8N_H0@D@)@z;x`wqi4M#W(A=>LuNkA61jA*Yf6lZ%!fRnbuK3o-6`X4JdQ z=;u5y&08k4uzzxyBPuRKw$n@9DEL~Oiq37za|L}IE!$pe1yN~5AVGmGuBV97E&Oz<7u7_zZjAoJ97 z3(z{ZqR-vlm)?Az{t&nV$m9B#KVHDsM;P?BG7PFnY!gOgiU-S>&v!6}!qSRDYL8K$)~ z)?|?TPBOm74xd*gI`ll)|IZ^sjUxXG{zV6x2IZE0_{A5cZaPf8u-Lr%v>oIy_xp4i zjOB#WoM*$pjRyoTboLs;(n>Te>n-_Yu^Kq?;6bSq4|V7z{P0x&p?%`)Y2YG#7Qf{R}ia#dH0&jXZ{6L!FU?ePV{+V~GXdVk3sff@pa(CHUTwjpy8 z;KQrKz$3~zOI=#!j9VUU$*S1q%?T4?$L=$kJvli%s#a%i;Xsw|wD-`}T~&+IP$Xmp za%Og}7>9)DxI@&w243X=3=bP~@E51K8cquPXO4Br@14v*o!8 zQ{+Z)q+J@fpp_SzECj!q7q>lb6j|y2l;JbvhHqwf%eduI&duu^^KkSxF{VqlRo4FN z&YHXRtplv|x$2b;X{uw++$Z&NvK#V{h3mk-uY!})f6!rmC6ms$nBR zZ`8TkJ8?K%jJUej+Sxuhc(J|n_nQwqiI6Ma#PypABXQ1_rxA&x>EM&vMBJZcXjo|It_vZcreMlg=g1;e4UA zs7AmuUx$FdwN74JV}iut<2+;XMbUPMM#K91u*1rWmQ_gHtdY1yabO2$g@4z>KWXQf z3d#SP7dNYGe0QRgy`67fo*ccdxSrh5W_gR%=juk~>d3*d&sI>iDze+x^fz74fA3O6 zEBb%8PW@eGXpUk>rS9A*b~KPg^xK>P)Qta;V^Lxa)6tZml5@bupfFl;GCU^%4}cQl zwW*492?G*CQh8|v^USD<{(}xrcTxD1>uyv>qk0+BEmq6uAO8ciGQtX3%}i`IMu}F& zjNnuBFL%|p+*ik9`gAW9i!Jn9YFM<=yDC_0AASSsRb_2SHr^mqf9Ms3GA6R&#Z(zTsQZYh$LalZlOU^yyu$;g38k zOTG$|S4NDi{iHXsfs(}Kr;}E-)ui-mNL-XyNaqab9~P&Vy{pvP8-q<3|Mr*O4m$k7NTQEyGNTQ zF-Mx;XpK^@Bg2ac^_DznGi&hi*2$9173wSfa(7WIoq)8k>||506$7ms{|-8%%l*Zi zVa=yb*o*Z!rT(uYJl;Crneg~~W2YB^>&T|}QgP}(8Mg7Og{q>TGwz_*+u!XS?w+3hH&GtkM{`sX1coC`x>>Mm z?sx>MC2ZP?r;ab|#;|5kqDC(sq%@(Z`XxuehTMV@LU4a#kH>=s(Y4@e4EW8PifshN zN*GJld(K?_{?aUo0=9ZvV41mIrG21zu6>H?c0tb+ZV5>nCrD;%(o>F-F`)X9Oa}nuVRfS{%`*4vy5%rDPtNlck%q2;{2Ly}k@$xmZRo%0$$ zpKGktu_1*0e%KGD|KbRWbkmYo$|Y3fzF*mnCM^DIIqOMvX7#u;J}rAGa>ghfcB_4D>ivEa{aG%Sv;Eh5M{mwrXWK6h_FAX=|GoD^HEI42()Fn0)TxdWwKr8th znlg=W(J(e5?S&9V4u1PQ{JMIx7_A>OE!X^|kzUt(I;};??~5-(g2P5 zoE2qf)Ic8vo9(8J6os2e$=la_FM+2N>M8d@tk>~e;`Kj0E?m6!xiE2SP{P#=OZHPB zJklv06KCm@x!;~RddxfUU^1Fvbyzf$4sM?PeK2TY7>UUyMsYCZJhjH4lNyI4Z1Gqi z*1mqZ|J~m1>3>&?A|SQ=Y8f?4gsd;f;%n@`G=YAyfW!l63**!dM zeZ9B6yLZz1Kl{5&vB6E7bi$WsJMJA%e)#%i=V*7&d{I#+PIYsWesan7rDN zjX9^4$r*3RNK(%w$GKlh7j7Jn&{3qkFut;UVOao55QIrAgEa#Sr8KTls?+gYB{pxg z#30)~Yi~_Y-IZg=uu)>&erx=gcE6|U^va+$pSdnR`KqYgPWVg1Ys~4Kf1R+`*N-%g zl+`F{w+gafKn%cp<`40MX^#ZTbCCSax7d%jVj_Oj1Ns>knK_q+5K&#n+Ys+g|NFTm z6jzL3746Y^Q9ou@qzIwVZ2?wW_&xfPPt$2lj_f#_WSy*EF%ohzGE?eg1!S<^b3Skn=WP0Pb zrIPM29|>(XYp9fi_UjSds>e_P*+(yrPF|B#7CbxMJNf42_Wprcy+9UL6bQIso13^Z z5}?b~D*X@osB|$0i zr?kVPl@GlT#WJj+SylsAP*T(*)~9=Ct!>(4Zw}9vf*PYQqSeq}u+U@?tTT973#Y5B zmLH{#nMP;)(yhnq`1)4f$s9v>Tt8O)vv-~$Z;rVmyR2(hZzZ<9jwOE)O=8CRSM^JP z(^Wk6SlsC(qltHo%1x`$rtXd)>J4WsafG^vyHwUzlW+#wz9`Frv$jMRE^^KD^4sIY zWbQMXC;s=Q1G)d|@NB1AK*P24s{SSCWrn-e4TRA93UIr>Vo^R;W|zh+$^o#zWS}%v zhFa=;Q9GDx$s&zuTw>vEOd`Q0)RX*`OefZ@WX-~9EzGBxPMaHC=!at?{e7c-8O6Eg zw5IF+{DQ?{QPyg)8Z@09LR14nAsE(%hBDlVLRnibl>l(yozGd-t3+nZjJid#^7UR$)5 zH0S2z>5{ZieeS+*-~N5OS|(#gS)Zz+a*w3ax!<(yH*Jf>?mB8rW7_&KowO{2?l=F@ zH!f&(Kq2pI(~(mHMu;8#{lTU~V6-qH3 zkJ+M!)R9Cj0@bjfdkyQoK4UqH6YL|u?V2jEuheB0hDZNWl5Zj6cjBq1uH+`PI!+o< z7eh)GRxS`OoLYiDNkNn+D(9J6SaW0)6|5YvaXKovPcqXPN%Lq}h0^2nx&0}W#?eUk zrWSp^G`ErJEqZ`Pi5lSZ8I`fQ3T{yq|7L1p!J@sH@vuQg_vC8s#-n_cJ--*zf=f?T zEycQ_ae^Jr5Z_6^CrUZQRl~5Bjbr+nH*l;QKAqStr6p)RtfSX-)M$9yK!#p+<#?MR zz*zY`;4Yc?sl8GHBXw2IF&|S#y(V62;8Pl%RFad71a)csXNks5KTO9!)>aY0cWubk zeni`1G3TL)u$F<1NI55sa4R7}A!@^6x#nndm13p3O2l@=ePHR$m2t|tiaJ23j)iH6 zt~*zJP9ooh@h+exm4@O;f&8TCHSGtfPTI{z$#WQ6FQ9IuYPCM7efrbR`)i}@rKZ`4 z1|oyR)6r6LUURc%=$OSr#I}QU<+xO-T3j2LWagU5&5J{LWb9_uIeH?)aFWE;ETIAB zP_~fhJ-CG$-bQqy=ge*WI{>DdE&Hw0#bR9(9BJ*J9qvS~0Hhjfm>7at?%Q92T^^df;mWvsq6gM{OcFS08Mf!1_LiP1fn;?_26 zPoC5_$hy;hOdEYn=W>u>0bpA-8hz%g+{MiU;@zNz_bT0iSTs0_ghfW4}QnKEd<~wk#TGfjt{kqK%Jzc z`5MyPKbOu!{gIL{lQLmy^A2R-KbRk*dwppY^(|g{Rc3}7`ju%9+KF&AL{gJ@+)wEd zbHlt{k|8f1(St5)E|%7+-Y%*XJxI(ZVz(;!n*nIO@mNP9KF42YR|(%r@RF-|5l)=6T-9|>f12MWjuy#hpg%0=t>?Nmd-2Z_I_1$={F)d9R7TNo zD;~@KnX~Bk2y`t!&?sJnT`!8t;-Yx7f67hrN-%%bU+0A~OHax}lpID!5dIZ_KKXkm z#D4nBU|*EX*)3{ZNz&#Yj@y*OQAFGjZ2$wf!489W>8bb(YoHkWRt_>1MSC%*7U%$< zOHG;7zE%opCDlcbwy3p>{X%lVNLSZt^(}y>9SKRo8^VwaBE!vHF}|-CMEFR{B#d9q zOc#p}ir2^|U>px~&0*xifgy#36`7Sp;;HOv$Vr}z=b<_Hp0#W=Wv}pbI8#FicrtsE zNF_(r7eSQQDns`yDlVwdvJL{OJhF(9rLaw%+C$Fk^ zI2>`3bK2{dNv&c-yP*nznLDqix$x2v+-=S^m7a4~O9wXa3$w3uQ|H;RP`+D@w)?!u z4}Bd9`(5@YGjgX6J)QhDijEO`108crJU=HYmh^$%>I!}`CnmW_dlQe!8hJiiE)$hq zZ}xLVrB8-DYW9$XAj-h`yfj=#RhgE$4BRy?fETcTPrvu4P3a;KYTeZ>>+Kzuuk`Y*<&U@cLF`BzYY(q$-@mze@k$$i1aLdZp4{c_kF`}8cPlo`Sg#Jvy*jG z1vT%ho8kn@-RJ*&M@NLY5e6p6?oP98Ro=x();DIZRR#5{=D1+anlr^W6uZIHdyDbR z=CL8U0~hr$8@5S6de47*IFTlxGK)0H0e_{rO{q}b{EfN>u#o|H)+PX1H1#e*F}@SX z@72QrcrSMj&kkBgt;3^3uCuDz9Aw-8kR9}w(_#7{!ac^eZ?SF|WIwitvLDt~#Q80k z%w)W5z1ll_X=PC`Z!)6Kw(Nj|TnfeFr&3&M|0VMJ_}pij?^2qm^Z(l`Ulsf5!Oqb) zt-bGd4q6BMhkNs8NOFa~+^53(M`n7meit53H%v_AMj8E;sQ#t^A82nm(WvXKRF2q9 z6lI9PIUP~n-*rc$DZkx5J6l_o$e8gBJuooNt+Oo4-(}_B9H53b2VR7t zKNyuWK7B|#+pqU#=6QRNp2yO|xgFzv9e9(wkN%v_>Ca8wp*@4n937w0xtci=FOs8E zuPg1_x}h{98@XPb9v$e3#c$gJ%~IQ{UfNadout*(WG}-kAbSzgAZ1++Lhm8iVi~ER zm#N8xS%66FNoEbtr{g3@O6aEs;hoD-)0#J=pgtA#=f58|0+>C0<0aG0*y9CiN}5ML zX3*i#V8?Z0jAQ7p4Lr!K*>z6R7KtS1fa_|Ju+v0<{wm6+-5wlMf3)}A-cHp|$+PtO zboYq;{RQn6@3qBS&VrwMwxA@HNK0Vxh@#bX-uV6ym zKfkTDlCpY8ZYx=xGkcYJ1J#N7)UlrId~?sSmNah14WelU)SqKvv>?0&7KoZ*}{YBQq?-&dTBbtZKU^LsU4eA5mHgpH@T@VjvZF1%NgbGt1 zKihHu>9f1lEO9!oy0dJP8A+y1(4+_tbAw=V3)y%+Yj3-{hjs}=snYkNbjpSHLG<504?8+Tvb zjk&8!?0!7$Pc}=~ggN4)@5r^?`Ed#pp+P}Z#u#cBpJ|vezIsHYX3Y5~d)u#l4PZXk zh#kskfjAuify^i}@;N;)Y756O*#%a2F(J+@n|q^ilRCp(8BywN=eTu963@Z*Ke(^r zE4-U>03=J^hw(Z5>H6mxI|>)0b)m!XGLCwVs|q47!5xL6R@nnaJP4RSL+rZZd^ixS zWHPz-pj1qrY(cN=rEJ#AdOa*J(p)=d7KQy7MprTCJ5{6>b{^D#ZxW%}KuzNW+$>sM zvWJe##qAv6>83Lt>+_fn*uN@jKdY1o+55-GCr4*TEq1K*CViHhvowoJTCSOXhf?vc z-TRY|6=)*6*2(Ie6 z&RAtKvlR$DSE}DmAoxQH_%}%b4EOzOr2t#WZzTnkRrrS#a8D`V=B2%>6mY+_y^9oZ zuf_d;loYW0>g1D!fY6c^m_Yxh$OQiuUQp)j4_5FGR`56468}p$L64>L9p8mrn#Z6O z;0{G$UI1nlH*f=uchfYM7LRT5*y_@it&-^~Ej7~AylA!S<-3u$uyM-Y>`#I}ZJ>s+ zxwyZ&!@Sdv^IUklA8S!;!F6iUzpP>V#}FsgLZ_8Or>ZLipc#;1pkw>#kWqc@fW{Fr ze{M1m3?xI2$-ELpKQ>GqA&Ba(;_4Z&)cEG_ET}4v%6?0S*cL1wiFJK9I|6zSS$_7E z<{%vgyRsbys@so(xc9XOPgul{vb`uzC*o3?1x?#PrbZY%$44vqFrsN>b2klgRMUGYJg)y^m&~oj zX%dfV3)qOq;(`dosJ9|9Z-RJs6IhJ!f5}Gp7j1;tZG?ZBjZhLva>It0X@Bmnh_Ndi zG#kw2W>>^zyW+;3Q5NNM<9e2_X)&u?EDI4AH<%q%ag*sh$1{Ducjw#(@u&BG?#_(8 z-6o&jygO&VFW;fML3SMV1SUZSOagn4m23{WaUin6k;0G$9W|>`!RVM{wxz==%m#nq z#<1m$=&lPfXPyh-z%!FPzq}31pS#!?`@f{O0qLJz-;a(>XqK`GCZR})PQ>bPxF7N~ zj^(ZwVHnSt-*bPi+M73ziPwr-&J8A}2W8q6qjo92FHU>8*2P%Kn+O?46(Zw5pZQ>w zk*=3Y^hb}Xd0eH=s(v9X>N)FhGh!%TwMuo@WFdg1upmwLLYEvX1rPX{tujXsQ9jg- zdkl5M8|%ie8SKVyH`p1m+QdI6x4q{M<$$NB$RH5O%eo4=an|)=)%$hlWIaPU!b+nnwjq zn-iBVC91Or$z%t)iTQ|1ve^n8kbqH(gyFMo*pEn(X8uMPzxHf)Z$6S8k(;nXP7{|6 z>yxbBPU`2_R0=BMlZR~a4Tvg!noLGofT;1^>bvE4h*25gz`r5{Xur-2kqCl_Uv zafzG+%|Z#ANgP|C5pDPLOtJx}LpwEIRvl-*;Ppb@W0Q(P$Vme+w17oLcf0ZMypLHh zl%;gyG9Spo;8$Q%2x_W=SYkr*nnS0f1uq@ylo8Z;M{@{VI-bFskg;n{kdjJfBFyGt zN`yJ79bCk0*64uH1hsso6kxU=KbPGWs{1ajs}^>&7Tw&ZG9--BdP_=vyfG^^#{?(= zD@sq$q1-|Y?@Hu6*f5vca%rR_2w?m+*min;E*=$SInvqPwtR6vuVgRWe08&6UKxBVEi|IP9;<*X%hQkMM%Q;=LuvIzWVaD%^B!+Hm z0WoVt-x}PN#6Zu^Q1bb>;Z+T0H`zeLMrJcP^Px2mfOQ|&D4$IPddKrsgk>w_1u%>L zw`p#0=t$I~mXOj0QTKe2C>j%Qtwy79+d-a_l(`7}Qq0BdZ}m`1zdyXp42lmCg*F0| zUHY8*m*$}f1&+t(HNzPe0?_jUfV|NiL!MLIBH>T0X(t_k2zL;jI~@_h?WdjVO`ODG z=BGRYYGa%ZIni^+;?WP238FfTTarY8O^1Dix}KhG|KsR*?@$4*?vX#hl=Q-WN}*$2 z9n_bWcD7o;XuJ;->ROtE9$m(N`q>*j7&LFjOSpRr5u5NK-6nb&-2pr;vH0Xa=eGE9OPR#)|8rbOJ=kN#Cm6)l(Vteq*%IocG5*d;sZdr z(faQ^0Hd-GX5sUEE6<(66mEnrQ4t84$Y z(p-D|r1@Xb|Eh`9!PtNQm;BdwyHKJ3k9LTQ8#4gv>PmA303FVxNqrZQ_&C$u)W~5x$6VtjuJi zM^+t^|-KVUbN}Lssb)-q9Tec+d>RAhHNd<&*a01b8=HzFp4Q|#CVJqzi!ArJo{SZ zw7s*|!O_n4L2GyKn`kXsSX&{sdzkRnrteO_jt;k9?^R~0UG%mdy1|{QVP87y_ju_N;uRT zMgo=$)|wbv$5jzorOgREjSkIB1Sjqa1HNf71y3g%leAXIlY+|5GXcGhqmFD?i5BR^ zoy4R7K|HtYdd@wD zxt~a4PTdSvk1=Cfx{O?uqdBzqFAC89MUzHFcFo^%46_!@y_2OF>cZ%+v|aky6_Nz;-ge(ch;1Yu?wh%0HU*w{_at=>$f$C}uATHiz9$p9j}! za3`$STY4mFJT?ARHFWlEZ$BQNvnmhQGyN%+b3CCs{-h6${hU86xK*Nx_O$2M0rR>j z|7JCd!|ojvinC4ps7;_c)2kn)83P4t?3$=ifAibINav~~QMK)4#er|@LgfBR7!dEF z$@hzMWrjpMWjLXon{+E}TC@EV`=-IFPdHf&6879`>~ktC zln$`yj74oZ$($z90M0{)n2p`@ZbC#QyT{PIxiCT)Nw;+c=M#o{!}!v>^(B6ae~iuVzbNXqFVZ+VI=G7u&o4=gr>9KfJHiE%Azdm9w$< zwnDAFghwFs9Q&uaKm>4yc2xy#!Bj4jqLVCB_-n-t@?A=+vmMcF1eL?g9U^#1i?3-{ zoeR{V(`0WT(w}A}quMz-JUrQZ`Q~(Qcc#LQN!9`!)wokSE1Z|C@>={GFq-7UMLf+* zzunnB+}S%gpqAVeqDUtmc9MR-tOyaBvy(SF*7i|GHL#b=PuidD1S_uFI_W<5wiBO2 zy?_0czG>GR0$!oZkuLnam|Zs3x}E>9o=9H*#u};rZl3&LEt|8et>dR5Hz*#%i`!o*dT;0N^!ITE%L{n#c;aY0-wOToCt(LMZ?%w!=rWB54Erm_ z6YEJ0GLhvj<}NoV;u4>MNp`QmU(qCR)MKr}IXRKHGWTnP*-ISL5u%kddqc$WbnoPw zm)rXXQH}pRJfdTFj7l&o^gs^{%`Htv`d$-g8)qxM0&^P?=v@a)zc|@wIBeh<^GMPm z7&u|P45=`g>CjKjO9ze+ci|u%CeH9wF%En=wuaq6>ix=t3yGg?cAWJ3XqKi20An8a zXT8{C0ciJzYH#~|o^{K=csx_ot8sE3eLd~w;Fn+TpAp+8cQH1_=`~T10bTO#aphMD zGk?hci9um#xs_V`H_HET_6gTtnzG+$T25 z+$V~g1ril-S`@4y%`8pH?Uw{9O4{;C;BnQiuEn$pfjjSV+?UQTU?g6-YGl zG5Zkmw?R$i--<(d+1GObnQH|&FTYxOBPw92f1GqK!647?j!|3dcy4VEPi|@vH^}9! z<4LniTKY%DNrap6^GdllOL3`gl0gA!UBt95UvKt#v447Ht;mTaAnYoNL7{UcqNgx! zz83^1nu;Z(NH6jQTfZ@LD+@Qqce5Fg#Q3n(l6(A@>$%~CM4V$U8i8L~Hj-4=Jvl`ecvl=F?p4d#t#JL>dPL@beP*H?cVcBFx`%@~RBw3u;} zm#kE*UYmkxaycQr*@>aP5#^MsWo-Ie7C9IJs~=w@N&-{64c*!73_#tJd;o_c!#5eR zmt~JaX&^U$}cmfX5z(B{@Xv}&WaiC#z1q?`J;zqP1PAzet zI2&nST%3p`xz4eJ69hrx_O6E=ng$ZSa)`^Em=H>+o{u>ttHk0v>jQFOtio(O)Dwi` zO(6ut-DOTsDoYhD8KKRKV5!bdQ4dNu1td&({E~Xqh~ge}QKMo7lEN_%F*eYuA%$AZ zPF96w;{B-`hXd-ykd5;SM7iX{#0ou*1uY!W$^fw~W}k%Ow7mgTqJD~60)kzvmZ%id zaD3Ix5b@z_y`XRN|2A3|PYG3=i>mO3eDZRRwiZyKDZ`t@SQbkY?ZVrH1yFecu?;n_iJb^#i8Vcgyw?{>Sn zlJBxMBCqp9H6P1EPWa;=2aaTt@9r~kkM1>fCla(w;xt0hSi6VVn#s&IVKrQQNmQA0 zDMqSV@Fvop2;*OA)Ct94K6APZnK9dPI_}uzDkwr!k=si-k_iFQL$_FFNlI4B@JIJq zsxsDzNruduU7x#5?!1OHuNSU>8!+EQmo(g3<#vLu1F>!E z;;23sQTW|-EP>|ZgfS;NNtYEK5#I%jU@qZ$xQWuPE5HVE^nNmF*el)#h4bWsXt-N~D&_8An`1EhN0PfMC@MC%I-fOYn#8 z9IXoG7W0RlW?zA^6Oa4Rx5S$ayOsaB@;{x$JZX(4;}+|Ve!Uau&GJ8l{l_H#uRVUU zzOk|1r0<&RYb)!2$p62K|K}g>pMSW2{$J_-X>xP0Yu@4B8L*^U`-iQskwn#MoJbl@ z>Hn9BC%E|1c&imk?!K5U)NRlCe*5Hjy9NE&>E219SUeuZ%UET)>ZP=%bhRU}FBfjD zdgti%@%GsbEwmVlbK-R~s0{9=hp$cx6=3HK&-1X5Kffi8wcTOa(_u#IG%R_6ARM~k zd5Ns+X5r3Rx&!8_VYVFf+6^GCTu4)i1&M8y!@0=v2?J(5!Y`BAR$KSrT5)78ZmWli z1{-oO6FED%_mcJc<{xJO` zrYp`njH$X3JZo{ZIX!;rT74w163L_>0){pv<8T<<+zzM>GwOV@HRuV>2#j>2=oRv% z33ZnmUcu{PI%2T^hBlLzlg;ttj06d>e2Xc|Ly5i#y4Kp16B2E&ApN+fG(#c7c)xXq=&a63<9)g3OoC2hh zf7Bj%X+P<(Rqf<`re!~A!0b)ohC34vKnK2RXx42g#V02?lqx}rP@g9Kt_MT&D>ja$ zUZ49=PPc8I8N@_yJ^ea#Kb@T1f+<@LT&#Ty0H*9vOEy+1lA}S@(R)Bi!pVsu$5IE~ z3hE8vzEQZ?!bbw%qn{k?9flv6sj!1CnGmhyKQS9#XWV$Vq8(zw06S}^X)8Kw9iN?4 z0#I5n`o?Y?a}El?oAW`IX+QHWW=fe%+_4pO$PiuW*KKXq)7%-0-y3QX*X%9_;$}SF zvgNx2ATJs=6BIV(s(|a+;Q)AK_s%oSQADHbrJ26f%q-RX>8j4m4SoB?7c*GehQs@E%jfK> zg)u6Jr(9;CVsk@nMXTXk^?LZ8> zFA0KZ6BA#dbWHrn{-8s1fx(M>k8a3$w59|$yx0YEV>-DkxGv}2k_8y%)3fc9vrX$6 z&H%>nH)bVM`C8uj)|_eT=r~BkG#^(Nd-SuAfX|$r-R-mO=at*hc|G<}k$8c-Y;qJt z+XkpiLCRo3pQe2gS6JL52{g!WVZ_q{;Hc)X3Pjjyz#E!}rAJL)*1x=HiP0*}i%qQF zOq#qVf?96g<7FkjUnyQ!E}!@;km{ToW+7C|5LErbrBa8z6TWCx?f9cPw7I-fzC>~- zRM$vRy*X^bZUlBnv9@$^&d+mpI4J|SoE@MZcC)Xa&nY2d&(=yrGR|M@jaa}_ynPBq`V&CENxvvqx}+^3G}U9Ln!4ris# z`FxU73*2x%EGNnPzFL{H3v z8__HELR1Xe^K`P>;X-+1)UQ;&NycpZluZ;Zt*%8!9R`woTCG%GjN@+fbq4IS@J&7H zLvcMwhp-51VIqeqRM-`I{XMY94zq0By_lwq6h4KKnvIIm{tsY@PdLiT(!H~nM{f>y zc`S{L^CpYG9_!I_cBM(i(aFo5CmT;U8qv~&)zzmUR`h@WXPPmjAH9t5c2geXzeDgL zCrO_5#jd)2yf1d*1CG#v)p)7VXjG%uZ%)smB;{}yb^FsQ7;IcY#=YK2x7ydNckW+m z9N54GmpVA~?;87sPtN1cwQ&+g z>|;6@+O?%g!_()c zCAC&#Uz}mzp%tn9QgFMe-uAE}Z-oWCb=iI!aOAjc_f zs<$scv69XN1NvFepY1!LX>-*D~E`KnXhnUCQpNz?0xj~GWkCWvKYwrft? znW*raVfvxY;Rq6l0Al7(tU{71X_63fo_&4`FBkI$)MYuDbe8=g=&6u^2MNR|%yV%v zzdB9FC+lbO1(5`El2-V}yG-dU6qd)X4i-m1?!im{=T)W)IbwGp zgst9Ri&g!UyU9c@*Tk8=rxWkUlWE?kg?fRx%r0--kUP97UcA{q*lnF19UYuTJFgur z09(*puex1l_9%AS2c@$h$Lx#MLqI+vJK}D7PLeZZ9r}ljuH$Pq9&_d9xLarm+Iy10 z;=$_5N?}73#y(RM^sl2HFcspopde+@sK#Id80m^T*LYL+lzEU3M2=@NB?RxQ!~WnB!%zXCrl>l6+$bQep?~cAOVdO?8ug zI!Gr1!T_@XM-7>`5-sgQlz4iQxNliJX-3-Q)L*)G(>8K}CF9K~T!^Kwz@gNK*^mWu zo=M(APp}#Yq`FMH_4dv5KJK9ha~E}gz|}||BA&to*bbaV8lC0C{B1fsJfk6>7=dazvBws^5nb)qQ$TOe(?J3srnhdJx1mj+6r%9r=4*I z_rtf;Y&W~gqrv1aOE;{SGMI!6A)os7l7pp(904T_{$lp)m zHcfBzincNQqIfyr1PT}xywm)4b_^XPD`5s%$Gnpbcr$hj7uEf!7G@67bmL)k-s!;k z6Mn9n7Ty9!Z&5Vdio=vI&BDm(%msAr^xwsKMJAmE>sJXPDeyvl!m-2BZ z#7-Da`B>4UwXYFP29YBhG4HfL)G;9a9nF>TZDY)!u|=$r1Um1i=64X|-XRq9T_ZYW z5;R7iIM^bL#MFrind|1ttyG!lZ3<#AOxpDF2EvSeE3_pW)e$+`>t|PXN@%#Rc6RvC z8k)=yM>0vVStoqM6EYZKH;GJBlX0;CIKPQTMG5YRp*fhxAWm79M$tov7AN&lmJ`Q% zX_w2Zo+eFlCQ3YLuODCe6Lv9~jPlLp<#Rf5(>BsrEK3i~Kci{Czf2=kIw{+CW(L37 z9}Fg9}8++TOy(Iac~vVgY_Eboem&Qrkr>_c2T_g`0>iqW^c8#)`^xDOe04S+PWDZ zT&aE;T$ChXW&d>!66O{c3fi0IlW=_e?sSBux#6lGjrtN$uz!5HVG`7}>Bf7{cQUR? zV7G`IiFa}+X~Vz+o--vH>WvvNY|2YIG!L2^H2(c)ASBIr{NoxnwPr#5sZ=Mh?hg7^`KqBa1G~# zU{+Sd@KjLOu%(8aI`A4<4dea*CM4iS#kr>N!}TOV{GzbIOk5-%lsJQ}Fr1i$5=zE3 z4LVuOMa7W0APwq-`Xm3~Ue5}y0 zl0KRUy=U9k(d*N1b|gWG5as%}>wIhslcgX9qP=BuAJg`^Dy<7iY3YK!6!mV-u_?BC zq3)I;rFI(8*KxmR7zxt^G+VR)Gus%GShEqH!th?8ydFph+t6`@TUYNC20}YJZ8)w- zbEgTMfyrsYT?leta$6vQ*-$l&%EeZ1b4^R64)X~U zh}m@g5ZjqYy9Wo7H%0Wr$fubR(|DnpPi{WxAyF?wFM-L|X(FPwc!|up;zcxI^syLt zXB>(wA(sZIkZOUNaAH4qvjm{OYaF3Y%(^Q&09^4zNR^y3B=O@A{cJ#Yo6KQmSInlJ z8<>Q|P!{y;g76$mMrNhEIW;>T;2iy14hgF_^ltr{_DwvPdq|Eoi7!9G5Cg0_$t&(B zmIP?qBo<9N4vk@Qc1p_|#ty`y#zut)>rLXAUnH_!Gh@)SiCxtzEFKC3NSt4|8Dilp z7}ZzZbU?eQeO;*(IEkg^_Nhj`|8#=?IWrO<9+(9 zaN%!!!hQdBJnkk6pb#tL`ja&&8Eir9(5YSRBC*;$1rbF$hDLU{uS(i%3mG^$slsZ%Ti@x<761n>;77rB~`@a3q_wt1V~ z(3JkmUm}~iaeUp92$AL4%%E%^_bOVlzaK?Q&!R7)B@8>Faep2?saC60M{@&Z_HiVm z$yFwL6MLK)l@k~xFVk_Z#DvDLhAY<>?Al_daa8&we|vnuObr{mF>V<8)S z0a#tV^1s3fLVoW~JBbEry7qGD=jk&j%)5LU5bGx}M$v+zJb?F)bO$eO2R` zNh#pDX;IIB;atIE=-Vx<} z*yF&6#jF^?5wu`}s?N(t({aieJyDmsKCEKwg$In10i9b%H2VgQbkpxd zu3$sbLz`z@u&NXvIG%)eJ?7CsNS?KUM4Xmrc zj)`5&APL1GI(83)JYu)orER-r_GvAcMt5%8)G8bhF!6FJ3et_RbWEc-&ohys{d zb0+B6z)VVp*H^3(GL-1?#-DiuHdj{uESv#V!u9!b#AHI#Pg_b9P`-WLfC1rz3u7T( z0>llep^-&|@wM{zEcA!h2JcUv={y_Jk)6m~HzHXu#e5Tj&e9KGoqD_jm6+Nhgx(Zx zOTAx|B6rMK4GYDhUd#-*7>s92u2yK zC2_c5#hJ}tz-IDkKV79Ax!@KQ09WR;oAwmYMoAHC^*b;e=yrK?yt{q2x2Zih;KX8h zH5ZaXXC0qJU~-iOZx>`C2s9ox1`~}~EM$!fsb_cIYhl}B<0=w@KY)*6Z6bU-6j(<) zCQegMxj9a*qrYF!P_oPX{dG}SDr|A%BL489ktfSgis`dDOel2H>yQ%aE9=W}erx0x zlR=-Y#}*S(_}Eq_za%ErVe}bspOMcKIN>+6<6J@>R)Fxx-_2~?l6sUohz)SQmvo^jm12x=Ua3SvuhDmL z(Ko(F27(^@m@`QU6k(c;J(>h9%`m$XPLn&DyIvY;G_&6I2+$Z>N4gjT$m5|{51?EO z(ti4VW={(C-7;baV#=B_i##BO4Npz*u|d2p)34uo&#d`-#_dcNh+oo9Erf-vQ&@AiZFJK%HmPFB-z=A|~=oqAs0K z-=lIJ9+l0F=w;G29+kVansh);iTNS^;k@v=9#V+TChs3>H`_lwigv)CwbQPkAkzJI zEoh!98c%7nV1`fj4)(TB_v)NGc9WG?a(S_O6kJx?RjkqsR_m*aObp}Qg54nOo-su* zcER>^l8N&~4)+AsOc@5UgB#STkUDaqLdF(@2yuO=W5oBRt;fHK@U1{MHY$G0xG>^z z7m5Y(`k06bl(mC7J1*H=?);sRkI^d-VQXs3AKg(&jerrlT%Ae&|#|(iA`=pRx#X>>%qt0 z2UX3}Y{AojyR~L7Rv(n_O`BMxDQmODUt)*nd9Bg(T>#e_tMtI>xUpx5;Y$b80m{6Q zSqx4dFQIvId~&q2xBKQ~uQA|@&vzajl04-5j6zf%r{a0|#TRMP4Osvwi zMR1XA0Sv8#=q@YI_l^!|wX|oQeynnwY$LNcyjRq1qTsq<6{TjeR~t_o%~deyBJEuz ztc8~_!of)ReBD;`Os346q?4qcjn9b){=@=?&6==(czU*daDbUnzaBl^`jI#-Vrvtx zll6(5LGe9zz14+IlOApqcRP{CzcLYXlHC|yVc{>L?li7g#=RIik z#BG_K!Eg{CKj8x=&g%Q(^3;6%xTfBzEaGYk22Ns*#Wo=}>@hnQ@irCkO-+4ctniD9 z5i7~T{CIlo^GE`;_-y8 zU>y%X##vga&Z@t|`{es=65@wx7M;cankN11CbvJpEx}1a4oQOw5l?oW7%So+!REn) z^b=96>D87`+qg&C)(_bdCFOiN(?emZM~CvzeKOR z{A^`yt>zkmdl5UmY5lreRrH4d3sn)qxntGxVVDI~#N z&?%+OTtCmU^L|qAWP{tB52L>w?u$i+g90Mh5Bmd{2sQ#tQ+m`vbHcxf-~FB zk?5fVXrQzG!~L`U?SuXQ-rMzrE*@JUsg4-63zzCD{TSML-W#-`n&c(Y!JmO|Y7#wP zDFpg7O~!~P)w{ce+Oh1gpke^HIe$$1Uoty@Wl%QX-~=}uA=y5rX-zHxD2q~Xe5MZB zCHD~N;WDmp`y8);1>V?@i<_s9GZHa&kGZbxN?C_$Q5YEaC`HE|8IuEgQ2*AL{tzFL ziWl+y%>2Hsj4l=Sop25#9GW0wWxYFnF-#`>^vmd}3~RlFh7t?puTa51=nmdNK8u=Z zsS$DXDqrFAgLF9kF!LSr+PJQdFW1>+%;#Vi>0f3@lHp}K&W60IRtso22+V=-$W+&+ z(h|5aj#KN83!~2dvDMm1P_=l8)8#d!tvgA^>CMK{7y|k6x7ev4Q@c|1 zkqS5dSLc`UFi~?8a}4#9vz?CdGS@q~pJhaVuu+Bywkw-^YSur~iSi~8#ah@+)C?0U zaiW0w(D`%V1H(S76M^=4!YeiKi=1FKv5K}(t+0@zxG{^O;834Su^q^JFSGWe#mb$z zX-}giOd5n{CbMfRd;#qWtlf);*lNhQB zc*F~jDehL_yEv*R7eyyRNMs_^y@Sa+-{Le4)3Jc%Lh)+~PTBX=sM~;HOY6oWH?~Co znxo!ejDtaYnU?U9$V7c84l*w1o9M@J#ED1kXOmn4j%Y4DI>eOC#%qaPSOz#VCS*!(al{TAO|?XqGVKeM(X8_OTl}8* z-mk~mPs#gF(CU}4vvI#wJSDXoa4103&aSw%J-jT#`LB{OMV@I$D+ zVReGU%Cke;vJqpJ=|E)5`o2!=T-^kCV+O0@Vj=P(1|sH2_N`}s+gh}cO7sVO?b1s` z8mn1yL^5Mf{3v!T^RI3;Q%Nf#VWuE@C}1LWJWabYyN9f+QU|`PSlo4WCN%l3Ss&Dq za#XdrLE`<6#*$n@75+LN#^-FoVmkA;_%ha5W)luXQ;VvRjMqvE8m~OJHdcmCInTsQ zf7DHduUgZsa?;Pc$u6vN40ro8s5^9<8T!m(F4WYSspClvGy^*2Tdb6>^uDOuJyr6bD z@k(Up2-TBMIDaR#pQ~k`Pab+n^GT!hT~zh3@N}E}t*TvuMyLqbj%ju0D`3;D)tck| zy7smg%kWs;s)#XkQk0kUOMEjq4Jj{y^eFlpiQ}9bgGnR8pg3mTOEfxnEz?P!^m|;5 zjdajsU=B}dx#UA9L1e$b)%V2FORN`aN9%H0uPoYe`fC9gFwCGhQk&V@k-ShkQl<7r zTXa*08VtKT>Z=&%vWpC7JuCQj{r>M@GGlo4WI6G7z3hFT8RfZxBnt$_u{A!&0aBYU zs_jIB{IUbJIQy}foZH|%O?bg4)gat26pS==hw=G*?)PN|fMG|QwhvGDgI)Y>I)p6i z_7iS}RX^y)IbbU_WwH?~f2sEh(`PX)=FywO{hg!Ty&CIgx;Hn6h2gb?Ulto=jOqaH zXGHzkq8#TJxUslDDozLlKTvF+*o$BDDo z$GJCcknwCj2+l1av3Ig-SVR4TRu6^;X<{>C^nklygLaxBKj85Sb9vl!xVCD;fE8E+ zQ4-)fhj8w~VwvdSEB+d;Z6O3;-Cug%c2k75A|4zhn%R}D)-O@>cXh> z4c0|7F|ad(brzRiZy3e{eok<%Gj2B6C9zo(Nn1U#`G2zU^>gvLKzv^mHQwTQ+^3T> zo>E{^B|kGUTFBDVVn2XZrwuVwI@>HnL#?lrvBQs}?diE&;O*fsj=oOVhL_*qENxk4 zXb?65!xfDMe!#l=jIjlVoTa1Z zPos4;>6Lo-4~ZoFE9ZZV5}6p^=6c{cLnQfWiSp`cxTbd!O^x!1ITwv>`6kT~D0n)V zc2icsKPgBH8`0mUecRCSSOTY0T&y$CthGIgmFd~(<#Y3 z$=wutB8N-}jrDkNAxK7d!Wl#(Fl@2Oj;{VhFv>##1JAs?Q5w47&*+_xqn9RR7~4c4 zn~@r`Igh=Dq!(NB6KPwh#YdJBh}*M|Mg;;%E)uGl#&bq~eLN%w9B*Bv-nQR4$f4 zB6O2=H7%WpbSn35Od5iBw(KnB|0c zZc)CP`t}c5-D3fISlc7Mmza<4`faG%@T~X--Gs8`ccd7#}oOA2&*FuC?H# zlz9LUU4=}XS*w3=9X22PbhNoKdl*-P7GzX{GG&JEk+Vsb8K1Ox_?~5Ue<0Wj#+8bp zvf}Ga&zov)SeL|WEVrMmG~?dWcy+zgd)93}S!*}D?c{MUPP&~WUR&Q-UrnB^cH;-~ zy}B{fS682|tvp?STtc>oj>zm>j3L89c%fpqg})QMU@bS_iw_k3N)&04=72PySQm&q z#l8_vJWmE`C+ka4(`uRNdbJt!Or|_YjD`rqpMH|y*Ze}=mz*=;+1}~dX*7Yha)OPT z7e3e9gT-b!Hij4H>_5VK+x7tSFmA^dvtj8>eVA0(w7IK!2TN=$ZV;RhPJZh9o7N0$ zmEKS2m;@G%N7LN0im7M5%P&%dZ-}kK3yEO0xluWSW#K{9ccgFlpLa&XjjO0pb*IvJ zVnIt;H#AGTAVdZmxr9#)R|W&yG};CniDmRPI^KQh1e0`V{cctLs0z(Sqv3^Ti1mlH z8VI%JaAkq`lMs??7M{hjfK@f#Z9I)oe891eV;NAY5nHXfcBFB!DULJxci=y`#)yn7 z-q=cpz7h<*;P(-^zd|$$}`K`>m&}EIBw>5kFnm9~eJ|+921JMW~ z$yTE%eMaLFB@$nNRe|_23~mRIKibsIjasy(_aD=+U}W39 zOl0)5D~Z{XTiU*ay8uoDeK4A;g0J+$*g&PtObmPHP!-}X{{1jZf4a@fM0Dls2CuAd zA!z&m9DXM<8m%F5VXyk}PxB?TQx4a#aotd-AqXx{)W(#IohaGxF!^-a8XZyhUQCGN zFa{Y3zLvCgux&IhzO>}3VJe^_fwN3zoE+4>X}ESILS6WAc%-X}~?p6-Y5IG_~;Oh3NQXf4a6Rlx*kO zGXYN&XQ7^kemfxq0Vb*#2a{}-5ruo}PL@=4b=(_>dlm;`0y zQ$bP^pr!~Og){^U0dnT*irA)P!NDG{SwJjTvBEMb0vMw+DOjWAaRAw6lP*4H*9Fno zdIcQZC_AR65V8p@A)}ECia|Os>si+6EVwHAX5^x(= zXE_mKjK2zZO}RElW71`ton2%DTEoBp|Ng&pBM~Pvy*jwWC$?3{`IS`0_n zshJRjx`>U{5{7Oq=nzvZFK5f9#8Y{(eg?pS6Kq?;@7)fJ93z(;+pA+mDq!iHX{jp) z&?yav8A=_reGJG|cT60~ScY(vjeJ5===EK-bhKPR3>J3}-m&|qNA;&qA3v)%(Z4rm zFY9n&eD*BV%sqQ@cgGMTgcY2V1Fv<^G1J8RDLY=*VMgM}9upHR_6PPYG5*@9=vX|P z%Y>nlDY-?b1T`nvFhqOYQNhHWZ&pJwGR^2_;W)=3?SI5|d8E*DFc@FEH~?O5Aa)44 z$Z+;^#23C7XkZ(TT1T-)$2T70Es>H78_?$^ySGd@M|3g{t6bUuo)x=8HyI%c7XWZ| zfzxrwM6w0-Du#ZZ?xdH@#nigAo!qnfIGeCOQ~dhv zQQ*TYo=LR$wh-&REcYr=a4n9UElBV@|HGKWujx+}-aDNXhcm&AoP8)Tne{&p(*Gq@xtUg+>av|o0_DN>E4;rQ3k-_A=Cf+foi|8m%ZguVs zXaY?|(?cvPAqPUz%A&f~?!7=h?_?3aB-noG!Bf+bBcnGyX8X!Z&~e`zb#s0Y+#HXa zjY8z7pif^*_IK+tpqxFbj~+$49tYo}en+p8$qU-cCmC@AtGaTk__G8121s{bsApbH z^TD%b6KaZBsGX!SH-VI*u$W;!khGp1dLeSRkYaPYOVSnzFWVNEOpWp3C@gqyKe+Ik&*Mp z@1+LgCk#G89FEhWhQCdT#Q3*Kqp%4EaB?|U@IdixXea&bN|{6KjskSkU)qY?^cA}y z({3GKi$D-XyEG7lZKkzo^%;$b_wPp3T;E*X*d(r_zOuHmqCFToxGOK~gaUprzJDY^ z+lmKZuzZm|%D4%kNw?V@q+A;w#M1%135`Nh$P-;pa6DeV+;EbTiOOVd``kLQB=8fd zJ9(<$(32aUJ4cRcY)3N19qc>bzQWuGH#vLDNYr2lKooj#pxmV%4Fajv`tx z5Dr7x%+A9#_x-$T&NV@NqK3@hU3-3115xtRu5l(balR6SGP8yZYQiQNmtU&|w)Ei!o?X0J&3jhIyWJR5cXks(4TF!G}Z^ z55*tb?Vly{vHz(t$jK%bRfB$Cl$pYgh`UeN2mv73QN>+xNjbit9ahx^CjR~{IyE7HJ=W|3qDln5o4LD zZxYaUVCtHR^wUvgC|iWgEG_0Uj(?7A;F}=TsOm^jHi&Z96x&PvI5o3_1?O8p_>*q! zh3A3a8;9_+z6gF4RCYmdKv0`xa>*3`*R7)n@>$_4<9KYpTkt%)V&xcJGV)QD^^2!d zH3XdH+`$X!@PTzaRn#bPjgcwhvj_)H26CnqSr`LxX@TjMBzUw2OGacN!5Ft|&@l81 zSU`35LTzk9W{H_L2a#y!JYCakT>MAbq|IJ04u6O(#(o3nBt#8t{|SM1bFM3WbJa<}35N7_z~AH&8WR z$JFk`)zJ!mxK`m&kMgxC?-v9|ol%DT#EpoLeK!lSgeG###8*g6@E;PK-(d7#i%!C)PP;veoC37%YYx7ps_;6vDwroJklLB>7S5oU%Dp z6B9pJ7wA|U-b`Gj!Cxrazf5grF($MdU$_VCpbkV1)W8{5Ib{TQkqIDo&cPZnB{fc) z_nQ-A(~)V>m{U$CgZLJ)4Qd7$I~hwddm3g|W`$g9nrKtCAl$h-WhO~6x|w(*6EFmx zml;FM`Iv-ob~I+7F(1y&=*nfu0to(4Bm89belu5h_CQ`V$s>|$;BT(_l){GEKk~wk z6D`ROG6NtD^X8vUvH|>(nX);&kI7XE5(ViL&{v4wT#)o<{3zJI`$r9KMDhW4MUAtn%)AW~<>4FK4WecLoJf=+tcyOyk<=2FPTW@yL3jIn9YE>-E!*kU81Sianyj%3w> z1C~dhyBH?65@RirKAxr7O?gVhEUb6a%xni<{9=DG>Qdla-r;lcjZgro28XUp4Bm8R zN}3c^xGp$T*f3+PKhW)V$|%IbZ6@MJ9{nxpP-p@X<<%%1Z+W{gHoU? zDJ_&l7){t+W{`1T3aiM&7DH#SX?NB6JdT{tGoa|=93bFKBx-_tQDZ~cGV4S=FF97j z%(TWi-WVT7d?W?LqMOqBo-*W>N}jp~Wp~ipNrEwKBt(Ig>A^u8<3{Qc9u2I+<9}h?1 zb7&(J)^;h}kcNyWACk^gWEVN`u-14HJ}RL=6^Jlr;dywagWQE00;8^7Kwd?WdQUP} zaTaK^K^hLpsB3_!pa;d2$fy(ni05S1em5G$K^3>ogac_;tDi*JL96M($>dPLNTdag zKCfAYDfq6MHDgVb%%%x(uuPk6We4h)JY79#IzJ{-;cb|zYZOYu}t zxrk@XWkvAfedJY3yWH};=W1H4r2}Yb`U;dInSIh}FcfcQ+4Q`lRsUhzrRQOcUl%x37--Koo zN=I)SW&Lhx0YN>ni3+P_GQ);}R@iVJCeijd9^4Q=?b-b4k|BD^>fM20*u`T6FVg|H z$S#tzDvzE#Za(d-ZqOcCZ$4SwXp7X=?ljkvQ z8)HcXUkA4HC(Y13jLp8zZ0c-+zTI)D8akhy1E^*B{B;I@hg3Cu~$oxM|o-3ad& z^#*kgnzH@mi1+;@VL97@t>RNa4U8-zMh7EFvWp`sG(d>P*M-XdMYi&nE$xhhR`IbE z<3WIk_ZqldI%Dh}n+p)Eey|)s;u!}oBV&&<5(uz&RfOZPdH@_t`n@`SLSB-J857pz z77z$=QQjsB>l5V{h}*QE1HGApt{~YFA5>3*u8Wnr!~u7{9dPxrNt(Uk98=jDHLx^V z_v|2={>2!$^mX!|m65#=nc>92D8XQb|Ei6DJ8)d&TEO*n{HY&?SMNySuG}{TC5zT1I(7Sg_+RBdiUu0yKu zl5V9(r_B;C-t}O9P7-FHYK`6Xxs{gs<&iL@VYD8Rvfj)pxVBvOt#0FyxdW8|mI`QooxYpT%!Q|% zPL|b~@4=Mb-bVQ?GG*hHr=gG6?6E&ZI)x{9HW&{WW zklm`&=sV2_x-HdX^6M5Bo=Zc(5|^a?mo73z^hM~?;n7*NyZ3VcaBny8`d?+Qf4{#s z;lyl|d;PD9*Z+M&cv-(yr+dERqv6ahRFZdMcF{ADGu>=5$4BdS2PzkHVU4MLq&SI> zM8ywni`0-27{1vP-xcEZR&EEdj=PsFe7^E*^;x3?S0iGdL~L*W2IFWp!}0^Y_-Py|c6Z*L$tkM|Ad&4)=E& z3htcyUbi)4BI3ilZqIC9+VPGS??wzwx%kVD$ZsiD6vduy8+53duuwBJOx)5 z*T%m`S{O(|01e1S`oKYSKGkTYSr<)FMXPVLYK9e@+y`nl$Z%FbwE4O8V2N0q7&Moq zxSO8SvkT6X8gmA*@pU!gL}jWJG&$S6=slA!G1jbN&R1UZ6uM9u*=91GY!0VwMwMM7 zY7XF6P-UHuCC^0(6?sy)@wRtgOBk(UJxh*kzRCgpQn4Rx^4~7A3R4=xurY-2XC=ay z??N7mUTZFc!932xAma%l17o(iZ$=rNkPG{fA%T*EUQF4Xdb*>T=s6GsNa5_DYS zKiwmab^q)in-bz_hIl#c!-JdMXyJm#pnWXG&E^H5o5=VEbmRER>e}OWGk#opouiW& zUj!KOsWr@2u&T?-45j^dl67 zds4Pk>)|CnN<~DNb@V4zfRRqcci+MWAhRGsuppNJsz4lkl*cogKIX18$+{j;2^h%P zNk%dt88i4K1k^OIjkA%}#A%L1u{IOkarwL~O7Rj+;v?;NHOP^LTg_$%Gei5_4O<3X zHN1kM!UlgXW!enm7H~f8*i80S&XvQkOvYbOor|a<%moi#5u?vcp2oJMXksPwGRclg z(9#||XV-(ualsj=5n%VZWH=`0RbeD-1CEyRjG;(OrbGkQ;PsjJCU*}W0k+}gWYSp{ z7vKgfM>!(O*}CYHMOo5CHKMu}3oY2W@KS4;38~Jcq)aU;%ZToyRDFktt4-N-YDeyD zyQ2N15*n29oRb&{{C}@FFQ#&nHIoguUYvWFW=)1r z(=mwVpV^UONe7D)o3!pF6E?Rq;%a)AE=gB#r3k9Ltl_dTyo%)yp-hf`*kRZ(3aJF) zG3O;s0%vAsL(L9QC#8&1dNF1zjevPEUnxkLQ_?dZV_lee0`*hhU=yuxwA)WtSK7&1 z{M5u@h4mV*-8`&w0h8ZR(;>gGTioXFG!mO{Fz~VSq3%y4xfInuY0Mz!XecZvD;x=a zed@wyanq_Rh$4PFL{0YV1(<8nIB)o#*YVIxc@71=45um}LpHmbs-ZLS4)vEx`8@RL zxdGhZumWjPh1Kp<{fgNu(cTEGQ(^9OI$AO(&dR~Y?>)#bVAoKuA91wks&oZi&N%HN z^K+faN@4m+;MYxhH}lF1bbyFX&1r%*#0H`NX4uAi*1{bVSw8x^xePM10~P5j+vHa(Nd$(aLb=;z~fsM$FT#CrJ65T+K*anAy?>hsR^x$RCGQ z@Lh3!`91wl=Z6}5BwC;|cBa={ukl18={b|7V~cAl^}+Q_T^hlA)AnJDoyDflBSB9m zx#8NJSTPQoK`(1Ukun4rMU`XzR5E&OY6@PG3eKl(4HZy^8i#O7Jsn3|0$DFPKnxa2 z#{{=$V{iMM^LRObmP`Mlx^nR&sKa&-8M~7p>9L00(*ON!su-lN_s{HW6G_Q>2E}Xi zwJnjrL2F`AAgTC`Fl)tOC8A1nIWAbvK1En2q-0DKQV0|ss8dBmS^dwjow?lV07nS0%#>Aao=k`p%A&Sq4isiIxa-uw% z6pj7ueUCbwFo{NGoPQ*z6Eza=J0j|bOiN=wS#Skt2@bA->6&Vk zzNWeJzGk}(M@E~VX?Ez{;cH;$i!VZ`fJB^21pMvg!6I7@a)1dBCtgks2B9=COafB= z^1$9l2M6E0u1l64jAQIM!1BED&RT-YCJTqXex0*_)q8O5yc&bljH@n3HoOcS+YBKV z1jt6Rh#!)dBUZ;j>wZ3t2NwF@Se`WDeeM>^48(JOSjy8u+LsLJHng0xTfx;8A!3*% zYS6Y`RYipr06F!5ibknw0_D1Gu6(HS)e56>!&#LL6u8xdavWA$@!@>=v(=*cZXFyQ z9m|ZGB%iT`U9EE>2#2{^la#-zW|DRi>MDm5NE(NofRUoD;SqOsxP{J@q;gRg=q$TA zGg#^tQ&K&`6!Lp4nGg$pFR^}p<@C>knh_Rol9+G?efR1z8 zD>r|eh-_5ANKOKR!9b3SNRORdE!gcM#N(eGnU&N0o!J-(aUqI zvAR>u)#4x+nN_xTDRa*ZiKro^K*&iZxw#0f)11>KvKde7gGMt|KOxiBK+IZLb*mT@ z7#NWrsWi(OEHqUWT{_j|UN+BzDhW%jdStg{h(z@+o5}y>b`@_W)lKmhGs9QkKFK6L z%sio?;ONU3Dw8hi&_RLh9$^b#r3_4zuwsByJZMrZjezX4uR62Oy+i`H*wG2G-=c^y z11tx>5e}ndZCv1~&q5l@pak#X8bKmWl|sFWNcu_98Lftgy^Z`IslBUe<(|b(cugNdosJ)?=$h*oNCXumj10Dgnq4-)#&X4G3%` z)Tt8CNNdSjT#YU^_!W6!3W?cc1egh@!n*P%QfWV=DnU{lck{_~Jh(CW&rmSCi+Ud% zL6!ii(SGtFWP*g2@jI|=fj7uv#YbLDwiB5 z=5_fbIYpDny)YememO?Jfg;R)Lec?qZPUErL}qy^LC7YNAk3nO#US}In^I* zVt;7To($0Kjk~j2{=L0UsNY^8Ju;K55R;Xjb3()2eOXID%W*3HW=i znc#HjWHISp%p8~EyUK$BkMwq8OE@n5UP?TB5BT<%TUN6n_;I3>|R z%<#VAWFb;?AqGkAyqXFH2D?YQ=UY3b8pGu2X-pa`W9@KhReSyT9HX@<-)e?475f|2 z9fFsbOk%7Aa0$!his9sBd1)>&AF|e)X^WQX&2t!1W8BcfKyRbi5GRhF3fMHk4L-$K zbX{@TV09D0?e9cBFBOqojw3%&Z#s@-C(^U%(%magtZq>CV0$F&5ze(Q{a~qxh z6u*xr^D~J#>b$lpq|?VL-Z?osJv~0zd$}(_+P_Jq>}kkb(g=Ah-WYSCwaSYV?#~Ci zwVjVI54K;m_P#qi**=BFhy<-%Q=A zWeA^hb{woNrBV{t2e1pT<(S&kHZhcL+m0ukO&mPw!z8XC& zGz+p7k6|M-2}8ww@44+B>w^pdjJXrs4&QXLd2%nKprD=^yNChmu$566zjs!HJzx+b zWqweTZl#)DsPV)Arr@U*==qH?j;}BU;(dVjeBjdnZ31$ zzAid$`|H@IX5wv!vw^(>KUfIWo();KHe@?sr*~!F#7e|@z|?8=GH-Bdx`|23YM3?Q zh3yU3*E8nzS5G>$Yn;ve+UAcmQXD?sw9q%p_8Ipp?TJT+b8=X|Yvp&lbtK@;OKNYO z%R|7R_0uhW2ea8yVJ#eXZ1peUQc70~N%?^%?|AbS;{J)a^2xo$5&`G>AWL$ioW? z47>N2AGx*8?1(1!5Hzu#1OzPNVBwu*;;v5DN$cCv>p!4+5-r$s!|_Y1yRYjMBj$ zb(M}Xi!X4r7V9k+qqpY@YdkiC4j4xjL0L3if1g}mA^nUmb@2egxc{}avXnap?`YG6 zY!1aso&#?>*6@F3?4-s+(`8{%&`BhrR3a#VJ?y4W+j7}uc7T*%@Rj&R^4!qJo#-#o zio^>`+8kApvB$Nr@92T(Wy`E^Ya24%+poUeuJ>R*or&L`8NHcsI}bk4fhu;`i_bz; z4HVJX`K`h%H#89ix`t{qh%J+l7%@Xg@fAZXLc`zAC26WFB|55?Nf($J!|rr)1DV(t zc%gT_Y?KV&8UG|D<};3I7P8cLZ(Mu4x{^FuNj5r#yzbpE_ zVIwrGa><8!RRq@1Y&o!y>yN#8Vch-fUyQNsX(Yrm#yUxo!%p71OCiB$q53d(rC>P!x!TCmD-Y^&Hozv8ScxKssbx(;&7q`?yep z0sgFQ)3^}7V_KjVT5;E;`Eg6Gv@Y1h!U}bgF~Z8Br8NFQe2j$sF&Ml<32(CAN8*eE zr3;6Rqn8y5AICXK(2{mP|iI2%^!Z-@XHC7qfGp1rt zcHcHUr4J?qm0)`LLTCdG?$LgWG&)RU`d`&@9J*~>0c$mBaTGH-@@@@YDv9vYEPmGaBk^+tVGD9P+cdvOx}Luk zjVc8Qow|FmQhl0FvH`U5;FjT05F+N4D0iNf$Sm{b$T~;6OQB#V^D?kaK1?M4T8m_G zl2$!Gs=HHts$|o}69>6sgZkf@(1q|ze1o?hf}V|PXI;@dF}<`{dGL-s9+H075gO5& z2?k#*{zWkd-JX4Sre>QO1Gp9rfZg9N&%wnMsXslT$Cfu1XZuC$*I*Oo6-FriKvoV3 zfZx1fc4Rk-qm|{XXr|x8lNkz0o}Pw=R$6`ll$wR8QRYF$7QfZC(Wj)gU{cQFz2R#S|E(?oqae_CO({Zlgo>GmpAw&#yR#2BD~6(6rFRoB|r)>_^Rh-7%KOHGHR#$ua5VR_l)wz ztKqe{_XccE;gkIVk}M=9eKU>mCj)UhNI)LaT*HF5(}Cm*3>;yYfoK0~kbVDx>{vhx z>&&A~fU>f>3MWIOoc7pLPfpqZ8^Worth!5%7G(KhqtTFZF9e}&Dyns7##Lu&=OE&; zHk)op1*aG6?IpHq3sR9!+jSL3B2I2yGC)325u(In!7k4{r5lH>o2I(T>Z|`c;(Zwt zB+R`zrUA1s%E&7->tWSrM@CSTsi2)YVe+Tpvtow88F+Jc>MQ@$w_AO& z9Wp*wc9M*Tt@u@md$Wfp$PA;n<5{>~-an!S^7lc(o*f&}L-SB5Gy(MiibI4n=YjSq z>rmxlqT{9t!8lrpavYxHIQ#-rjWse#E3rz90swu#8%BR(LU@`hD+6BG=41RS?mxps z$nKLU^{hQLq;=O`d=|XGK(PB(efAY#|11~HhQ82yNt8p{ynj6=MnIbH_wh`;BDQX9vd zMf#NzNxnYf$e@uJc8gIOSmh{Ujz;ur2MsC<6BgryGfXDkHb>q^b>nO@9a@{T{Z4GJ z%hDzDy#$Ww@ghRN@v$r_*p21(>^SB)1v6VTL*JfmpMp0;JYTeoKX=3@1O5?1zFN(Q zPia=qc8*(zN4t9m+X`Ekv3uG0(vbc$>_BrRq6X{GUT}0Ze(avAocN=3B*|=(;bm!N zLq>q)-OyJ-kdb>G7@7?NrZr&L3j^!Uxx_4tzaQwppp^wL!q`BV3pS)CS8yDZ$O{@A zt?qQ}&}x&(c=a(g<=HZxs@}A@Ew2nIhak}VQ*G0bV+-R^GziO$31bJ&HLVb5!qXl1 zHJcxx3>?P{OXD}qlb8(E;s|3eGq0B#q|HJh@D@;A!)#CXNIDh*wbbjf$B+K`a@RZ% zL$X2*2nK;W)R6E@NNL;86aq%YNpI4}7Pl^YF!IDO0q8UnDgeTnC!UbpK4PiQB{f2b zy9A+1TEU_MQLY-npI<(AT`+Nyx>U#97CR27=R;nJp$#69?zT)32kfiYkZVZ1$dcmy zLR9jQ`Y)>wJE?JKb&iZ%o$@Y}Bz{J|cDI(@(}Ljaww&%btQ0ov7rb31>=&sN`npj#x|BYse~I@!r;CPQ zF|@(Y=F7d^!_)eg!>o=U_H*w8*6;-pHP98ifO7NQ5Jv#c#VmZvDAfMUS=)`tu6#~h z>~jBFrZn&x4undc6QO54eIvvB`UrsS`{M3mm(zgZgq=Ov-ru*!r_+}Jd}jH4)}PmYFnWng zhJ07Y3gyrl;`C{3m<{5bI$39|NP-q7{BH}Up~`2Pqe>RJ2> zM8dIAbXmWzbK2UH*|Y=X?{$N~2OOu+dxIo}Bs#Q#9GWay7huoCa%M3dgKt~tUJ-NJ z+auVlS_q#*((}JQW5hf?Jsb$lo}WI8UFZUzTjo5?;k{|tYT6)5j{nE*BYNr)bMpzn z>ocfE-AkuqU<-)3;l3p?$qQ2`w62@h@5R2Mu`2$ZGEx^ShFH}VW(|@YB2!KKZf|@w zH*p23!6@VI%=Kk!_x<<1;%cN5@!^(21^56_%X%J^W!jOM;d|S`UNhdssEqwE#ElV| zMx5PF|MB|8(Lw9${oVb;SCakax#x>*+!=gdU{w@4w=IE5tY4%inPoCGK9qT4y$3_4 zEl}DS<41vu;`_Kjc#ID~m|n==%PurVSS4`1v=YbHbh;c4l}TW(OsC1O$$rGLicBap zl+0xyl;CvuN7WSn@oIQJj^(cBP$=WI?%_r-I<(85rvl%?j!oap*?OUcM0Ncv?i%PE z8eQJIR?Cg^iXB}8G5qxO;LEL*Msp3yL+-8_-S-9*;D_o$IDuAZ@a!voF599oA+b}w zDN$JdAjVE{W3XhR>-ikG8fM=)WeriOacouYV%*RvWjmkEf;#U74$#NH9a~NG7uq#wdcwv7Y*k3zFnTDu+(X93Rc_Yny9!88g zT$NnSP6JmmQ-1Vy!L8FDhTi}N={K%gH*Lj}K5Yq+wY*SpGdj}&Nu8h$Ty>Wx)`T=c z%U*H~8=orG4*Hp#8^!i9i$(MZ-A&;RQ+^I1ITMdvQLs5BJYj&j$O+I)P8g+9_C(E- zd3-n(B*W%EA^)*HN;Pu|fO&0GL8jvf_IElB7KP8Il%T1Zj;wOmx?&Y#C3u%wm;Bg| z1{sTfN%Jn-U_IlUx^!Vo&o+F}lHf+%k;BTuu;9ZOKW-6KW2f6SE}MgOFY2)BBkM9b z3kL?b1h(aK^nWrmSfQEG;9?eWt`X-L8~45wMUROV8p{|C3N5g~)_V}uFBc?haH0k_ zV@K#^4P8`kxeRy{d&NwLEJj<_(Jej#958O{Br3|@pxruy?0}mh(z5mFfJE>|3)M#1 zUK(Z+^fpAKoY8SI5b9FL-VYb4oDM`t-DObF{53q$w)1uozVj;x=z1VWwgObi4Jp3!Pe z1AJOdOrQ2615g-4Z0kv`5gALPI8!{eo;2po6`o?Q98MkMVfG*hNaofkvUzQXAXA)O z0G{0=30^f;nt)J+7iL4MIrHWz4#E#+18>!blLWlp!~%NptV=dpoAFe(!TUsVubKqd zlJ#PE?aK?PPFQb>tJh4D%##I)O>-Mxo(-3!HTDf*S}#<|g%Dg={jhdU0}Vj$Bnx98 z8d|lq9~^HNi$l@u1Uh9@0NbZ5kj;_KDPbjpBrpv5^n14MM`G!goKs57OqQ-j$$@gR ze`Yn|^;x#sG6whqI1a4>U2q2E5;g_7AC}Z*P&S>Z5F5|+V%tMub*|TCEA8)e`Rz(_c=v?ozM*A&8L@v&zi9Tad z-r^0|+8F6cU}+TY1_1$Ms~%-uSt84g+!VTA`pb(PV&?)5WNm4YLUM^WwJ}C8$UISV zxgXGS)%D4s0QUNIywTIb&;Vocdh;Lx3euYah#WDO=@^Y=?@ntro-|gBQv)`$1~Co= z25xzYc1+Q^p(H|0(n#3ndGVe+Yj6jZ4Y=rWh&#O%p zIk@J$+BoVGpVaW;pGC@5RA)bEkJthuYWa+zS5);P2JuRy>qw>RR1@8cJFhv)WwN|W zVW-g>#bjdQkR)-brZK0h=2n%@a`9-K0zDWf#06c-EVEi8;V)wVx6+jLuOf7jaij{g7X_3{3} zUhDL17k@UJRU5r&x@^fI${e44jU8HTl%E?Nh(R0W)2q2=Sy5@KGJ}I7F3SXMPtrBW z3e3+t!%KmiFRnttyT#%-vutjr%lb=14KIw#Mzf-dx~T%-ofoXDF;yyjxvgU$ej{F) zdM6&?O7c_S(GH}p#~)hwvSq$(4AyU6ZvitKafWFFVb7DxY34yZvDUst82onhMbxK% zoK5{2YfhJHx&8f;62Mk2`?cvvSpE3JcdZUGH^IY3N}&fd#7@ zw#=`BIfSX4#q5A2wbFT9?wajun zV_sGlmgf?{E-t;YvNUMom9m--$zH$0;ox!-@|1^K!R)Fn$tkm5W5{2d>X-OxlvB zI`&Wj8+-u@cas=1B7`S{*aGzO;ka5pLI?U7MGy{N90)cg>bKs;x&miqV>shK(OeMyCQ6a*)vEaGL za%+SV<(6Y?{b^!VqpXdm(v_ao1Z9-Xp`VMdo?95r6hUHo`*uXf8x3sK_0(V^sH6%1PO{3+8VY3gHn;WS9@$f-D3nt@Nj%L;aL zhMF>G)rP#+^XM<4iTyH6_~5{T1a|^ViS^QEHwZ<86Z2d>xBB@jTt|GKI9ALu$q45#c%M(`gb3;@8VC3on|CXW)!h*y~e=P}h0jc&CO z#x}c46M!Ntr}^N4UUW00$aFI704qhk=nV9&4ffS8c)?wURHR4=IvGoXusq}VKL#Q; zF4M#mUqJmf^fp_ceV9x_1-3PD;^(2l6Qz;^P(0$jtdTU@)s>aUqRcjlj@$7{`^l5X zNxZfaEiG&_LQK&$#^j774!C1N(EZoj$NLLahmT-6hD{-;U`1^%8S@VE+!9TE;8|m% zfUcN(n&VGGKUWc8HP$1=Oo`x+C^@Neq^#AO>DSCc7U_avQ`a{ ziKV!}GHNmwK|Ha+(*DHAH0boWtSVkcmWZz{NhHbVRJ}ZW&wlJVi?eD1Dg}2P879=u zqLTF3kv}Gp9;3)ya#F|)mO)6l8~Ha=;H2>oy+*wDU9{G#NLWs(^}c!9YW6mw<+J%6gpXm#05t& z%LesPwy2Os^I4+INP6NO#D-`K*(vpg_V&c|*ll<2g7tijcpU`M4I>5};}9WyO8il@ zWT4|4WjUNSlZZHQ z0KXfdV=I9daua(--^f*{p{-%;te0~MB+5X^ARp9o^{9$jZECvA=+>^&IveQ_o=51i zAqR8~>l2=b5Gi?6tES5Gh+!0rD9dAE4haphKeVr6<-{Pdu@;Y$e+kmkP+X`XVvI%( zc&LVX6DMNjleD{Dy+I=6A?q{-oJ|GatxDo5FaRb+-M)$?Bcniw_B$N$(T%Rg z*hR+$M&=*oU1?|G5f-NCHHCRh3bVEdjb$J45e)m*i}~P zYG@%i9o&SuX5Lhtec!N@%!@=voe84iS5q0o&sl*$R z1eo-7H+cRtI9SLbkWQQ@l=o#>noY$iz^wXTF0HI^G*~R|SM0|ZYvTESo`?`)RK(&c zfmLoc;n{TZa;Len_BdK^G#l$t4sp_MI9U?A5miy@!PWU=SXyb;qUMTt4QS4?u3Caw zcRS6K(p*<-(cj{sgTuTtwBjtHVqXyz13;&>)w^S7d8k=9Ye9NqwXb%t@S9P-yuU0% z@zCy66&L%-%HpA8feUIvOA@Hc7-rQ*Q(^I8=3ykPLZ%eC*1Z(%%zB#E1QKIV!dTn% zDf1)Vqi+)f0AN6$zhkQEQs>;_AtxGMap(anIXnQXl(AP33kf5(!3}BX~8*g_;S!!*%)6j zAD?T^zVxRgNK@Hae-=M|k|gotwWk&@-$$zRV73%L&($O}T+u9I$z{QaF^Zl!5xyZ| z4>gm9HiV5=K`T&di*K$-r@dZhW3AJsK0fYx)(3lJ_|}mH4Nf*7cs&zgA`r-uYHq^X z{pZnsWb+Ke+ntv=oruvixl|Axz+c!L^UU)UxKbyArb+JdRwJlUge&HG+u#Fw?DOi6 zzs6975}B*1qkC4YRSa^M2eK!=*`iaB;V$Ndxlrp#JjwvMq*kq^HYiPycYj*`M%BiwVizBD7nI5Vfv}YvUqHVj;261uNC+PbXjOW2 zN|S*(IXYzkq)Yl&V8K}vJ7Yp{sxCH+1pyq~0Sj3mR$Wa_#z1^lB}-!x2hOfRb_i?> za(5aP?apTOk0}-UdpaJa$j}k}<@&w({na&+cYLT*TZ6`U`eoTdhVyLFA$myTPy;Z| z%$t*gl66`S*XbZhqtlD@rt6kfIDJiDVvw@nx9aJqxf!#dJF8L+bZ@|ii-S__jk3J6! zR8*Nm;a&~TCDkO|c_B8iU{X$q^klD!XY^;?e30r*}{cSq5({ZOt{uaNVwxh4d z*-y#)XlcXD=X$kF^kJPXB%gALXBW7G*|oJ|q`leP+M-2MatURAAjQ_^mr1&Et7h;? zv;H0&LkRl zXsU&jXM8aQoWT1g+%_;A?*|gnP5=ff`O6eR|HT%0$ zmt>TaWbDT_g`5+<@US~CVvOk9ui;Mka{J(PFPZ?=au`oCO?_?w$r7KFV^&kKQMpdv zqv$;2++2t@iQ;n_L!&$mq3R{viSXO+O-8oDyD>n=%5_c# zBb+`#429#kgz#9I!3jAcdl>;}!#XOR50h>^>-FmG>&=ia{>%Bl@b6cW5DE$sN%J0!fS$wR{C}R1&AtI8WRLr=!iarE%=i0R_ zfCF|Sda8S6OPKKKX}59Petz=wci1b3;3;GziYq30Z5cK4))V(@c5}!ztUfjAZrAV3 z=Iy8@+(e$FqsxuPMM)mn$3fjYM~7!8`!C*{?H|6<%%iD91zByVYL+8ogOz*`W62i? z$A|hPntCoKtd{ZosD}Q#@^m(AVlpN%Vb{it3>OblzWWRFvmT5A?RntnFQG^j1ltU? z?jP=*MT~FDnrW8}-Lk`Dx@Kf%_UG=o-iQli3>Su&<7zK5 z+RHHzpQMxOFr`J64OH(SYh}C_JN8;q#K7lCCZnBT7Z}Bv_2s71*6C|NjPa|{=o#ba zLDc2@<`16Ie1KW)um;HnhnWO+5+!WaJvLj4hbk6*5$!yE=5%;E&uF78xnny%CyJnk zj%CrDEhow9>gxK&+b>V;$@3tzctZpq$`hDirDFJY!jdl?Azl z;JWJ?iQ3gh8hV;@=Up0z3s!xmDM`bZ!hg;v$x?@w&$+flqlIPD!D&_#iy&;=mhUl= zIqAhhSqE22NYgo~MLpLK777?Cc9+>166Jg#;FPONZI*K;>?aBPRW5kjC8qz(e!+G# zPJcsz>vHs}Nz;_ZfbqqtJ&+gB17wd++FF>)`0{l{&w!GdYqH zE(Id5pq*pp3b=>b;n&wrON;q+?!}t+*81+V&eF$YHij*LH^{oNK85*atoIx{x_%#uAo;dha!5C${h#=*drOB|Ya0w?$xBrb z$Zpa)9FJa2h2i-7FrN0JrL|_XO=k~UKD7ga2h?=Ui|ngvsQ=i+hAhref%p}De};_8 zW0Jy>TMjh`$l*}W?$02R9=t#Ss8BQ3YZGmn8Xq+At`QRyJC*dB&(@wk>2{y2u8Z}a zHWCeOlh65I`Y91eYWYhSX4ms9HVl`^3aK80(0Vjh&J(k_5@5{I#Q^b#1B=_t9wT%K z!b7(&iP}7jPTmOhRNS=XWCOxA6=9tYV%wk*DRvidoqN4J;iObu>(Y*|N8|L8&WV?g zu;o5C?uA3a`$kY;M?4CR6Qt&%Qw(&IMIJQ}iB{ibX|31-z4xnUw^c#Fz}0Wt&@dTk zpi=n<=-gSZMre_Ec+Y$w4s=jYdq}rCSl@K6=VK;-1I=~jr8&bruqbH`>sgy!z7{!y z7@Iy}RFQajXJ0x^lIXjg76~ecyRF^*)3cp}z3s!$%e|XSpo}UeYzv4_m&(g>H_~tTdWI4!0G~;pVq}Yu5^S*>ENBQ2@#i`+hOC{yUJn0iu6( zGfgPC(DOnk-M}Z*;%Hh=h%Ps#K?h=iW%D|N!fTF@VOWP;fXv50xvj=NFA6lWI18>G z2@S&sV3l~6499fX)OC?Yo?jEo^8w^?;*v-DER*m{;^g1z?2leH(kwRk0NcGjNoWE{stu}=$IOA1Y&y`R?_)8&7)8jreJAeYKZt5QG2ZS=?St)}D2r zttLsl^0@Of-q3C%*Vp^#8=?Ru@UYV}=}HqN%s_ID2UU$9>Wa?YPNijcIzBn!K3VLe!7z^iN$ z-CJ2%L|ZLjHUxr=dGK+W@boko(cKSpW0oUShsLy@ocF*Ml*Z z7douT24=zQXz@IqXmov@KU-w=M)E-&@vR>LT*vYhcschZRlWxXr&RZ7@g~$q|9|%W zZLf_iSsz8`ZRr*EO_ofzfR@D3*v3V5Va>k zzkTwhg*c`O+^%udrn7ya5n`DVOfSw8qd^{U zo^JKLv(ai2wqLODjEuwCWu*-FLnH9+KZw1s*9eqJMyzkrl!&|s>$Tm(T77@NzBj#K zZ5~tCxJg*@XKtf5@{af1RU?4-Oec)-B{lx!sl|4fy4f=Qh%9hepB>3B6B}9(^9I2Z zn-J=+Syjak?lb>L>?*&ce3_0#0iuH;cvJlPC3P|{7Tby~!b!4YQQWHf$ zmu1%u)AYa#U91LoA-ohOtmX9*NveC8zs=0N**L^(rzFq@u3`gWOD9874>>PzAh?`d46a}ZsO^ZpZPP8>V>5w=x2-qYWH?YzKt-($<}?;pd-~9GKI}0Q z4sU!CdT0r0Y{XUfM6n$O6-u%f zUE4S6>R7+Tvg@KMs-7s2k32C(Pz+Ej4?Cw+=skA zqcZ7|?O|@0r0tx$`bq9?o^tPk6C})l9x{YG5@8*IXe`>|-GkQt9hOIST5#5UUm{D)3?uvM!)1#w(!FHnsja9?N&~Mgj-%g%t zxO(G!4VS4+6giz{hqe7zd-W#XapP&dae?O;|BBcNzu?-9TT2FPC)Kd}^gF z#MMz#FNqnc)bjTJ#?;=2!w@?oz$CP7jVy|f>jm~P&H&p4_)an^9(XBq#P&6X!DC>h zA*^%G#FRF_XpF_y;P6q>sZt6;$rg|-pin~rK&>tV4uPJ-@U`H=NSxVwld66=AxXB) z*+gs)jP%o@yQkHKRYZ2Z5_^FgXlFt=#V@|S=^-*QCU30n)tP)`?ijSvn|Rn_lr^=# zm;o}rjc1Et!JIK$_yQ`aOsepgqq5DOrfsQBMs$3NQ``;?Q@Hd&l!JQGLH>B%v?pBE zb@$vxUZgX~VOwQ3sDqHGgh;JOW1KqSs9#2;> zI1I#MuN%e!evXJV@3I7?o8p(rU@UzpICtUNLQuxP1dcr$X<@LAe>XLC?YrM9kY? z6O&FwC!a4R*#5p|E!V2X0Fs>o^$OO&Ab=Ee3RgN_V!Q7O?aIE!VAl*HjbUHha@hC0D`qrsDAm6fiMcwWGu5jTf&@>aF9G`tHHA{rc>05P{S>*!}mT zle@|^4!trj>$M+R$GfL5Th03M?#b>ce^-fiIn@)$j-a9Y`LN(}JF;8FW&<@QSAMpK zWbV|!(d(1e-~Yb3>KMlCEGE~ICk>gE4GMvnMT~s+>}c;NA6X4uOY>eaaLVkfq-jok zOlIKzmo3a?s`>&C{lJBIR!M{u(SrActA*-KbI;LuG+|AU3oLU$yvD`M+EFTZmm*%C z^>vfJkXYLOKh|`I@YguFO5kn=F#M`5Dbb{Gc?aFbKEx?9f?B`#$$5GOPE}`+Hvg5) z{Ql29maAJckL4)gTvp>mRSVH>t#wlWk5`QoHLyn}rBHju36+FpI!SUnRQNKW%M@T2 zIj;<%{AP%gl%}BNk1X2Jk# zipJ1lT(dGRuRTPxaZOXL`Whp)F#$2OFK+_N*Q*XRnz!#w7i<=F5ez%;Cf<7Ilgs?A zY)-m>SY5@Fp0{!HPJ8_$vhgOy!IHP4*;7*Dxuh&Wq>VwTGKu}{MQ*g2C3pgrOl1Wx zm#^WPyi;&MH{Uh9dc4gsb8$zBP%Z;&gk7w@QK_)h#D+a0syGIshcGeu*XHW5 z!M(z=ageW~OUZi@(8mcYj4D0{h~HE4IB4|s>cbzc#9oaKp+E6AmDPl3PBMY)(H^l| zlS#tiGVWyB60pXFOnRE2d-G5!FC&+`(kz zCC?Jg6BV>W%sr`2E0NO=d*5UnexU3~GtNHJ=L%;bj2bS2Mo+8I8h36)MP_<$>$H%RSE0({oz;3--`%U9Xe>=FeA-lZpkT$6z;rLBD=|3h z0goexPIdy@PmNQ0u+?4D2fMYCqt;&I#8-28yo52i9P67gQPmNR373EAu6kJH43x{7 zKOxvtnny}KtxXpJ>gUb%jXDY6NS>Vz2j5N@Iu1TN$TYw&ilwCEu|T<%(G9f+=S2=20E;l$CXzVp4(7H~NlDB-RAM28d9yo6& z=bNjmPaeh@nxp;#7mjFM#XYg1Iml~x83@`fF^6DIXN?$hcjsuGD}2`gE$7u`qk9ld zQh_mw*?uQmBTtD7y=K@Z&_@woL(%p4sM+{YGg*x~QG;eVS$p%l^j1{p$(TK_c}n4uY7;s_Z-=Mb0$X6+Dq=NBNsNQgR)IQThYVwX;%2Ch zOhbXAHZi(s7f#x7KM_r!&2n=yaA_dn#gRx%habZyp5Zj*T$$uL>UWq`^%6C3;xol< zb*|b*X~4ZVsN=@yS>XcD{OEYBFJ%Kv(dCfVeH5kf3L~hNijy|rs`<7!9 zCSzFWz`EKkqdUu%3op{`sBzNxG1wUNHs1mgw~Cu1O-2|T?h}seJ#8&p;|=Gcqt@w> zfN14ttRER*oArAJ>UsXWbAs?5u3oG^>^zP)&(}L^TNj({hskPkv9-RszVUeL@#FJH z@y6Q2_M7YP0=uwAfuY@26euG4I`eKpo#NZ>;Lq`YEngR<~AGSJxk_pJGPq-;Dpy|F;)4&Ve@( z)nLsXU;dx}n;AzTeA^tBp{IqN-ZeetBniER#rA2&v^{+~#0aTb5JMOC#~Z6pHsbc? z!&MvSN?)z7X^ebotw-I|xuszXalC^D;N>4lVh=Dm}!@*>?7KWqKo_GU)M0@jHp-letYG|Cgj z!GU@$?&xVU)=Q2TOB1!|kCOHW_*F8Lc*cU~yHYbg6(;~y_M_x5R!Y&%jshy+AfC3K z?e2+&P%^=ATwB{DPt=?*-2L{471IF~Yr|R$pXnVj>4S8{%rpk*Qg~T>)g7^xyY6p}dPbXWs)4Lsuei z6&~6K1uH|DPPbYm&QvlyY1Izun59<1*FieIo}WG0aHw5hZV$(qJHUax8Y9Vr(~;<9 z1Qc@5B}{MzPNz4smhLe1cJW_Ns_W5W%n$|Xc*&0hds1D?)N*GdnQ$7ZgGMQWd{{Z6 z%(muNz7gC$(6GU6^>bo|o;-STe(~htn#t?yWxu6sD!DeveA@#~fs0A#1Oz`wC3LTGP-o?m z8!7Eo@?kOulN^B}nirn4W7v~mUQ|4!Yio~H=O)X4pl5=o=f3tZDpmrgx0%!F-krk9 zkb{@&E(e%VZx{T~?e%imMkryeqy4b$B~uq(MdYvpD*a|T5`FBasL4O5sG4KTSrxhz{>9{EiJQf`&F3&FuLt7c=hC6R}ZDyjS$dE3M?qV`ZwOOWIA-_0MJh7hcW*x9b zV;N24B88ZnWyg*-t!5DCz5X!hLgTP`y1T!>ZP1sjlXYJ2!&hH4PAiSW=SPn9v>N~W zG^l(82ZN=FNdf1s=y*7kq?xk9_ZM03>i64cv~3OtbS|zY-Ps|u&fRKbT}3{s{szbZ z7^bYtGRwDBK{Mlk8?}=T!XPMsY7x<5)|Ovmb3^Q5N}mfR8sAM!4l5Q-D(9AyZ2%2@ zDb<`}Km_7lvQ~XmeK^HwudfG_@Jiu4Tx2fdal_-V7QA6;7H0mr+8~W)Mh)!-^Gfs* z)HMK0UnCkvCn?sl{aOuL0Uq!GPJM#wVe^Fy7>rruL}Ub@6Ir!^k{4?5gO5b|Gt+cGLUH!6Nv6bC%F(iKPNw$I`$zYUwbr{=ES(k%ycU4 znJotN2bE#ciHXFuE7xg76WL<<%yyUPjfaMTaX7!8!rYYgRp#bB6ZN4krR*?cdf}^i zjmUv*J*!{Xy&W+nGC-DO;OWJed5YCBPClbUvEtCdZqTNMy^1JTR=MdZRvG!klyip1 zZYJR_3rE&k$|CWQzu=fBH3msSEHT=Psm!xES>OlLnbhVP${OGgcTXFy>#aA9!@Z+7 zP0!igs6(yk)}pKAt-5O6oo}-j1Z9A^jSE6N*8DOBlYb!yRx(&RKOH@^Nw z+}SVPL{lCmP*z*Odf)%d(-Mp8x{K{FS&$WP5s6iDdSs$2r8nodo+ZEp+NOr*^6VGc z`8V6#zrw7B*bGbBfA*@ekERiraEleC`JmS?f(S@OS+YgHxGCdCJhHkSK~7i*>JBKV&HQ z;hC5_T-0OMVcnM1K^W=2j8jn30gh5Y3%6!p&3YFz57SMV@~Jx(Eygf*#*$fY8P1Xo zT#V37^p=xwbr3g`z4(*{g#*gd_4w6zC_L$QC@FGY65%XZ z()`xD{+x4~O)$X6`{?+zMM8G#_~_&mm!Ew|61O~zCAU}yhx^(^Qw?Ue?S%1fe}@fW z-Ag5h#kfJpqGJ085ni;V5twN+g3^w0if>cI#AA`H*1xq;01QMy_gr5bKKTr5;40#n z7%&iD2#&;H(j&oma7~Qa{^0s*Km>f2z><5I4F(XKqZEMN=%kX5LujG;0;Cs~0e(O- zG?;g~$30YA1qeqrQ^~Z{f%a7#Dr_P#0~@O87djN-I=g zy`h;wfRC@#$RRzgl=;<`d}(q*NYk9V^&B17ywIn>vh)z`-2u; z4Z7`QR(_C2nu#pFyqfgrOb^E+-^$~2{c1n6M-f>*=@81RoIFoMb-WAW9`AcZ;E9RQ znI`#pGPBwWQ`V=c5-zyajf3ABF{=!(mgYxk?j>!sy0(-R);CNpQ4pYmx@Ee3ut3hz z2ooC%rBS~Gota6#8VIJ3OhSe=h3Gg3NvK`T0ZH{@2_i6fOjK&GPWCm9Vz2((pmrFg z7ax8(`v|RK{s4@DN8rShqDjZaa~ajd%AJCY4l{9ZF}fO(WLidHOVpk7aKP-M)E1JxZ*yg-;RQM1`s zX>!SlkB!5+$E{_Qos4{7qW?Ie#rtPdgJ0xjR0h37uD5HFo5z+ci^0ctBvfQg8t^0=lgw4h3RAWtEW_RQ+X9K2^y#H%kXhdk<{Lk}93|4{ z5!FN##Y7$n?5hxBQSqoGHl5-9I=OBSUEVxCPU^CbdouOa0+J-ppni?cyJN=4QTGOo z3Qi^4jJNiNy;GNGb)_oF^~{q6&o0i`4PwmL&$O+ORkSqQ&4h@)_>4e&V$Dr!ZR=U% zlqZ!xZmi>@2_eaN#%M~jDIU~i>-5DWw@JnI%1=M8C^J(V+id4dKBC2?e5-|`usV9E zmX^^6V`*V^MmvXZc1|1Tw+8ZKg6Lh7yiz!8MVH)mGLKwCEG{~eh87d~LjANHijep} znTm7?S6<cULz7isGO_VkF z6N|b$EUV?n*unE^iuitx#Wds+ALhfVZw0dt`m~iXoX}SG%_T&@GOyiPtKI8r;}wKT zR1^SI&NK&~pKq={*#fNA#iI*i^s`An)*c4UF_!*CUaAjG(4p>>h*xK5Ge|NnS%-CR z3gLJB7VhWuCAn6FEe3Ub6C?WraUAfu zCa^5=)_}9YrN|KS9xYvuO+B zenq(|31k8}9`_^7#;EGNifx!{`tBxOr-nT&==*!f*;6mWm1x{$CN`zR)4jb0C;Mw0 z9hOvWA_B`O?kde%{kZyYb!`=!LwFH;@GvhJBhN+i^yp;wMLkN!?W*x2m-$LqX^%!v z3?o;nbY3;IX;7C1YGD(e^7Dov{RNI*gA}hd!hw z?Wq=$-mt@aI%Wqlc5kj;Rzm;*?z^^Ksvqtm#<+3(daIO?&B!d&wME^PAF69lmb4WeP027dbi-DuzLFTg zfe;LXIt$V02fj1vO$F~vBY91+81vM-qGhZd9ny9-4DAX#UhZtsex2P@9uN z-(r5cc64yu*sq@$#>nc=^?s`}447e5G}7iuawfCt2Pp+=P=3_*iK@AaL@!W39gjM0 zNoFGskQ7;#(a%voZPE$SloAV*^j!d-ADvbq`EFxfuy_?-+Z&?=Ie=Ht{a(o-*CF|Q zdrB+&l8$MT-V2^L<6O&*wOP-!o~?a4+ypi(z$iRm<9EUH8TP{nJC?79O~ePHx@h;u zJ(VxSLvL|uo*(hWdc1MInruG4Sl{ZbZ?@0Z=w3>sh zG+Xn4;y_e$u2A(3TJycO|DdaM&T^bTe7wHV*?RbBbt}HudilE*_n)$H|i?>l?}1c^p4nJ-U~wD==UD>eP<)L+z++nxt+@9rW={!`vh`*pOi~FQqfI$P(VgSrcqAwJ>t2t4 z*UQ#c|8?*8Q}?!HbqwdpbNBUquBMB738g}B0y{f0y?+>sX-9jnEt!uG0GIx()Pezc!6Yn#Df=!lUpziro`rK**7g4B0{KMFOAKOJEWAA4;> z#Y0<{3-A@PF1td2wXM>^WK`+4+Yvl{J-uMINY<)v;&-gBZrgY$`9Zm2lQX7wQwjSD z$|{7y@V1jsp6BS`j3H^hjQv#=Tk8ObJJO*^;yIHOWp1B(gL43Vi=x!coRPrt^@-d~ zRiST3GtAy5pxdb0O_fA06l>{25^AUhtRr>)E(V~;(l8%kf=8W+lFX?&o>%o$SD9)D{HD&(_~vR z$nlv7EJK~EZR^NWd))-qO=ufX!zB;H%Y!lH$Rg2B=;-+^D?wECer-~My@9JlU9w<_ z5{k;3M2-?ZY!Kt56Ipd@QZoRPOBqHR7ZEvbj zQa*1w=$@^okPr-73TEL$*Ldpag^`PAK$~))$;Ln;Yx_sF-Tl_?fk6lL9UrQkuGiO5 zG4U`xhJWI%#cnbnvAFRh>LHW9#}8c+jV#B#ojk8?u5N5HRyb!z62q6!_6$X@Nph#L z2eiSpAXnw%D*q4pB6kmeijt2p4hNjnID3qXT)d+}r+aq$j5np(3UnV#E-qa95Pclr z5SV9I1%I;wOaa;wwYAy`<)FVv#;QiEe-t)CU&OsbTQTW>U>6Q=Gn)`RcI{%{OoO!B z1K-gdht`a36Id!{Tv)l&z~N0!g_j9U8kcB7*>PFS+LU$#UTPZGP!4csOot%2b~1E$ zd&c{4>XkIa%WzkcD8Dn&wyxKCaMA{Gp%ncadv`MEg%8dk z>*L`mI6JOQIGZ6kql$PD+N|oJ2I`m6385LR7q5kaH3$uRwiqth+?s55oM`LOX0p1u zNn-K(+Qs_C*2cq)N1gcL#>1_L7wzQn*5ix3>*!%X$Grih)DJJ#y^{cBoy{1#2gEx! zPF*T5$^CS1?V$p_%3kKh%EI|-376XhB}-hi6tN$yxJXbDQOD&(JU%woeU*?!r)IJb zccR+`?lGkO zA}h$2EcjW{OEr1V8=7ZOaM-nasRF{5oi&vXSCOu~qGm{AX$dNMy0kcVs0$I-biQm4 zjn8STluh~!WmLr;r!RClC6{|!^8qj?S^W6%BLg@Wp>-^Fhb_pD#jN+3I*zQ(K%9kh z#$?FOySc!#U-^>WU?|MMfr#0$`s|>_{HPjrJXu|G*HR{HolRI~ybT4vRDjCG$w0D@ zv;?v$pUbzlOZNOy(XQjkc6wRr_ADXHZIYHefkbu&Tj>PvxEeJS)#xUXbv9{Wt{@K~ z(xD6YsgVWW5XSYx<~Gs`O>Afy%~Yua^gSr>S=Je8P=DO{0EodBorD$uHxM*FvHC*D z?9p(Hd&EzGCHb$#fEXiwOc7p6{mFHU-3Uqo-cV+cY2L%)XcgNk*}vOX>P9*?Gsy0` z;AYv&MKfkg_9ld4D|mXso-O8!uBN7aE1?$0bfVf<$%ngLf7DmOLS*7zk(=5~1)UwB z09g~el2!hW*SMR$7bhL@oLSof3XbFj=WskI;^Q8BpV`EQ=eG`vOPM20Z{s|DSrF=K z{ubKV7gW=;|MUO5>fM#S#lvvkW{H+2dH`B((n7Hto~ndLgTXkH^V2^#-XUaTvB^3v z#(2-ZLOYF)F_B!DdDLG$V>WQWXN;=8+ib$p@-kz1*A|U~tEZxn_)Ku-7I81H$vG9o z*N|VDy9dYnb-`(BGUF{z4E|flTjX#u_hpHUa+Xc@;Q85F<6pieX^!_QlWt6PhXndt zgPA9>Vz-{Lp7)Ex16430i77_A0c^Q?ZMd*J*4l&$9_@i8i=Ki>T;5ftl=G~Q-L+hA^?#YUsC7- zZqgMqp1l(x4Vz;kcU<{tApNf&$<*oqLS5$D0hfziWB0Jxh-!2r-u5IFrWJhy)UXh~ z&U;_&AzZhI$D2C}TqXk&@XrO~Ut}?LDr2Wwxy;U?fTiw^x zyq(2#FOHcuxr;2{Io&dqC)J15jZu4zHJ5n7w{}7iTAk8F1T z^_paF>TNm`)QGH9qvSt5LeCK`agTk}=r(1eXfK^wK&?d=QF%a#RuNV$Vya0#jBC{~ezm9eN>xnQL^a zYNGv6EwlJCv_XVj4Nf&_@6-=*=1{pi)BRvKm(a__*tLo8R_}{xy-UakB-h>cpf_-^ z?U;BGAgYSw%q9kAoa|HHoXEQ^h6o~@SHz1(r3WR!W^mP(o|fDZWG9n8dti3DYFD(G zg+}ldw7hX&p+vM>23A2}lEuv39?-e?)n(&zjj}Hb??(%Rt}RM1hc}XH;SPiZjzRa` z{Wf9ybL?hb;!U3!RhPaB>|h9@RKHN{gTTd4J^Tv3;Kzu?t>tYWErvQ!R4OQ>Dliqru7sA}Nge%kL2zB7?%t3h7503!TGabNoNn;tN)yu))QcM-{WCa<&|1({oq23@xI0M#*)4#Ph~LI055X%N<#oO#KW z)D0G}N;)C#r5vP1w2BOyYNeylcEp4CIPH3N^xQe0__%15W9X>Vdx9OLRP+D%;luUS z&em448n++O|2H<**3R4Ov>_iq+IkW{etf>J7v(F&11Wx`;bbr3Yb*w)LzNkPHN}1s zR>N_b<8#_LIF^7amm5}~jEq^4^-0#OWpNhenlJ`x8~4rG%G0qXa7AonzVI1L$7|_k za_4|_Bi*CC%Oe;T(TTy8??T<-AfT3YwRb_q#FY_KsT0TEXbO?(QJ`nLd(U?d8UR~! zb2ww19MN|($ajViTZ9P=dfi-G&FFoN*A%k6Zsx>bImIC>^lyj63(#(bgWiC%oEUIy z)*NQA`ee73s-DxH?#az3o9mA@ldXpvPd2tTHXhP;d>C&&didnYlSiwaWTSJjzLq>{ zZ_Xn->(#Btj)>85+O4(V#cS}u8OTZaMcG&9gN}77o2G(5CB5Y+JF&c9!KMZybBWar z|J4&E=2s1*0@Ad&(XT!_Z$C=nM^7HEJ~?mG#d1OC`pMeEwdC>IBRb=q)z!|%#*=j} zj6dRst4X|Z@%Z7RjU?VYe-uCIJYGM4@_1vT6Q6Ibw$E3SCtUc+6S}H49(6X>+fRrx zJX(7auO)PSbs>EsIOWG(@#=((vVN%dJ?4FD7<@(-%}7Oj2_Ve(MIbSva!em`3^@7nn-Kq#b5+M>u%MV5YxI9<1#f(Gs##+k#$6~lWTvw7=A0)vX#IDQ1R$q??` zCKBa=op%{3(tTml8nXX#HCDw;3>2=3r z*1#i#ULgf#FngK`G#nmO9Ah!Rc44cCOH8k4lDxMk<{(_iQ!T1GYoWS*!Qk&1C zBD#TT+?0*zh}aRcwGO(F)ir*^0Muw~`V638jTx7nd4T+)HR?(-7eNw^x09ieiI+#f zXlan-3HLS==%JZKfho+=w=g6MbU}ig#YCba?9i(QEeA)yrcDvk`K$|^8{7#-f+MV1 z@f;T8R26>Lq`Fs#2N_TLbc~r;Ab(m*w<0{jIcIz~RaS_Jm?-BN^FJT<%bTau=6DI{VW_t{(_qVmJ4e7&FhrK?1cgerc|JFu6K5)40EA6=_7Oe&S_OAaMnI{9A z62!q|_UYs7*aMV3p&ZsJ%;M+r>0pAaP!(McHdgqqZckOG&wB9f5$Nwu2r=lngE$vN zG32oNP^z+SK^ANVAYs%EQ8R0tJs4a|u$mU!CwttkV@bWpp`G_G=;j#~V&5@vQ$&z6v6PvG+pxgxTq|)rBoO%gEm9PU6QJ2~KDcN8LRiHIb8&RO zM}y9!Et=kI_W5x}B4$m0$As$c&kFY(TF$V1o6uNVByQ7^jcg#UKZAvP$uhRYZyWyx z5zwK>fXBz>Wv^@Z=vQ@m`d$myA>a1}yR^~VYrJTjIv%>wTwYva=OSb06Nmr{uUCeF`$-+ ze-dDdu5r-Zr<*vHwBYoOaMO;-_ke5;Rbwi2@po+yqtv2HnfV&z>!c2CthdG%dsMdL zg`jp_GIw~9-2A?F+4oJ%$RAd~P8sVnd{X?KI;{sbiO;{XW!9Wm*wRFufMbkCHd#BD z5jDimI?s(Y`i^1E@D75w#REm(r*||4>G#c$>dd3M@8f7yZk0EDUHf5k*rKVpRvQ9k z(LoGA6z^pf7nn~`1Bt(rPN5o4AQ4wr{QShC)2rAz-4lT?`aOe1l(jhbuvJoUHCX&f zEk~kf)vce&-0^$nISbYMBsj4)z}=h)nS9>^f_XXMkBtWJ4IC=Ni1{9YK1-6H(V!RV z__gD+_;xo3v_YEcyp4~_cu77>o4k9aaqPu-Zv?Rasd0m~b89Oy8a9%aDwhM1RaH6X z@XrOI(WWEJ5N5Fhp!%3)EwSSnHW(g1Ox%n)FRp0z-K3*z`5@Hy-{%As*)VHpa4i%qvdTLgKniMu!94QtSYwGH@M1Q|jCpX?^^&d}9c3XRm z=BZJRl!PZ{*fmxMLD0N~7piqE6CK741F6QU=D3dGsOFr}PzR$^KuyIN)y^kY5yBq& z*x1_5dzg(k!o9Md8S$MHGL`fMb##(3iIjdmr27ZB%C6aGNrIDkG2S-2DdT)1BcaIE zoQe?9FeU)@M&csb8%YBynJZ)f2;zo)&`2uW39ZsL>BXwTDLAHo<_6bvrTGDc;#4$X z-+m5p=ufVFeN*7&X84fTP4pm7$Dc>56&Y4~{O|wg{~rCH|NHuu=B_tK^Vdmo&w?;u z!?-(Alyk_Dj36H{W($qZ0{cCrnJ=pC52<=mTX)fPnD8#u;L(xG5eABRNi+QKaoWE% zxflTyik-+v}0(H2J_fw>s1V#$=3gR4HOp0{?Ei^Clw`K)pwcGXcu z*&uKf9?G%kYNJYjP(ku>(e^8UdO;5}Mga6t^W_ptAy=Ftnh5ajERPBSFhkHxUP8uu znc*Z1wVx>0YtNDA2wY0HI9{YwMrnt#ryvLHiRJ+Hc$6GIWnqNWu~%!+jHhrXos1Oh z$9<`}jq(s?{F%?Js5;Ons4=gd#oy-+u~g1kx-7W9x2$2^3d@Z|g&b*TxH1g}B;MGI zWy-vJG)%v(5&&L6p}%|Vkv8#mREX!@spsu%9vTgs^17mKL5)KJL!5zTm*%)7skd%^ z%gfAg)V2cG`a)i-p$F1DP|f>4&x=C$ht546C1`iidI6sr=lYnD=vl@Xj93jYN-870 z%vOkYtoW{X^ci7d$#_gW%%pwArbpH%s25#Jno%#e#Pb~<02!Gl5UpQdcZpad_Yu)# zG4DydZVZJ4WXH*6HZ5T5q61|ML$M)Zq}%D2#@vIpMIcup$w?2Y?(pkD+RtvM8a*@m zI_T8OQG=_x1}w4YUtpGZLJUK|#A*c);z%^sWJQ+3Kz${dwG)EJZ>*}P(CQPc$LoWp zhdC2q+zQAckA^+Rd<}WUqzYD0cgH;&leq5HmVrGoEQ)46!^76t=T#tF+5{0*sp<{e zyGE0Kg{>y)exR&Y$7PfOVaLhYAH_e0FdM^;WwYw3g+ z?R7UrrnKgG(&-K`Pa6u#k8~a`zrAkV+En8|8Z^$?jn!YKZEh>}Vw82rjs7LriIWLU zDDJ~Ue`@ga!aTSh=Nt@QE*tUD z?R)Miy;}-~5%0x#R=yG*lO=YYBjY=>eTbJTcKR-1J%(z!0D6o(6UL>3 zOl_%?MDKM_yKTDeQ0Y~3+&E$vkFvnlH>`T`!-#g0w8<4J6TKiG^)OE6KVKwaY- zh9;T}H65jai4}-IUdQ=#!-DI>wq>)oTdhtmbqe=1PoiM@NsJo)dVW%`bFRdy$zJNI z`MUzH;$V+Jf%syQECneD2;4r6xg-U%PnnG_liSxyeCKP+l~SHQ}69j1|JU&bTrUWl`<;)`L^(wwT^q z)wOEQN(rT5yQ(Fxw6(_rTz#qUwkYb#+kTtVV+ggeT?Ms}ASegRE)M7iqL?uJqRP-5 zR1_GPZJ3xk)kCqvP{ACJ;HU4xnU~PPQQ{7r{VH#B$XQW{OAasWUa&{iSi$l&_Q;Ya zzLwZ!M1fI-fQXLSW?Q4F>0Tg0!h*3d_^B~`3Xn&??L0qu!f03Fuop7U3zp369yhWH zp`3zOxE13&srkT-zRx2YwoP4h0}s{he>pu%?U)zlFe1?P;ht{M z6Z!Sk9RFB*8oc{kH4IQVF&VJIoz|`83KR4Jx;8*MnO-BDV73b5NrmU^gmte43&E4m9f7@w*zg#c0yRS8BBC~0{ zzLX8%vs)Azlv|b*gHZP(Nxgw?g}X$(DYffj@U<7aw8g{bV9BmwQ@uWII{{QcK_Tii z;~`OmU*q?FC;*RUFCLKy6m8LIjH~afaWy*Ftwl%8=*MVnwJILoPReCpp4jh)*RmCT zaVGah@g=Q1E$_4D9@K?M;o<@-ZP^Aw4-7^;O`Av7BaPJhRZR>9Jz?n%j9DzWn~%M zOd$odueyn*+Ix9ic|{vxt-7`*f+V7v=5@m*+Us7-UNE7L+2~^2eyJv@IhVj_IRzrU zTnt|%<3q^-cN{YS6uNXV6wtNjTHETz)?8Rd1rv~*^h#sQjq#rDo}{<2UZv;rMADOl zO@f?h(t3LeHR%o5V3_q@v-dDBj-nxXe6L2_vOK}ex8r!l7u92UncWa0h-B2BoOimT zbav3m-6@VNZ_K>bNO=n@-vpX0m5DM)P1Lr;Ergi|q;Clb@U0PjB~f|VW>1=Gpx`B~ zW`Wo_ePiG1MzIQiqs@?vx>#2PlbckHMudP6GbKS>^k|<kE>v>;Pg3D8wJ|_lf zOK|IEB<)m&jA2N07W@S2!rLf&%UK3l{?h!%i`KgezN)-}OWrx~j*RMc!3l@!B&X~~Bil$M@a*#r-{6tIH5?V!b}6;*yST zMx&UeO2zQ9neS3bkq}#-JPW?d7mj9iU^iwJXDkSvH$zw8P&M#D7`<2 zVBCADP5;Sw6h^Ta`sAV%XRc(?ytD)q~ zfw!|8hwFQ_Q9Z5F-ft)UR3fLby{V$LCr=)muiZ5-h8JVW;d3-p+k$#QnIUsbE-e&} zT&iT4nNb_-;dN;l*g7`!gEP>)Zbl76eqWjuAnsA2fGlc_c3Yfca$lX+-esw6U2! zcEes~opnRF`5=wAX_K!)ZS>m9c%%SaOkrNtYV~H*pe70Iw1YH_GCmNqAwpGsn<5X?}3o2(ZHR*MN(CM;hauQn#@XN27r;z;wm`KnNlG`W_-sLpg zBc`C7iCTS6jW`K?Z$ALt{+2n#D`-8`O*N75duA0<1{#jXo>!J~4R8-v4KZ%qDJ}Pu zKci0%F$t$Xp4#x{f}jJ6|C7~)mn3dV!phJ{1$(m_dZA_J8%M>?g)>NGwCvSk=b~`$ z(wwA$&yR2Suo61NLgg)rFm5OehO1PMi7IvUT9{)NHsO-gnTS;b z43R`k*LDwU_5J<&o{!SPPTG?7L~mFeW(Cn^#@oPHB2XP6%1ENu zl}(6DN+xI4vZnq!-aUQUYSxc;Pj*j_PFg4R|9I6nq5d-DI>W^Cm62aubo8v^7U*6z z+IaX1?PNOQR7S|dJ0c3-+HGdLaeRV5>+CQxVl$#}qt}~Ao;~T8Isvo*KP3jSgngvg zkUqZ2CWcPRjk zNwIBWO6gkZiycqzMh=RE=2NgiC9xNHH{J*|{;PP>GuI8`ZEPa0C657~1|wB=*~NWl zTz4JtCA(3gQW0PTDYe021}w?TMP?l?vn3VUNIZOgnMgjC5Z_1&a=uLQw4gP%`Hd`^ zu$p~+4#J1B#hX(YCwAYZ%8dKY2#Ti82^$)RTbn^Jz;2JYpWCR}y%u-q>w)KyZ=-uW ztu|4C`r+xxZr~>?7)uJr%7QtEfQT7E4emV+@CrnFwF%;)9z&%v_7QE)2bZEj&g`n< zvGWoGlWk-kk4Gwc%<;9yAqT$9j}$0F_zJ|&@nTt@c(EfYj(+HeBDouwp2@Xg*w(7! zx}yY96=o0kUtHg2zH=T1M%g4@P|!-ya6~LC@tn%TQsBF~6%6FG1qVAnBaP(WF1(od zF^&&|m)b^Z66&m|IY8wRgkhKuZy1kT)CrJ}nFkF;cT)``MXzm1UN|dyF%xQoP(>#o z9y`Vk%C)P@4$m&G^hgq6hy$PqbT@{OU~M?92lFdqaV-`Vn?sAMMsE@msf62^Hsh@e zx@XfFGlkSU_}*S%r109azPZvUdQqM7hxcdEA!Y0EEm(HTJ`laMfb_6o$|RDvo=Uzu zVlHosEWuSR5e7YZ4OJ~rdqbfJ;A8z1W7DY+gR4<;^Yp^&a?A{ooEW z`%nq04b4pB_`{|JH=d3thw!nuRQCKAe5h#!&FD&sJ(s+4E4v*wf?lYBfI-serTszN z*%y=B;!-tQ>?Idt_IhQlHOtQkWm>Y-{2Z2b1STV;M4r!Z&>Efm?)4x#r4gp~Ac~cf zLyVY(G&@Zr0pR}c00db-hrv77$2KDWkg8XAX<5yaSr*pgxa6zT#zFn))v4SDkukzb zI0JKhrctU7=5991mQuw8GWNu9H~2FD#63EY^A8q?;`vf>=Q^rgz6$qd*_Ax*GwaVpKpi z;zAKp-nA`_^p1*RVrj+D`C>wdCSKh7Z5NCOO*W8Mcn1S42g!BmU`x|Ds` zs_h=s_ib949D_`dSU_XFYv@2z;Q?q<_T&hK-VVYlm_@LmFuXQ+-#xi&RXjVa^k4Eq zz6?CzL0&m86)Z-YQVh=owx!znPn&;3R}IOE3>w{(f(B|22=mUN*|$1!C-)?>Uanmi z_?lX8g|cY&jEkiSLgavJZ%BLfXRls7d)3(An|6dP8=oo5c&jcgn;p!DaGh77=XBvL z%-VVJ+i;#17olF|baZQB7Mb1FPxk?tr;X>StKJvOErqY@2YHtI5rlSA8K7V*6N>z>Xn zeA7gU@QG3{OgR+HsX-6EK;K#ukR6*M0ZV*Ymc(7lr+Hk32 zWv>N)ppErsjnfv`(bj1(S`=SorI~m+yne%G#A(MQh!{h+B)(oF$F5r+4|`zuG@lkL zDxE!iYuMJOGrg3Tv8jQM^UCnjFVQW@DH1fS+(<_c`@pvC*Df*Qchp*I$ zP33X9pu7ymkzu;!f>>A_4~7!>LbP4Pt>xDK-tOLBaD4iMip4rr?~thzl!=6W#o>Ue z1BW9KiwPc5bv3%FXq733k9*j+!|0rhKBE6Cm&)H z>jnM?(Y;K@!?5|*k4MM#L&dgchmpfQl5O0;JCj7BGrU_<4JLA-bPcvUGuoE?qX*(Z zl&>fCb(ShUgrVfINqW26_%WBP&0GZ&-Qt1%dvJrEn}K@LB%ilUjn{x^)2dhFYl#=V zv+gPBFzn;P;?c8zN1pnn6{B~eiLVZ<1i~g0A+LtpZw60d49dZl(9EBU z8!isd*G12Nlv^WjGOs#VnxVYcyO9&fs~eoS6qFrw1#=Yx>uNx>e4)V(MaC~&tzX7? z4ebtC9lMT?oBzTv;cmi}j#KZ2!dbQK*iCWhAutMd+aA~3t z)EKPb4RMyy@VBw7hc5Bbi=fD$RL?@*)MDK37jFvy%$OUgf`vay39wPkG%-k6q+KRRiYxu9%LNJ#)okfHYq8hNp4(rv`2AH=dpB zp8Uk=%stP|=>oO=`tISYV{srGM2U%-Q4nc3tJt8RuII9Lz$jTB0yT}y+H#C`Ozvjm zpb+FR4GF8G?b*|{^vBeoA;}gPDdW5lOmluMXC#wPQJ7z-vKGJ2}#qyYlD+{F{X&6RH$pz>$I_%i$ z_KCh+Z?awbm&su4W$RETh@=V*pegM(Tc;qh%iOSH|a~c64yu*sq_^iQPYK9UUUo>(L3t=bz5U8WQ_00> zxxtQuA?hXl5QoS<6lfE=3!;N|jU>3vE%l>#di=a%@NGT4j6=JCLy`bU(^Xy6lrLVd zrl~=2=F$~au&$^D#=&bEZ%+8QmD@xH!@(5<8vK}v}%%p(W@1EB&!L zK|49Z@vTaz5KRrS%p8dDOuH;`u0*f`!L*rovupH6v~SullQO#(ri90{=lY?>o{-2? zBGZ#F7S7lS#_{#Aa<%MspYU^y!`l9+GlFdh`D6auC+6c1`jRW&#BrLKrEz zrktl-kZsv!<(0HPCMgLkCPJKqR2T=BNVs}cjYQ-$m9bZPkYGFwopJ*rL6sfW>wB$( z-TnQeTI(gZEKlkON5ts9I=!~y06sP56tNU!+3t+UCp;~Z$mo%QEA~7p zl%MVs=ok>={k)&*f}ciPo0W6=N?d&vv2bJEJrf+*Nehh7ilvtPiSOQlW_am^Zpt2x z7NCq*9~*ruB3KOFpy#U|)|=T`$F$nfvmVrFB-t)*C^n_+lVyAwO+cSE_+hjdlwT58 z$qUV~4ERu+9O@D(7KBHRtbIb{W{vrl6ttLvezZ&fB;Tw+8e9$-K%dcR#8SMg8O)&Y zzP*WWt26S1#C=bQ$aD0O@U?b38IHkXKX1J{Y#!HZC9ztlyN?J;@R2ciS(?z=c>iEj z`gavM*jVWae-f!#0x558%4+2Gm<+wVIZ@=iNF^YgvuCkaj@ScuN-k)C)`)ZA`OWNB zr)h#e_6xec`&RL2QeaW@CHBlLiE;yep|U$5G&cvHo{pIL!=q^NMKT5`cpa}VE-h7~ zQxY9G26H4TcbKwzasR!Ej-)$XA{LqVa6miVzIvzoUKP`f-)7DVRe)!Bb zPfuRePH7poTDyCDCrWLE?-g8k!(?>D3kZv^0AZ;CbN-+jCo;-j7Q#wnMxBeG2mk6!E_%ZF4X-r@r@hwb z$0Sa>mRPyGu=M-bO3EAoDK4lsdXZt>xYE?5=w%b0N7Gd24SY5B9K?}=(2Yc?QyyUs zeD?8@&9oqUo1{!^YTn&V{=w1AjXk5ga>hNALERurlmhRqY_Ys$eG+uT;D$lB_UdHc z!Lzf|;=rVd*dmTV4a4k?<{(NDa2V8iSBr2U;^@Q-T?aZvfn#=MV_gOp zJ*TM{!D5uDq4xNRi+PF`*`?}$_=At7Xt(yml4yxcRG(zKjObqRGC~=W#<@_a&%G|p z%B;FbiJJ7s7jm<6)?mb^8mGhaL_8pAZ;04BZRqxUDr{ZoQznC#fdAOgp*Gz> zv@{L zicn+mLoRf6;a6`?Wpz~0;>-RVe)YGk9$8^%Bw>a;h81R{bZn@7D)FhD5eAd%g4(96 zp-&7P_2X$-^+o*@SzQ6^T$-Ni@XbGdvX@kq#5X7ClS&H0E2y?UgFL`MAR>w}@Y#)I zdQA*;h~^mdD4+>A^Z+RnMXqy=1qL0-KrEo*)?UZKaJZWghHzRtZXF)&)%SOQvZ;3& z-8av)vi>-jN0VAg&Z=lTIcET1O^oKrx_hMq$hv_ugkRYU@RA*XqMWA&Ej&yOzzo}P zJhCjC_;E-Sk3<8-><$NCFb)B`8o|Qj@pHn$v7dY-G203$POUwLAf^~kEFMY**%7_j z93pta!=Lk1yAq6G6_HgSf@o59q&95BBH4@a8rCbigt zw{>AxA_7}>Sr4D@X+MBVZj=+3GJR-Prw@%aM@v)$*WSILb0Hyld_dB!#)_u`6@q-r z*wKxn+UY*smq)c1jpr<48E`GoZnJ(Q$gr5PLgFme|EV>WZJ5zS{ny+E}H3TbrBs zz4qwgs{fn*t#7SvKK!?}jg7U{&CT_VEqcDT{*WF;|MtJ>pA2Tz{{CO`uduRA1kiY? zFnE%RtOv*l-M*UOOr=Cm(s6eTOa|Jor%C&&Kj;lE5gP2jzgS!1jZggT+6F4hoDM3D z7mkw=dz`a*8z-c!sqPsu>b9(Ts8Rz1As{HrM9(jrqzJ_4&Y;cWj0f@!CR7|-xs=9@ zOTMSz{%Xm~GZcO=(BA8eNDk`xzP*ji@YCf%{a!o|BhJGSA> zYQlQKsujClMR0g&5pSAKsy7M7%bIL(3h@Xl%{z6aP$)bwynoS$5G>*gWCxGbgXegc z)uXMKg$Gf7+T6keK(Ae7YeZd{HUw>b>M^I>HEDNqzE|ZQcdh{RC!-KH8A=x=K<)~O zjwHb~{T3DU)IVQC$Qix+h&)(c)~c2YzZGT{N=F|?Ef|WT9S-k*dPh-6+^J7F z@8_5?nkFf|=p$5_FS}0*;%mD2tqycawU~i#Dq!@vBzDhYmnvI*8g--Z%CYxKUp;LgZjZ!?|TljbPqmzRogY1QM37)<|_G! zg$!0ItS{-M$?RHm&&+w>-!EPFjrv}1mZLw8(4P-nwto zTc+vH=9uXQ`!+m|;eoNUhlS4HO_>A=uJqFxo5fHKf1hxt45>0Z1?73CC<%}bKP`OD zCzgzo@I@qZ2H|A1g?mv?ujIW*Xtw-abTnK3U&K_1>G9FY>AxuIe-lOZUY&G?yhrKf z{&;YeE-r?G@Y2jG&6`U(wT|0gTdR3<>0i|U{}t3f{X<#h`*O;L$o41K0EFQ#uTE3m zDHnUivRhorpY=IGSWo#}@7IoAx9UIE_FMb3cekVdN*oO&ap9Y8AIJtQ0DTGF=aORg z?xM5lxW$PW7v07qO59Rw{L+k$9vnZlnc7<&fY}dj?XArD7#2-$+--xI!&;mBg=aQ0 zPwAJ?(r`!GDgVn~GW*#r#`n?c{Vpn-Pna`CSkjn1a^aoiHMDF`o9q=SF9Ti*Z>DUW z`G+YpvBCB9IorFw>z?h>)669hj?n04!<)ce{pBcsP3Yz?&sv!55bn4`Yz^U+GWSjI zl3Bgi3*P+^ykN-L+8xg{bd4U#QBJwQPb${Me=xcdwcCqy}|0w+YdKTktP>lwTpLGwbKt@ep9jk z3QCTaBh*mlYA0|*z+RL~O5%;Wm>(%g1wG+Oo(;z%_ksN%8G6`UR_(Tbb&WpcsEY1! zYu-~m6=<^lH{FpSTH{eK=`Uh2ct_&xF3!DPHMx5e{bA2?@xa!}lICTx{ClMv{Uutr zm4Azt3bQT+nQ0tv-W@@==MfmYAq^IJhemz-U!eWMr5 z+2neDj<}Mi?#W-)el~mNv-HDkDyWCj4^PegPFqi(M9bKQ*o%Mp%aYy}=;<;Sp$4`~ zOa5goFkDT<3Ll6EEt3w<7)n5YXzr1t2fQ*|%$8E7*X=y4_z5w=M4^}RRoO9Agf zO~!Bzx&*caLs4c{S>h7a{Zuw+IV%0UT{7vq6Gx5)wfRNe+SYF2%Gin4zPM9N)D|1fy~c~iDQaDc zK7ES(>X*XR5H6N$W02>IsMEcKzlZur-Xz-Ab{Ssmv>o7|73VZ9XPJSX*=Y`waUld_ z%VOk)%jjy)uTaiic*Jro1dcnB*D4kNyWpcM$P-UZe7h6uRZKq~6P;L!zC+VXQyW+& ztUIno$M9Q}Xa{>{lvrkW3p-$D_i8s4VrF66GE9)Ew2%?9V{lIKIO2}3Pj3QmpNCUQ z#Mu(vp;=|DRkpiBNx9C*`PK(mVmmzg5WJT@u+%78ju7V59nwi-Y}9fzN_z_TX+!4EZ{beGn8vo|k>w4##x-P71&p${ zBZze;njH$7qYwU;pbj0qmu~RdjTf_VnQhQcr7b)Es zCNp*0ITPvr`R;xbehPCH-e0Fm_`O{_J$a=)`?r7n`+w@c(Eq=2*gW0c->+VG{%F_u z+5Z0l?cv&^jelERTie)J{g?m$f5pG$Ws^5V0AS)yJRBP|Rg)UP zB!0MsAk6u=M~U$QXUufoMBhfs%Z0+bckkv9rB_nu+l|F~Ou=>6OFNWIehhtkNci(#>iisM6MynyNHVscfKI`kid; z*i!{f5Deh^YN7DVz$f#5d(j;ia^|3M5#0_Z90Gic?70k@Ke#|d-3taD84l9!7}(6C zm>~nkS1}8- zeq16svG6XyDx+^qY`eth3y7l0n*agU{+e_3Mfd5HglH$QoyQ$!F z@^S<8Z7`A)%`(Ep_yVDNG-ss`Nnz4wOp=a*Iq^o;>;X&LLKdnk76ptyL-}t1h+<~E z<4*T7idof7dv;Oc?P4`WTuVv~?qZ?v6D^j_{ATvZxo%6=-E;;vUrMZ?|1|kkdumu? zZqf_c*cQZi82Ir{E896x=C_Er7IUsp^{RQ$z@$JA;kfxmE*m#H9JC!~69H8MJ z2JhAV7l0Pi6B$)1S4nSZhh$RRWylNXd$Va7(A>5%d-Uj?MziK}#Z8J-t{k-hr`4 zY|8u^0G&I7=pAn)9q~Jt4wd7qu^Xz{= z%P_PbZRn{jGkaT`h@`AuI znnPxBJl}<=`0untRTiv?LqJ5b28e`0p^5F_L&r~Q;0LW`+>FCUF2AcCA9IqboyuP8 z#o;T(6Wv*RSIEM%0QyD_s0KVz7f!Dd1~{;x*B-!MKVrge+D@k%$M8(*=rm`pX~hRO zwC1}fJH>@JyQj6IgB4NRz$`Gm^t01h9DEi z@l3%o7!k_SX5PTKLEmw9b^5@(&O0z!#DR>V3*z8gX+kb|MgohX)2qbGxvt4qAn)`G z9?|r>@1ssPo*hJ+s}ElsN5_MkWOQ7M9GbaJSXOYu<$LvD&>ttS=`M`9o|i=5K;L;M zS6NU>uL=*ojd**}p9O&+ijb9iX8}LAS7>fluH?lPq6F`|lVkGE%!zlf3dY>7h;oLo zupn`6Z+PU4;jQH;jOcy@a6 z(X5^$PM>Lv;Nlq)VS@LW4HmeRw9xC0$DGGIpSi>~+C8bgtRVfN(CynxA{0)-A{nB` z0!J4pMP2LxrFfI9NKuVWCjIsG7H!S_B2W|O#|akF^UC1pM?W-QD$EU{2zxue(CijpybbJKCa?x%utG2I5#%$ zD$N}Lv#5&vke3Dd#=A`?%fX-n z`KdBuyM8+8Y4V?e&0r0y9dT$Q5EL(iaG04&w_BO>1xsmeQuvj3QAfBayJN~miqNz2 zz}rm90UZ%G;0x#(y7bh$#TqjhC%4)@aa}aJMV+^jE0jR zb<_4B#l3+mNBR_Mj=sye&7 z#Pk6owQv9oE;EHb`gq8MEdu(?cyj2=(c#_?(df~+Xe}xV6(yUF&s4Ndc9OUhecuxHxEhi=>HPOB?CF)NtgimS3>o3DZ;Qva>?l}K2e+L|wh zS)67S$b7&wO()li!3`QZoQxF&m5+@Xp@3Sx!`=T*R)#z6(@$}Lp$mvXpt%xHob$Ea zKKsVp1ooRS9I;Gc5}$V~o7K(g1_<{y^LPb2A5&LS?)%YONmQFvrTpxS@2aP>21S$+sUt{ zlk+Hl+HsF+U1n_FbSQNb5ILS3IhF?8jin|}mVW2jle(Ci=)=niaY^sYzL%N@=ZYBz zLL|e#8jpwDD=U}XaW#!U5IY!ORf)5$4n~)Fc$1v3{B^iv>g3=;ERrosK5NraULX3M!3d&DB9e zK5f*9-aV5Pj-preHF=9L8ad8z$-VlLe(i;?h6=t#8fM;`I@9#(ODt};AIJh_+>j*i zDA1Ph?H7?=K88UH2hcj6KZqC^?^4zTRREd_^bDL69UM-b?PZ~G*zNykT+n6Y56n2S z_UGfc;^mDDj?Z-xYqCKt0d|=e!PtP}ae>(N4{!{Fl-T3IA5DP_s4h;&fwqW@0Gsu? z+lxn5^CadNF8<$r7Ah~IB2P>a$D+^k#pj|gv*jNQla1n_`ML)4F7J3E7>PM5)BnUG zPTfAk*v`g-Gw%7>KVxjQ?K5voyif)`J(bb%sqaspcssCe|HYfi4YBn8=%NqZn8y55 zbM`PZgZ^(CGy0erGLLwAzy)J8tXOlde*oqg<@J7I6nAs7z?fTGwwcVm{e3|PthrpC zi?x%}C5una%tOkebF3$=7a=)S*-tD?^(Y%Elz^)6YKX4rZt2|?fB;SNOAkAmlcUe> z%M2|_ucS7c1FqqCIOLR4hOq@QxnP&W0@jDsBZXG}ghX%CyX%#5 zVa3#Umnc#$S23KpX6#1NZjfb0Ct7!Pxrkvt@ zDQR>}_q*<$=;-`Esr@wCWwDEQ@LG{zW1SI}# zneiEUHB&}T#wEx?i0V@?+{sWbPz?r%QwsuoF&VL!2W-M+;^oA*0L~fkv=@$6&T^u6 z4~N5;`_p!mld%BUpEG~3{b5v)FO1ZxiNB%nfpXuGRNTTL;J~NEa$sIh(U`=twP7 z+;nxHvS0p4%oHqrA)m83!E&!?#xzKD1=#tHnk(xC$GzEGo$nm}RzT3l)HOP~p2G3LWj)&bG|LE2VrTXOv|TCG0m@P`+NuZ+eqf$;D1NLWfMXl}Vt!Xs`Q zH&NCaBGMpDF0a`&!&fip+O=riS_h{sPR-S7y(<{CftQ80>U%(33YL3xHM!Ij4_(3f zS8phO`P%S$&PwvGa`}#pBW6!P3X-&WPM|$?YOr^njx}2GKGGlW>`1oxiq$-7U|FD% zUWxj>Yh=pf8?83zB-9F{B0q|b_kM^r@mNxr<87E7#R~_)g*Wf5r-+KsHlHi|{b=_F zeU4}7iy=f(2U*RGDu)bN)dgYAi${eo-}i5jJ!!?GWGlnbr6^$0Gu2QX5?@3I1&K)` zBITavR<>HlsP*|Brtf_s=9oRE-c&0afBcGTRP)zX+@_l4T4*w9_ij#028_c<*_?Y; zBVd$IoezmBKFsZ`jw8{#qb9_ScP2f9AxwO3N~{koJ>?5o-zdC0-236#ZnOSw$_wIL z153G6I(91jR1v)41$H~6TWIRi))ZIoymK`e8c#z@>YqYe)H&I}-x`7(-i#|QX-w&(n z=AG`w<1O7cYt;=jw2B|=+$4T%;>T7{+$^}#9RDjL=RBd-pFA!{2laAvcv|M{mgVTj zWB$ty<>TY67EJ*+PfPwvR7tN+_5u4qX{YnM8XX}mYV++V)MT!{zpHlj-FLA)o%Zv z8~?Mqw!XgkZ)+QC>#L6*uCG6Q^lz(c8;{oi760>J^6ziQyR{#7UqG$aIQ?4zt`{w& zoMfBbqU;Bg1-rG^IEjk(jZht@WvIyCic1J)WG9Wq;=*rIuJ-EWq<(nX+HVjaNToiT z&8B$}Ww+r~>Vj#QnEaF7lb;NE+h)cLwO=g$&DY%jZK?1L@tForXfY_?QdNHA@U(vN ze79DQ8V9&O>wEMT#w$H&iLeNUI{*FSlcVGM$!VkBbX5Ur=m+g4z9q`oFQY@o05}pRcVye7OEE`u|_???Lwh;(gR=@!>r_X}sP&tt0J?COMn> zqVP{i8MTR&QLFz-8TGG}QUBvoMy>D$+>_(*rg6Bj?m1W*4{B;fbThlh4SDSW05DW@ zw%FqL828FPl4q^f62m)vYo1F zRA)<%+e0p9A8?}FL3`Ze$Jz-^nVgnCl-o-Js>V-RsXntMxo2-q8mINw(VA;rzul`p z-+i?&`I3)bomvOYheRVn_>OJN{+`r9&p-5L7 zed-ZIw9fcewcmcfqHr^W`-7Koso?LB)?u^tE%-NZ`QPl?Und&u@@!453 z8NnKwo}In^xOaAT&^)aj7qit7tNug%r!TASv_0$&&(4l*I8IpW-eI%0-yk8t)v70# z-Wh<@pb~2>p_;W(yhtarKhE^>G*jhW^%?cc;c0H2$mH9spS-T0_!D_ZV`(xlKwxKOTz)WT+~7thY%I_XVkvyONL zmZjV(6`QOR-6!(wO47xBKrA;6xB2S%^Tv-{zIZ(9UXvt&r<03|?#H5cXq5MF`ZYIj z1TJD)Wp7wV2fNf;ZI(!}#IXI?% z_W2+iCX=%#!y{%4}`1W3&U)&fL6_a&%UCRD?{$ZLv9ZX z-`cMqMjLBW`4<8FmXrGs*TC4MW$fE4??wHTmfcUuSTuRQlKuy-CowcJ1JJx?2G1rDbhj55umx=ZnL&@^D={IQ7`S z5`q>FzoyB4PAZ*Wa3^d*4c7LpmO+B_Ptt^{=QJu(=*5jg) zntJeE8_*w3%0IAtT0YFrXmQn1f17z`xO zZjpC@W{po^)=m{}n6G!sfV4E%04W%!Et~jY2i?1+i?>) zoo{JQ4AbpHSn&7urjZZR-(iQC z@1&atv`Q774GA%fJJ!7+>0gpeO?#)4H*8c!Md;pwsB_MkkZt(az>Qf;Q)XVXo_ z?J>M_h=cYPGc(huNP6p6El;FDU1O?*MAG48eCNdfBKgl|eG5k(Q|lYvd_=M1Q9pJf zdzV2J`bs$1C%l{fHG0GGTO|uCf#VNoTX^rK*Im0iQi*6}TR1z}LAM~Q1mD%M!RwX{ zA+<2DHe>fpLI^35 zz1xZp)=6_gQ*K>JHQS91vh)F1b*ed24kJ=(;nsMdFp8$deK>EPGX}!|N0Q?!6}geC z%ENLrFE`Sl>GRRxebVQJA&&jMH%aWgC|@g#vza2<25NPez0}dPH%ffE*I0e_YfcCv8R-QKQi4sLfkm{g(F;skp2gMXzYm_!!NYc#kuh!PC4FvFnB*1 zigK#0Q9kGq)G^`t;e0I7FI|7DqvQv~U&|XhZ8G$Ij=wah4b#ib&TWPo!^bWeVL;q@ znFRRZ40xc+`|=BAUJ){4|3F1+!og_h7X{kch_g<_kKG+ zr<9jI%4}}g8MGn9w^@lb6rsswmz|+xr+^eH$q}{Z47y4+c{J6#fOkiitOrd^m=ZkE z1YEU`6eEk+mEyHyNEz3*H0Qei#cS;sZp)lx8Yv%l^9R0RXZq!MbQz9aGiy5XHM(sv z6d0q9A8JaA3q7JY@NDjC@VOo`#i#N}pss;{|BeLq-4=%z4?}~oD-R#x@t``*b?8bG ze|Ir3`Ca(KQ-xknMir$=Ue+whPDAU~qWLqE!~TRVlaf=%DcdPkaCLu}c#M&z@r_Fn zY%jAFLyL~H9S{hMTuKxS#_+!B`|i-}SK&6V7#|Bw(^oo;bmS*Y@^};}W61sWKGzLb z$y-S%4EC^h#df;V679dgdZXF}_P#~l9}>|>MpV}|yg*I92K)7oxK@9R{!Cw|?*XOH zER`oukhp$YKRIk2>^6UhRzI#yeNk)dozNHSPDIcqd6rlvC`5m-RPaaEI(0c{>V@t& zl}0f$PjiHw;3c@<$sLEkAmD1NqxNR&eR5m)ZHn6PmV3MYaO>x%Q{R1@enhQ)Hnlws zXOI^aC*s37F57S=_9e)m>%dRp~1I5o2R2^n(S2(|jODk55qWy#fG|L%W zb8?B5Uz5>5P}&EkK6le|N4V-1Ro#N=?(N2UxcAUEDbgKoPH#c;)z;fJY+4=6U^wO@ zf{}nr5%>TcAX;}Kh8C{`w=x{FdCzI;DtE!Sq-h!%c1@?etxSt|Kjg`U%N~lm%)a@o z9PpmO2DBLVmdH;XWqjQd29aK+(`Mdfme|8R0@_*E91}g6^gs`&WF2zRuzEvz{V*}J zOxI;caz3aP$rp5gc?6<7&uKh%yr_V8O2mg^iy00qU0kXn(2V(%O;JjU3bHjpbFZ_nUg1D4ZrU8uov>9^p2h0XkB z(rv%*F^n>YU0|O;x}mK-1pZLE?O(2}&i;?aUW?6kEr8!d>#LiO?`F*3=DhmzoDS*= zg`K2pqti3e8}`L?=hUw1cW`ZWee-^t{@WQ<{OmHkV%y6hZne*&;FDu{gU2n=kp&e9 zl#An$o3ZCLH$WP0dPy=pimt znUuw4FEh>3qH0C)iz>@2NlPn5(g`6Oj|n2EHP?HD1gp8J4M{{Jf}{a@+#?A~DolDYG+7J@b=y1mYKom-sa+qeo7^ zs5P%KzJ+xArt{m&yNszaHydylg=vqLd+~W=zaA}L49gxzZEMm(#C>s^GQSSUs4ZMY zUJc5ru|7!G86R}5y}@9Ob>?#Bh{|S|0Ml)OKyT4iPb|TrUh>Qp&^wta)P?^*Gs(Lt z=za2W2rpeZ`F49_n+<7epqbNsLB!1u$!ejmk<5v45&-L``?*Os=C-- zs(c^ZzDr+GQxr|tlT$U{dSxW=q8}stxLI0y>eci)dh?P_ev304Id7|1C;NN#XRlrq zRy6Yn{l7Q3sq_%|$I)q(t61Q|6b+!4#P6XDl!punENC*|iVgNI!?H=Xk{+NaP#Ncm zU=_6DI~oW8YI1T(*8+#Y_2~~uDgcQA6&aMNlwJHJnSpY%0$OZ3fSZL{WRw6!*6x^Y z@F9jFM2r}$(~A4IH?f!m5jC3hyNIH#`fS|G`tDx+1kn=v09br=+&Vg})qMxQVztTu zfiyeZFx%Y&2MnCYtlKWyxZD4`H@+6+y+7PFdY1q9+WPA1qepAb|9fi<`F|d6{LBCQ zzsCRD;ZHw!5bYgBhexMTeXnsERlLMN=4RD^Z_Q6qi6_epmgeRoNZ{syGHxLdvMj;l#$@_iYO>|5wk=$ekF za7};6fN+sSW#Mx6!DfW?){dPx4a>$*Xf9hktmhn5zouF3`&(_BKB}qRNa9 z@>6!xPCjU+rGxrO?d9$v31^M{#_3PsW}i1s59`fl^!(@~+KrBPPfi=PSNpps(ebMj z__PAupV0yKb*`toX!1;q63>HPvbaE*B`)?a3N%Q3r+Q*&(+ zJ=osFj^ybT%eGVv1BlF+&8H^DUSr&&b<>2_hfsT}V=>lbKq5aavER2a_WC9*36*1H zC4~}VAm5<_(Vf@rGKMRG&Y7qJIT5i#3yCd=D`X43Vi+LpfxANlQ^s2chh%LCyQ|zz zGS$H5yTIdKCO&{TS65Jg}#RGabG;(7~w9b5EqtQw~; z;kLbd_*3*|_vC~&;!jVVC;bPt<7fTo;j91PtF~?wHTCpR{|gUhZLtg9q@%x_K#8Zafh*Tor}!uJwSED%*!eclSC5moHEKeolMCj^_>s4pa`5jsUuza9sm@_ zCr2+%b`N%x#1%A#(tdtjKWR3O4tI)7`l7w$yc_o`{GqZ{ENK1)5<}p4KIrcVg#;E$ zB#;)-g9rHV3ivBk{ouZ#kpM5J#GC`~0ZFMN$*|cR?SYnx`+-1~8z6$hg8+Z0>bE`f zpY0TEeF8nLd4QxQXgAWZw{z>ldFFgf9@eozmoH=6!qyqnzJ;0}Q0*}mnSJ;*Ooh(V z6@v2_6auW7pp;z20jf?aqKrm0IfaM9LO+nnIv)(iK(!ij5^_O?fF_vfxBy1e>jIdX zj`cuc8Y)x+O+`m8ChtK=?J zZo;%H?7&EIUPLpF%fUe*(aQ_N_m{+W2$2o}iaBh>S8^5qY^LIicnT7a1Vaai?X+XgCzl+>h&X>-Lqqi-0T>?boWE%$ z)i2^2>cC%)1J1XPxKjg7WI&FTT5?;k)p4R1IBh=2T%n+#E`5}Ne-==4Fl|v(jou~g zt3gy;SS?1M=w@ry_bPN9e~wD&r?>xD`FVNa)2GrqPXtBnK!<`1OI0X7k-;Cc88SH6 z)J1@vmzUHEJc2-vrDf6FuzMP#P$n`RmPumJrrEcwxnKE05zOOms!3vI->f?IoPUk) zqSU79lr%QXugOJ9l8h73{;P{jT5O!_W~B54u??-fx#Wq~7;R9oPR z7&INVTj(bfI{R&*u=i?rA8{u;YfnwC1M?^nQgQG@lX_f$YY7NOrB93a+uxfnTgu-4 zg(miM5z&l`$@K(8m5MJ#-*Y?{d?KRt@Bh5^RGfc-3g$}Dhr?I<`?Z6;9ee@ZKvJO# zJV4d|dwRtV!|?s)aGkNDt1bMt_Lt(q--@4=uizTQ19~iEb-=vKL=Hl>oXAHD5hzo-&>XEPFVq?-s!&Rt9wa zyDND45*_s8fdO>`Q!3m08%h{OG6)Spn#h#O3|;Sih}%)3FaW02CR zGH#1m&zQ3hD2S&5(Y0Q*z;3qKJtWz|=QO@Z>}M<_J^LWh<@>vbFZjnR5?7-AS_@$3 z^s5H2H2&jge}DIs|2!aefl4(C9XM;VTEA%a0>-ryofXd(ep`^*c{7|9Wwkwv2L{#B zGCOAr`j=P0d{--cW0P)}QuHJ+EcSD?igGPb2=zD}7ef8vGe?HPrMC?_0ca z(JdB`^n|&*Jw(h^3yYIJhAbbawm6P}Ux0aNdlVbbn<~k$@fI7=p==XL? zg;IeE?i3f&;WrEYUQw=N@OtcNJVZj5K8&9%|BUDk8zBT8KbF1y`RB($ou zqwU=35obZKhV3t^;gd-Vp6M2i7PbjKQuC!FrO^Ad%ws3ATF}iqWg{lz;Gy6p;PQ60 zh7k;+g;{T64~exJ3&gflwjB7WzedR=Ty6CFnQmZlsUXuQWcY%XaE-~XeE!Iv3!h#0 zAc(^qh&TvnDw>Sa6xCkVYd^G}zdEc%Z!wKO7w(kOvqO=HWC?>)>`cop@&LuKDuQ99 zVt8}OF2kWPta#`f^ob%dRz*hJ1YLCryh!l!dTWK~vdRS`7K`MHb3lsfSj79DTTEgR zV>wS+FA@K7W-{HZh;GSiOu0d@JVQ;yrqK(8gxaEJ6y05iN-S2o{^?z9p%} zARxf&ZbaX5#v`DXXjo8>xhfJXsR|GxyKb%P_#+!N<2K^%byIlDYPSU5!jl$Ufp!+w z%tPr1UfWq%HxK2g{kBml@_BzyH!I{VT6Dv zj54zb@2THL&xU+2sfi>7#T*!bT~z^ag0M8{eL$uSRd|Stt?CC@Z7OMeBz-!OIOv;1 z8>$f&4)Q(`ar#wXNt)eMM@qnewQpgo(z; zZ{gOQ8nFwEoso1}BGm4rEAid`R?hGG2md}LJzcEhTC^T*M4QpWXe)YT$w}DsLhzBe zyzoK6ZfTX6gKvwzltGd-CgsVKU!w1^VKDHjgsX*3g2HEyCf=kA#6)m}#BR;r2^_|x zcfoMf?T;^_)wT7F&4*i$9zXG#Rmwy=k2dkPp3H)wZIZxQ3kH9?8phW{Er0zX@}EZ8 zMySSNeue#>f0T)=fB${Xms3>sBJ!s%`p$dB>mbfvF#Df`KpBeEz3}Qm;h>r+UN(5y z&h$HAR|y5i=jbodnn}9ncz5$Hb^UUj84m95tN;dm0hE30Lmpkgp_|3b?wD0|?~`Q6 z0h~tBZp|%@-cE0zyj!M_cXu*3Vf$<@>~6vIZEbaVas3}_t4qx6a0G0(k29Sn5NcRm z$JU&rk8HI*SFpAkReIr!m}?`v97fl{D*JmT*kS!%u!JmD6sGRGsEBQHNk59Y=SmZO zBP-R%;pHZ$^`7d398@AvJ2UPky+-auPG6kVkMBWGFGtDH5>$NnQi_UpEJ@7{oh$r8 znlgj!{9i|EFfsQfH;EKqDDj__MNRw7;ekt)(!c1>zv$0h^oNhyC4Lt3k6}Iu!nT`F zZvI>B|H%F|943r%WOeooZJD~DMJ8rBx_z~WvK7WzAxw%@>0!n!Z@FxwIOKF}#?~Po zJ|>6FHTHb05S88-jnzyfO-USMSY(?9118Wgji!=kQ6{p1zjnM+Bmz@02LF2P<_W^$J!(QWro*-wRdGwk- ze{elHIoK)krq$2Qm-YSq9Uy-n9X@ZoXz}NYx*2|+=a%3$3^E;HCDVSFR(qV@X)pl` zOI^e?@08L{E7nrP-vFAyeD#m&@(P}_dWu?@oC{8^O-lp|2wXs5OBfB#5nuPqWPrO< z5JeGcl=kBE3Zb$oRdbz;W2by^@DSqlp`mQ*gUr!!Nd*<6arRgsSqPovXD#jz`gyka zmW2GXv!BnFKAoMNt$n(bK6CoMR3K-?X#~kC2hvIJOxQF%TD`QKX=R04DZb-IR?x`G z<(!FuvW?Z!;%C9J?lH8H$w#@7oc9Hr(WF?fJBA&!cPrh%-fHQy7Qc(ZzWurS_8&CZ z<+GKaX|#X-G_N1*JUxQE8QpBGt64IZ;2zKvwmM2VN##O)x`|;F!m6>a5W0>#CMXB< zf0DN2VbWQ0tISkmS72`XF_sdB=)|Jz%CPvGmbW!-c@62`GX4B?`IPpg`GbDp3mxN0 zQYoF4IEyNyW=0%*k{WqmSu8j*Flf|f3D+i z`)N}?*(V)pAs*4gg_3`E?DFmu5#o@tijUr2`SaOXVdat^{X?FuFW73d)So$Gl}_2> zTP^eR+1b)`X*z}8!}HYpN?JJUudG}aXHZe4lP`LM^SI|!km6a5r;mFqqAq zLrLi*QJ*Ill~^(mcxCa2lD;@q8T*}pMh>Z~a6)3Q1s$brS;ITjM2=mI4AWv&D={`T z!}Nf-B8~%xqYdvCzq`gB&z5`c0~kSe5frR2nn9EIYs^?fZpOHmoRXEnUpOs0d<9jz zrt~&odg#ouN2ISNl=&T8z#~okc*Y3;hG6Ipx++UR+sm7Mo8KuO322d|uZG(Shh-TT zQMj1cm%u}5dU%u8%`AhmOV}v5>DU94b)-hIjcH^|2uZ<-okmMpMV6;B=X__yW7+zW z!Nsfxs}A@z#*_3tJKSW_PR@5UQH~CVCBxGhrwHmwo38u8HQ*P))DiDh|FLn}YQCz~ z>dhueoc!_mZe#z|NquKcJ{~lh2fL@WmpfY<5E2&t8tp{%XIK45saC){upQCp=&!pe z-kCQ?9B0&OUw2B8LdmCNN%)O4xMrSiEL9lC3YZC#pZ7?wE=PY?ds2;qlINwr6)exH=Yo zvwv5L+r)W7_0HdHV~(EPdV?+_iDy^qGfaNaH`d!Pa20}W#9yQXH=FG0n~Wo`42Iqx z^ec?^p}v1c)o<34YcYwKZy>PTjNl@sSsTSfWbC4l)-5GDCjo+eT<~zL-d2)}4mT!! z%bqJEUYP0MT*u-@RmCZtLkat74@9>xFCxf z?-n4U(dIR;7NbuvGtd)XBq_cNy*~_`ClaQfrvtvNObv=GU^m2efyH3kf*AeYo)Hth z{ORp(5cY-E+AtSE;!@v49hT2f!4~F+l*n@+V-4L*mHZB>P|)pTy18cF>2HITjHLUh`=T#wLSt)#%Wd{x((4+VG^LPYf^M}WZ9LO2u!MPGWWNwXv6>b$}m)%l2G!Xr^)wUhm(W^y$w#tky(<6RSi>9y{ z4@L$*s)TWxS^!6umN@PS)VyS#qa&q=i*J`0oUYduxEot5>*~3~7x9=xYf0)WF1Wx@ zaR5fzAMvE-p|SrLzb2@6ZdmLPVy8h;!x@hRjlV#rcqt?`3=cKzn63|)fXPtOt;Eb6 z2YrV>J@|o6!r0j!c90~HC$STdOBepUxLFUH=b&!ELSk9Pv{NliP4*6Ya+g9XN8-4L z2k)uCxauWibP-;@V@+poP9d`qEG8#?@yW$KMvPXMk(C%yhI_FXE2Iq18n_GM@5i?e zVTN0@H|7NgHfUz~C3Yt>$3sp!G?(sp^Y;1(-fV0grNy}v7a|S;=aK88(lr6F@H6#IFPNhSmD zHWG@|>z;Fvvg&k{x6jI0%Ay5ACchxC$Ak0a*75Si)*CR*%J;AnKHqNqi|8EAz?_a- zqdL081L+t|taNu=E#x#J2R*O#SzkE6GAASyJa3wDwB~!w5dA*dM{dHC1KxPAn)TN1 zVYAWV$IX15Jx9XX3S2~7nWnTI!$*cObY-X)1BOooa|O5g%O2l;^e_QOf9~ob4wa3a zJPz6szf4$FDtcR)rleC1+{)OU-44JxvqR^d8Ocs@%{a?BW7rxAbH#;B$!YtSz4%co z5`CoWpe;DYf>0lJO8=j?tJfv}Iko^EuU(g($`b~-CLsY&ABBZS376e)g)fQ2?DMnr zOua+|`1vN6r6=v%SW0f$l8N#7lhGWxfW{Fc)oFxRuvDtVpfgZ)?U^}$$NJCoaV6iDCR2q92#czpyd&??U|NJy}q9t zAy5PC?&h-d?sQSgB^;7wNW6Ei4@BLesxe6WtX-fB^AuuVe=tsL!Un5g93jQuNO=Sa zLGd!#v0pRuMc2fJj`|uYWc>MM2fogxQ1=3?CCmDQXwn~<Uf`StpCXLI&x0B>Yj^$3UqhsHGWzX6Fal1We375jzb1Qe*HCi6Q9k)ucd!3J?5M_@O#GlnjScZT%aiXv2f*+fB! zM&#B=rqz3_t3CNs>tXsoXDYa~7+C>2s58Se60F%-bheOF*7&Ih>-kUUfvnU$I+3@E zlYaM?d#<6oQSj0vx$nhNwssDPz5TKEcz2ow1MR^YAM3gy?^7Gqh*7>(WHttXsbLr; z8-g$5J|CKj;%UpTicuyNxeC6OSvTQ!;)1D!_SW6?L`BiF`(8vQF^h$KX0@nQ0BWg4 z<}%b;$EE_+G<0lS{W)Xp38)rJzQ`WJP}5c^wxp3o{w&NC0eQc`+f7vbEmk7zlvLfk zP+C|ky(<~dPF@>zDa4MWJE(NFSUp=Ry(@SZn<=@Ft=E3zuDfNb$38BGS6x7z5WpK; zXI^L=(S`9<1c489HgCJC8qAe8fn2&x^%LzaFMJ#oruny&;S#1VDK5KClxJaaktBk@ z(0@xycU?`E>6m*n*+z2-7|+37WWyi(4tlt-Ox?>NMqgf=*%p6eBSc77j2&fmSf#%} zrnI+49Ahc*fAH}U#$v(|_N*LZ7!Bi4ph)d2?A!$F>+DNGxj8qZ3{4=wGy*XrY6j#a zL=IMy{DU^k^?)W{lVCx?(G~kH4DehJIAeB4d)e(I2GPK36%{9)>2eSduI;w32JaK$ zsgR4SZ`B=9dP_XTM`0*h=R2jmDcf22ZSBE><(1Dkx~m-NMtKo{ zFhynS{0LXSPRBUU^fjxI?@> zdth)02VQ{PxRYIFF0&mKXKg;1Rfu6zb5GW&;zFq>eP+)&tb+9clA_Sxo#VDp31e?4 z%HJ>s=$}TxUo@r67p!MD<%#U*pU`y|!{9V$apD#;#twQ$L!jr51JPoiB99B1cC|0Q z^Xt$#_Un*GuAcPMf^F>6r%U_(=kP?i%KU{XzH@QOnTkv4r|PHZ(`D%$aZbhP0qoNP zSH~7+YLBY9>YjJUtv;vg7BxefB_+D|{#cUYRhl6!b_1FfHx$O(4KC2%ZC5t~b19ME zuul%ym18yqxEI-GBY-h2s+WgX`&S&^X$nAV>F@uA-(>fH<|cvzBOaXoAbqcuyNKOa z4p_V$;0&ol_uHH~0p27rop!FEzAvyp6ppH^|9E^-Z?Xa&YzLfI@1ouo`^Olky*gY% z$Xm(qrR)sqEnCM>2^P`OnHbv{>&l^EEV{71B@^}OkB4Yr)I2?D9KM(yfiGNBxs2{Z z6TDJi<^8JuW`Ih%R5(fquEd&H;p%os0#LqQ#K_Zmy8D&$mG)DgbUtKAhLv_(j5ZHG zeqQ+P zgFdZTT`p#$f|)=sT*n_#2i}}kuyE*KYZwumUay@Vo%~c`$g;V6Iq+x|Wjp+IEHqMB zSKyMQo7c2DkHa)TPPZ*_w_NkS5PYLT!I!?xeHy;!kg>LbX;xhDTocVoTDOs733Rd; zQnwm<%DcF0U_DEfQo+OOnQqfpmQl?@Zc=dR5 z#!n^chp2!!rHNhJdHT4$bq0^A}t^;lvzMG>3&H1 z<;Zl{M1NQXiv&W(V}DLFqn&p%p$za==^8&hIHnC!Ss7msKd&tOwpOtM(&zAY+Ky&i zK4xQ_NRGoebNQGUaGo+*sxH%Js-{BKu!oR4?qlvf(@)dO%ECgys+0>J*_6RbdaSa- zk;R7Cv$}BrV?{cis{Wn6YBry3>PP(-9F%uiS4npvNqy5^lFv2r2_0hhV8)-})6O`Z zpw%b4hkHi{)^vhcbwpHpL^XFZev|hqtDk9J!V_XwzcoP?<(+r@%L&!|F+xhKTmqqk z$rNA6tJ=A^`3rKBlt%0@mR(=k1cU2yCL4pk3H-{V0@{VUPQT*J=zhvOs3ljMBMXI$ zuxtkGkqg1WZpG&*-=25yk{lm@4Hc?{V0S8$p~Q}jbOYF!{$jOgcnIn(+|yGit2sY4 zFq4I-LVhY%r;A!7P;o^iHb*E8XDjd`vFI(O1et-%BnJ-!as=>A#_^AB_OQC8$yDv; zmJ0`1^%0QT2u)8v{R7|)fVntZs?ybbw)UwMlhuhrKq%0ii#XSRt!t!k9Hxf!C>;3 zH^ov?m@=Je&>|uOi2Y2Gz%|B%7pFsbmf)skmYfbdv8%mXTLri*>m(wpZHu^ldia&G*laZOcm6ercf6`y| zCkQ)_*cgUrWd9(Q)i`s-vDH)4k*Nv^O#2C#iFnlI+>jB+Xo2W)7Ut;qsM+`tb}S@D zP3dwJ9C3rvuj@g+F|PNABoB(adsv?6Xhsu5eb(mZ&^Zmc)V z(Qw-kzqD~7ibjCB5Y*A?+)Whh_?4V_38rQD3uZKU@g$+k6ksXxBJCtLPUjqj+#}1U zVP*C)%=JQ5%2M;Fy+S^x>@rDw{N&<-x4A%yX+R_ZUfv*@4)YwVj`l%-<&3_Ys+anreIaz)~bb^ z{>-=T<+V6dsF3U#Gu|Edy63D>n6ocu*SkKu-gAJ(%&*sM8NNX!(2~>f8Pf#Mmh^At z&Cb}Ms(EA>5;?H39s>?A=AKNG``ixuq<&%ce1()w+eFS21fjDqkR@)JYDB^(g1+Mw z^l#@3ZJpDX<=oCVfJ2#yY=4|USDaIK5#nBP&U_W`JZ<|l^K=aN-aL07- zH`T#>2Dj;)iMnGNf>Sp0F1>38%%bE>!Gq`}C)bk5amEi(Q9_a53~&1FeP^z^GJ6s3 zs$*)|bN5bAOLjqm)%yM2oWTqfj4*uzFVnVUZxivEC4KqhQ03W?b*Gv&*Us zib~az$(ZEbpVb+IxSLL7C#{NEyT=NB?HYA`P>K2dv<%e@0yfRL2yQNMhEseBBG9PG zt7P15a{#gw1v5*<%aQQBo=D0Njec01$`cXvONqgyy-5Ve9Pu7~lQ(uKKHb=00#mps z_~+5l;^C6!x&8=E}nU(;9Lo-LpK_2=ML$m>lgz4~8eyc|7L+Ty#QQr-Nk!9(w63QhE0JA+;) z14-tL+0bipBB(Rk^6%)sVhISdUgDvEeQ2KUp4Jx^)|R53Z1}SP z=3Km?ibeW=VczU?CfC=uqRFBDOwW<|rpN`ostl|dzVutrq*!PjruwN0y|Tdw&AP8; z6Hf8V;Ueb{z+k5o7dBj+ia#r|l~pS-f&<~%nH^!Kd?rs7Pv}xkonpky&UF54&u@Zj zTDn)a@91nM)m7kr;`dpf5!#rE^Sy_M`3!nUZ<@^RsLACT)#!GMv?vEM zWh;U}N=Y0_cPW}3N^Iga0_60vL)w=t5DX6nckVIw0WWoDR6FTQ9hv$$7g zd0V6H0&Mt>Pl??`--jg6>g>+Ug8uiOYnNo5Sa{$`dEV_{MOn$4YTAlNmpd~_z%;)w zzsrVm_-4l8pY>i;WRD@gQ^kA5zTH*rtXiF|-MV`D#e4$yAlmbGBgcIBX(}boGMg3v zvP3Vw^(qN76_;K12Osj@Pnqp-)eF9ansWfEUV#G`y?tD2hCze&>WV5yvWgxo(dX3D z_sJL|8Ntfm^Sg>zaK%nbjn0UHSuSp21Tc{Z{Kd1Sv)|4> zpM5%ediLGf_h)}SE1gAW-~7D%X_@{D^}sas-c~%DTC%g^J!H+Wl57>o^qcEXdFTHA z!fhSw=HI!O{Vklkf%WpSku-cK7pBwV8Bs zisLX0DY(jSXlk(DL1eG7a(rVA9QkPtic?=&f?j-=Yw6V1s5euVNJ~Wm;_(NNjx6C2 zAD2AZF_$#_e!}n-WZ|ocf=;y1f{+AE&3x{D^0PqU{ClUuNwUPGBRsD8>N$ShCul=Y zi5Qpkb*zI{!Ae&N(%{u$i4n^8JYl!WsfM#vT*H%uy|HAQaNdG*2HzcN_7#VF?RHHW z91VL$Azcz9gmf=~&yF)`s*Z1Mt=6jm5vtVMViu+;9@{7s0Wm?brRrBjL%12A6V31- z8g_sv{;;}UUE6fd>>U_Ne*DwIPoLe61lc|xjISb@x}Oxziz~^20+-Dir*iR?>v^%WSz6hg^6>b)j*=29%c+&Lz<|G|a$&yhu<3`pEV- zIsT@%g5sl2$lSQC%m$~qfzIR* zAuW2QO!ZiX?#*UM7PKh83CT69X$Z3ZA|$BvRallHmcf#m7A5A+e!cXRKbR30vzU;d zbGA&YHy|!1`NEy^zi$Ic1de2W`T*`shRr@pw)X5cGn4bXcUx%O{%uO?oV^EwT_^_e z`8&{q|Gax2BAuTOQW(LzH>Z0!jV}^?x%gkVbH}3=r`8B|;VG1w%>HsdAWgHD)rW+z zcA&*ocBU4cY$}{c$0_@`DW|XA4KyLTZ8c{Q=L4wxx?B1CYUN3b6(pmCvlXe6T&Y#6 zM$acBI1@k$pqZlno+p+e0HPP^^-OHSf2}{P(t~r^15Ue_A=>9woX4Ho89Ae zt8|hNUC#f_k}a0S0E5nUgHAo7Y$0*SZme)??me5GSbE|Y|8e(jOiMUhgGD|z<9+Oxx>p3-%vzzhB>jA>AJDt)c`IA@U)}^j;=Rb+JTl#ivpWq zR-}z^wPv0MP4HVnhF|_3}FZ-Y9SI@6GZi|9)70 z$iKJBTm1V``4RtqTz<^IpOl~Uv7-$5gLDwq%c%D1i+QShJ;Y1NU>#yubicOyDo zEci9d&udZqh&9-WKE4ZA(JhT~5^KM_)5EzB*3l)kfZYrC^0qK)n!k>-BUS_`hI#bu z2*(#}6ifgMY(u!`(oj+~g zR{pfQevKcUD*br*6frfYwPIKW|M}~n4@4jRw%+g12)>Opsk2E16x&m$OsRy?;_!0I z)k4^V_0_e9m9^E%>Z9t~nl{eK3oQrxkP~dJbR7=HOy{gPr;uUVpLV z1#I-&)|836lAS8G;8SFN7p7Qp^PpR8YC>^|H3V7YK?wvoJd(^uBO)xfPbHZhiE;eq zLH(rma`*6b_gQ1VarzU8*7L^cVZGUmo*$jiyd3YIoHlB&_IFRB<5wrgN6mWGrX?^e zM7EFHHa8&=z%Ewid?G=@bU0V23EGH6IwjbVhOOyD!6Kz5SpLP~tLTMX4bd^Yw%XA? zQQ>~dgm{Q2v|oclU}RD3(2lSP~1e7b?`_ zxXj!7yQ}edxV^G+b8}O@>`$tL(d9}{>PT0<=gu7WI0%YlH{3u(DfyyRiVG(*Ru>c7 zc}eH-Z(2#!&&gqPz5`k?$iCsH+~6=dz{HqD9g+u708{B-6atq?mdUjdWcB2*E=i_~`5g=-2i0@Umn`vRNE4xL;=OC8GVE9n>C3=~ zKls*AO?;|am%J7DsjZ9$E4Wi=l-1cKbi5TIgJTUn(rMcF1bZ5RjxF*V5LHv zX;{kXJjV-4+ywUt0T{5IBr-Fq!1Ly+1WGyLlfm{DGcpOP2g}W1p+Xk2Jr|J1`%Hq2 z;#5$fIRIZkpuc^a1A|WoHVGJwjCq?8$_HwzI(+?iRV2v2I#$jZFCg=nsS;V#OFBXk#5;H3;m1=&LKAX5a z%)RLndGfu}r%P>;NvnS3xFIT6!p_&UL>HoXi#mfFz9h2@yAs);ANhHYlmdG5c0qD|4vh3bu`2nQ*f`Id%lhZo!->SG z_`@pZQkQ^JY_VBtNY$vHF)yR@2&i~20h*e<$H54Yb~t4zQZI7;BGVPjoK41T^JH*t zMRwe%7I@-zN-l@++oR*t#?j%=MA=Ks*k6HKU~YWnB3%VT#G`Zi&n&To{|4#xGB%YOMjYp9wF}taIh54B|6oDXc{m9JH=Dz56>(F zRAh*b<@CL^tWvWxGt>H%{3TQX_S(E(j@rAE+Bpn!bKSv3kpTtxF9vH7M6L)*h*a)o zrgiWq;rz%%2>45oJw`-{S;Ose`yx%fHdHqFYH}Ge2#L+6Dx#lCeatVQT0Y6oUmez3 z^Idi5o4usni%o`E`-%`=w8TTuy9TTwt^{$%>vXs+?_kN~ilQXP;>vO2g9$McWCu0hgh!K+nVkFR>;okp^zzP0NUjChe0D2WbM*Es z2>FXda?(oa!oVZHR}6Oy0!BcJqjTHLtb?w-8(`98q(I%Ya(*e&6zz=;j^ zq>)@K-Vl-HnZ=8v z8n$4BW>LHBXAF2z zbbV{}k3+?-=jXqwhqD7gVj)wKZKVGJlb`0iq$+H*v zHT4HpW7^Rim^PntvTBy-19-@=@yynZQ8F z%!{094a;hGgG|4EfB)@(n2MH6c}FkG2jPN@4U+A2Mkm%QK>)n=X^VIph-hN#86|BJ z6=uD;kKGWamLPe0MP9K3SHVDL zmHf96pOtscru&gynLlc3y-AXwA3rfe&TiA=cAvRpFJzIK&ECc^%K}%4n@Z>v&KgVb z^Xs~Z7W`2f_v-3BS5N!vW?Q%WQ;W*)SHukLgCKa?qY~M^DF68&H%xpUJ)I_GUq(>7 zey@Tq-9=`Zl3D9twif}R)sC^lTl{6jcEM2waHP4uqfP@xBB$PvhPsrdtU{LN(iXj* z0Q8QoM@|owc0VN5qTl+x?i(FeFc(uJ=30LmOiF=eZwy4wzI1^tJ5k6lWYyIqN{r%A zQ7tzLctSP+a@-?pjKD)Ha>s=+HIrC-AH37y-)m)cbEP6H zYw?)?Wl>A0Y+N0gm1A{%1X?~tmn^V381+-q=dKNQca=u-A z8lomsZ*cIkVv~yknAxT65a)bOQD1Lj`gzwPK;N!9>nY7ox1Yjx64ZzDVPyWQ=THI= zpby;+z#`c#;o5kU8Do|Dl7#w8zv^HS@6t(VF<&FW+U#5LSnV3&Q2D)(Doq{Da4y57 zct$nAy<0F1l|m~r}d?SKH4cQlq9rd;WvHx^AvVxp7^fs7o&XH-Auqt$(?u` zXi?eC3jRa60g2){#+)Fu=5Tcx4~CUq@*(MIEuq_oQ&Isow|5iYrj}-4uS*)n=+u29X(?#g~6*A%O^DodjRnECLv**+GH0MOh zhP)ST)U(Mswk_rs6qg)MVC_KG`6QQkdXCgUfr4hDt){|IkEwzPug7RGxxDgqo`o3^ zt>U~DhgF$Pr`i!zVYQjGS5mPa4~DU1uSFTd$QfrJ&wo=x&D8mWC0Frdm3_?}G(P)7 zPI;?4FiUGoI$^9E2(=PMBeLi`e?xUeH?>;7rFle5#L4OPo)dVWsxWn%N##I$42^du zP5JTfgkx|kFNw3VD!`)w?Fx^37 z5Q7>05E0VF>G>nDcpj=Oi9-L9PnC}lwCzsYDKXme$I=YX5ihEaT~ZwS$CwjXAv~Zs z<6Un*&(r~U{p$~`Kg%coll!n#xJ$ftE-{=7e(I*qS7&_lO%?603HS4;jZi5)7a397K54C}_w zsc$?*ICX{Lp;8Rl@{kNaNbKJymY@?;?6b7pOlPkz)tU*nLGCmBf;-95ZrTqX4(dR-!{Id1;yK_ z%d}JJzYp}^$Nza#R{1ZOvr1*@E(Rg;tOtI|=3G)JD()O>%C_W7qz^81e9AU+FJnew zCUcX=*E*r)%Q&1|WWWUEP%x9`^y{VB`{&+)o@R-1IqPC!o^EAofcZl0@7Z?Q zChluy$eYgX48}hvgVroRW&}5I3`yIglQ*{Gntx?u`81V1S z)04*Gi}~ZVd9<=DyhIk}@##}RZ5*J5kU|SFD=nL-w$e_C-3F@#mtZFg`>EU=F$aqR z{P}SwUO8WBKlSx=4`X^p58I3!`rCt#pBH}n_@_UuEc0*q^1ljeSt3z+0iz3eevdM?RS=pG;nZI@51Dg%n?(7` zwL|ClPk-83{yekLND4hz-udj$Y4PJM5pGA3OB~;Av}sfI1~{V+5b+WqvGlB&NVLq! z$KlAt5hLR70&&X*h3WubP^7Xio=2to27E!rnn5?9#irv-P#pWI$u4 zD$I6-yRmb&Sf#!!aA$yC8a)0 z{)yLq=odKl>wPb;bM=3~@p7|v|7{e^1D~J2{`K>`Vwg-mjB}*;&;R`M^83chgUIgI z3T@QQZ@uL`n2%d@$QTI zNd+N8pCuxbBNZm|xRJ1tyc7FHwdZF8uZEpS#{`PQGzLqE~er?WmSLG;N_ zpcn=3JH^(v*T%{}0#J~Z@`?{%vJ(9kG!ibeK3QJKJUd&Yv79ZvjaDm9%9Wp&-$wM4 z?$fo(lb;n$^=#?W*;;hA?!P$9>1wuncl0N}3U549`^yt({`&u1T(ucsYFY5K(jp+9 zdfoH!V9+D3xVl;0D!C)YmgSieFvs8Uo8s)MkQAu`af~=?HUr0Y?YR@oe1qel?Fdkj z*Q5iL5MV#hh^YlzMG-o-B%^DTa@EdME4F50N;?a!1KW}rrXrmbBzs{*R2N?DaP+zki0U!aVeNa``ublSEtw0n2 zMFmZ{MG$1F(ex_ZiNiVrcvMC`vGzgZ%aOT4*LPJUq=z)1|yq+4H7dP3Zu;D*y4^d zK%!&>P@W(foc|})VyckXc2|V}G@HC$P<9#!CJ;(>^#wJFjrO!)-JdwBBj^l#fh|}W z)o2q~n9fX{G%e`-y!5jzh)p4#4(KCoxc7n26=U{z$dIhQ_1-iuPWoY!x&W>{L1^xq zo+SP{6wF=G#NoYF8p7a{a(&_ZY81UO@#cym#Nl;vHgH|=VHp@gQy*q{YT1>qrxVn`u8A$Pk_;BLza7cC5(3t;aux~IH? zu8O`#@s3GfMwI}KNZbX-A}Alf+FIAeHFuvaBrZ`+=`WAkNw ze?M~;My9~R{%Nh2{W7}f#h2+efBAfW_eIm+KJHz-y%#NB_9uTOhKH`k7X8`kb*wjp zQb}8WmZTW%CFk9^Utu=9vQ-EU+55!2|88+%_tojq!R`-r-=WA?X@9cF(Ow<6J~DOG zjt-yST}R=>gJz{Q`;Pvo=$SNltlw7)o+v>}0~-nJ67mpW(-kcU2v~zK%X?2$Td2xG z59ifznT%1M-k+sb=?&Hg(b2Piuh&j1^DI0tJCd}Rvf&`0>TH&`irRTeZJrl-xD zPHaeZFS#jk8N$~7MBjWio$!EN=)b%d*7E&3Oopvepk{Cs~>oqmcImu+eHmnbdq9`r+U7O$GoT^Icr?cwYe^h^7Uid@<`DC@P zS?hPmY~C*y%O7YD51U7xBM5SH4CLVpmObMVfs?6Ae_?DhMU8um7LIpoKkUA!6SLl) zSi8XtU_JNxb4Kn9J0O`=0tKZM2#Cv#U>W6!-M8O7_F!pcIt*X;!7T3xv3$DEg z*Gc2WO6Ms*<@(LD^4UVCn5T+EINOb~^HWohS}16YziQPq^oe&C)HL)rg2p@@jnTCh zgU&&qlFn@NOQ?V-Z`teXj3UEgj*i-eW`@c{*^(;zW)Dnexvhxo+?ox9OR&VYoLyvz z`2fGOEo@J*;KwBp=0T@-g>CR5$K*IFU=ss>TWRf9 z{vKC;g(YI;XU`*f8mrDEXTs#69@p79X@QY?8Hya<-G(?7Rbx_&YN)NOP(O^i)g6~o z8}SFPJ3uTkIG*I&CAs-J9=#V1Vdlu9s8+Msd)}zv4*TMyeoRNq&1BIhR*}cjuYdpN zHIrA6Hw1RpPSNZ!Z~XY47S-f~oFdG$cb_E&KpIt~)G^gT2~hO^e!*{Hy?4eb{k(oISiX-*W8$h}0|R`5hBFpm;JAQi-`E{7Da6Xi&T z={5@Lc1*CH-ZSpc;cNf{mlmx40g-2kv2TJ-C-&*H4;_qr>1GV`R<5?U|R@t88vb z9Jw*_@I~K!*V;dA)sLPRtbo3a3qb6~-BbppDf6s5isczi_sW`XEb*&xrV|?uPi-|0 z8>i4VczPqcB9oDs=Bi(XhoC=7jKZqT=|rovh-|Krm6Xb+I_6iVz{^%I5XF}VWi((pk3u34SkQ@>W~)zm2O zIp;3!+w)UCXfzLYPirp?KPa@*aKc{>-l6doBMFZ((%HbXR0{KMsbX$ZS*ro`tak!O z$io%<*HLH~Wa zbDi0~GrvA-$@ygdGJoiA`Nco+gZ}$8xvO1g9-7~{<>2#=iyv_}C4smIxXf#rV5H*! zu-N8GkQb_75c8Ht$-Xk`Ez@J7%6CD#<~1IW@~;7k@#y*B1H51i>5{<7fy zE_|McVlgkGHrx9t|C0F~o4%d5GZh-m;F71~Fv`MANhan?IhZW-Xnm#!Ca0AVod$2sqsqzxGrSP)TmM_hj7 zcx@MKHn-^fHM$EzWDYvVmmR+Tz=BcZZ)R=hpFf}by$1?T$Ph=xyJzx`f>;W$U;axw ztX^jGJ2nk{_fPJaUFUl*^7j9%0gU5I57prhrH61XoI?)pF^IXKPFb@=@sGMYeSn?& zAI|`a=byiF529U%l{Zj4KhLZeAoXp}fbh5j#3Ooo$GpvE?&i^D;a@lU% z3aI$6-Ci$Vfy;l3K5-@8&d$Rpj~+iZ_RjY0M6sG8i*NOYpv5+eh&9>Dp7|8?6|C?LLVEgkP-S&w^o^8z!`i4)#w==ve!m#+f z;?@TuCxSlDlc~tzJNiiWo%na-B){*{iij-^Zp%dnfVvltXlF#}gvMC#Ay>zpR(dr` zK8|%j%DO9wxVQS?WG2&U) zCg+PN76|KCmsX^tZF_Kk#?y`QOro{#|GZxCC6x?%$uwYWO|mN)s2Sf?E#@hxICW6p zLg4ZS?Mg_%4!5mec$r#fxmVlK&&=E^VU2}6b>5_}CI>6Iv6IOCF1%Uv`#v{b?rk=8 z5zK0Vue4*ym*%Uql6ZvV7@ls+Wcb!O1Ld)P%7q7ch86tcH`d8D(BTxyPkCuVkjl{c3=gf1eL@F9bN(05zvJq zoC%M!uAPfv0eegHk@P#p7HPp^;mJ}lUXp6)GfBfa*Bb&1!S%8mK93`5v$}w{z^((A zm#lP(=Va21bJjAXDigmz1v8KomE9_CN+LV+mn;n+Ts|WMqE~9e(b1#$3R4sU0EgC&1brv!V85b z`wB@DZi$9Y(kq6m?tqP@ix~Mju5s}uBZI}3*Ugr-DXJULKWG#A{i`k;vuZK=J_=od zyea6>K|QC+5CY^6{dr@b9o}3(P^sFBOMaY;xLB)eHQuipAg}CfeBoSBHFIXe^w{#8 za_?M-xAUL>9QcAJ(dIAmMG)Z-&6(G!$(i(#A?KerM+U1Twf;6TK^y|)k65EGB`2Z= z+t4*dR3RC$G$g*)Nak=l5Sl;tI9-O%| zdPaxzEV74mIa;zkC&p26Ly5Ef#3-gI*h%;vkLX>n9OtxD-~En5Z(Da!fL}CIUhv?5?Q8}8 z4Fe&T2#kR081mPp65Sj$gp%P}&5J?GshK?p`FYa;dANeGFM71H z@LSlZe*c+jOs}-g+?Dups)3vEzx{N~J`$G7NW9dixpaWl+J0Pt$h9m=JD>!_ElIM& zsIG$Vm}GZ9b$spU;9&P~uUQoq9ujJ+cCd$8V4T~sFtp4jPlhfQ3gvBKNopN;DoB!@ zh6pSklW#=>dgt51biZeMGC-Tx>RzM_obr^hN=pA%$%f+qH5Q7ZwJcCdIyB%a%9ld| zI4dsDud`xMP#XwP#Gv_74{KK96&HS6uWWzL15UB;`>2;LsvWQ#@(Fvi3>6-D8XKC; zE?ZO~uo*6hL%}4{aSxMib;lxNT%CICF1gFOC&fGM=3+FMU&$qhv3UZ}6nL z;yugywS%MW(Nd1aS5Jl;KhN#C6$!yb~A5M`lVj-}hdhQqhwa7wJFyg_VZbF5jz z4TlLxgBcANwMK5^I^;R;iGEsUU`{can;lhnW{Lbx3532luL6(I&*})VKKf`Om!KD{ ziqy=xoe`ef?35EN;_2m>lGLC9C1#%Cfh=pn1ew0vQE4L0oBrIUv}e^qZa;MPm5a8c z+csP6uglv-?|CtQc7q}^&uhVK=JjZY*5s~P)aGcS7_b0)vOlo9@Xi+0u#vYQ-TnpL zHn5$>Bb?espVNHBmzSLF-B%8CgfT8(R`DRHBmO|w1Jig}4f+a@A~$ggC4c*hBt5zZ zy0OG9v7xzWuLzb=OeQQ<0|TS%dN>w2Qc=V$K!U<9fh{o)Ax~;`ATwxHoZ8h5T?0y` zf~pvnME@fhaxM7D=sGH0w%ZZoDrF{SCNT>1&vq{GPU^{g2nsPlH-YN8Rui>n$Dq72 z2RLGInuS`8ueWdfyhl>ny@ysum*#5gxU4`_BKbIsfjG1C&cS@Kt7xtEF5CXR!dm2A z;EeY--&FOi7x&+%W_8SRfJtD@J!`ReXAd2Qy2&CbV5+t%6Rl3`^s27OjL zTb4pnQ5ri1WA&3HW)$T`bUZ5JYACwDcr<3D?%T|xGrtZUyen(w-Bp;G!6;kS|7OXV zqwKV)+LQBea$Ewow=qfy^VyDZ?D$B4w$U~#cnQdF61Ay`{zjt&uO%w5*Q+}F7b_Qj z<=qu-R@rHOeBa$6n!he&LezYPp9}lDBd||34a|1=(Qu`eJ9|)C__c(9>N`S0rPvU_ zjJB`uG@Foj0Kb`a{;Y{>Frn$HNaP_Kay4TB2NiNuu3(&9C*#;c4yRR9!+p;2H})8R zbDvZE&6giyrz$GaA?EyU-~9d)^UXi)z_|H8z2heE2oKT!Bz14HE>TbxHMW21YOA`^ zBH-%ydPIzdmV#@aJgtugasV{p?kPJEYdvNSRIYw51f z>jYi~>AN5fx+4LVnnrno926W8%)&&@^^14C8`wgEO&C7pn;@hyb9;Rgq=KCEO>X$^ zOxB@j-w9%(#mEWS8`muJbtUd)saSaM4TrQn_{L=}V}QA$1d`ebo6#KRciM+YL$fUS zfgc zf?RP*ucemmSg3djm{$YAvg(kq$M@OnZd#_qeoJ2%M(<0J8MF@6a8_DaKPzQ%5WE65 z`Jgdqe+l}6)I;BCQya6I(jrrhEqHGHzM}<)JTCm^PsZod=)3P=i+d0)_|KzC{>l|H z#;k?olcN_Wy9W`&)*7Apl8e`T0Q0g$DDNFbhexNxaVn}@S2Tp*f}s{c-U{&&^wEEB z%p7XCsbW_iVy`JrdfcdK@2UmtJ^6cQ!7WAh4Y)qJw+i&JHT|MYY@y&H8W#>;L)j5d z9rPdm6XPEsSgK$8&!{CBa$=WmY8LkBiZ-#AFYEiq^^@rNtHT<=PMgt#uW7}@z9Djf zSjJJ(!aB5Wh|;yjgVxQ)I?#m*Q^|sCh95q|eCDMV4kmR-ugrML7RRzK_q!i)s@Ydb ze7Mqxl`~~kb1+h53Vgz>E<;PyyY;Q&0FqJ9kgK z3ZoMF55|@?O%dchR&B|p0EjJ~WbGw?y;Qizx*F4TAf(;9TS7VmiEhoOT@RvHaF-cR z;I-DfExY;l4TWQ)Ai`PvH5mD8ga|v!pCVz&nFcCc9(q4jNcnf5fZ7ehymMvc;8A zucT!`(2}k+F$7^2oV>wWMmJEZS?l5%z$YEZ+Gi`zm~!a?f(1A!lT`@84qmVxD^OSNI&j= zNLuhjNqaFIiEfMUvX|)nyX9=T%p3tesIz^K_Y3*d7Ax=t)Rq_Q-h@`QOuwJdIx@>7 z_xBN6pUk3nOlYm45M=C%QwdsaG9+}97Mm+dCC(qm#}gbqQq85Zq*+iTlz=mRW@_E- zZ>)bAq0X+E)s%wfX-RgI6aLoPF_!qsV9gKu35u4!XEo1LHf#($lLwb92-)+hRQbl! z-zvr|6N_r$9vdu|>_3PmbEq|Q-%=@0ZK{9(_8LrcZ;l!Bv@`eKAbx8q2f((qW!!%g61(w6?cwo=H3mit%Y26xHbf0t`~A~a?WY$)&kQ<@ z^_+wUC(iET+ERv2GfPnuBOga0r65zQ52nj3>0-A(WJ7<>8*n4$P!%Q0RE6V` z8ITRWtKGpQ6-HhtHtKRTyQGsvmGXGy=NHFSPVH%_!= zu!G9EjTAsl5QEGG)zl0Zj35qPR=VNcn8c=xSp~;Vy9&3G?G;;1{R>VSXsV8g-Db|y zK@V;XJaH^3Y^*O?!NqK0RrI;t%ZF#$iU5+z3^S%lklIvA3XV_i1rrcR*OF)Uxd^}T zh+58K5qIdyLN|LS`%1I9nu%C*?iytpFC(yxEEB+M7+e=&2OJ-03F7QxUc`jgZPN-f zViLc=k`b}~@HgOyZ(4Tf*vZj~$^sWM9!iUZ~V;P|~ z(ycBou3|%;-)d+|p4qnD4bUT0W1nOYBIhN@7oV?-8cB|jj`&|srBE(LoSV0p zQ#lX3i<~8x2n+m>bo^Wu%y%0n9rX`<5IxtB2Tu~unJrPBI4)(@ewf}XOj%?;pPw8Z zv_KG=_2cOD$o^@cn}?abfLiz%OmTHo5Z5i z8x&bHpnurk@tpJ}s<&vR)X$9tduDrOzArnw?oq%+T%RwXm>}r_7mk;%1yix-9!+z6wk~ zaKsKz>2yTTc56T2_euSDKRP;T;Oae)2>Enow^+?HvdL%oU7B*dZfv!-1=Xa>r8u*+ zb|deozteFfH`Lnt(>${9oRkqr7Q>`yf=FJc`#gv2Ati_ui;@6sF zlu8A($lW;L8Jel3B}<8>s<}g`}t@ zW5)J=_V--t*42`*oy_jOM8PDv>O)>;DS;m7==-*bzdtiOt%`VTyrxi9BqCbVY8~dMTtnn@kOP3wzgy^tRYd7 zdTQ-0A=<3Cr2pXy==b82E+Hzv*wfQ$H`TIr!ydCq4NBKsJs0V#9v}rAXDr$*aZKr?bV;-^de85>Rw~_o>OK)dr#RVY2LMzu^X}_n&c9-8d4j{2JllU=f z9CYxXM$XN7T||v+MKZqL_VCoczX9dvXK(q>!fxVZ4 zy%gRnYq9rB2Kb5Z6*YB-G*XQ3lAE%9E$@gPkaNZunqzc5u9 zvy0mXY3!ExoZ>Oqjcm!EaCZNOv;vzb>x%Jf*o~-?+$IPxrNtpI<6Djfm+9Z;i2&*Q z95MTbl0Uk^)f=M3=FNm5nV2|@B>U2-VNgT-);PN<{Ys9WwG@DHGogaE5pqD}31!Z9 zijjje_7ITpz2UqU9tMLtg`pXax~Hr#=dsG!(qN{vHk}N|@U@zaM=KsX!NcPGddO%x zkPkFrEec;5Xf|%1L<|56l{%ej*!W(xyw_{k3BoD`&cg{8F77*t9}auT^t#Z~;-)JN zbv1c&3Zx^Zf%C1qAE|uv=u`3Y<@a%X<0O&&P_CJaTe_*@I$D}y--}Jev^1WMduNHl zIj*IlSLIq7e|i4rC}>v9*4-2|!4xj%!cMa5$?MEGfl|7{m0qAceV7k9p~*9v0s&}1 z8yVr|ihl(X@duWhQ`ezu4vTMe9yI8~jR&2^19e0n53F}2r3}oZ4o22tJPX1dMrgw> z{9jz!q)IapEnOeeI5VtfbTq4P$!XWLqxlM)XaAb6sVds_kw;OIy1& z`lw9iQq$d1MHvrciK5Ium7iWm7U{qzK1FE4T{#Tr}w&I(sjw=!k_ zG%DA-vnh8~x&B7XzBE8AKd#bpUcVLL^`(U($KU!N#Or^^^|bm-mqir)|L0&A6xD(U zIvVu`*+p+kPF`^s%^!#3!Q>`S9v&aVzJbyW10MaC47!2|9&X2d)~#YvWGL8sc=%oK zDZWy_%ImMH!57PqmMOy#yo&$BQ_H^UKR>S|FSgKG-9Fv^xx4wGv(;^G)wc%?zj$}^ z@TaFwPR>rd?~aeYJ=s6`TesQW#73k7bQsZqOr>AsSG9H1k%mG9Wl`*<2g8Z^6bw{T zI=jRmtKy4N_%Otqm^%<>tXkDzZlW0&!fk;i`DnTTQ5=tv&-(a!ug-aFu;nBj-K0Q0 zUg656PW-hfYk_7-E#8dzVv5S}oYHXKW_j?C6yN+Y7$;{r93zzkuexpk

zd6@MuVTWXE7I-BIb@Kqlv{8#IhB!<~6H#g;NT;Sg*XYT61Q!X=R>Iaa$XM>gR4W*C z1dZ%r+to_g>x#{zg{5E};9Cl!60f1(ckA*y?&p5LpH1haJ(o3XI{-U~1ZBobxJ&H` z!5i5-M36SniCZw0ijXpGc?`x)Wwm;vwr@sS+@Claf) zVTqD=N&7;7K0P{YmPAA9Y9fx4!c`R;%;7qN`yJYX=|?wh_zgDEMK*(Pxqso7geOe{ z4J4nT{j>ZVm|Ib{CRO(~?|2fg^pm1THNDB9eFo=+093L!9H(|Up|ECF-X}G8W7TM9 zQvMU?Ga7=$FjazuYfcy&9kL{8|ex4YohUoIGLH?=_a z2wc3l?BEE0?6e0gKwLtWYG04zal=hgRMFCEhY(bwa z+ssA#K&`GaIM)Q9$!K_Ux8t^JrMP$gl-e295a?vXTou*wD+2!Z+;IzJl5B(qVr=ZE zoi*g3<~!^%t-MRadVdIf*`!e`aRIj1{n!C*GI=`$>d8s{MaDYkQg|z9pbntBxx>xf z6+>>9M&Fkuc}ICgvR;8;0?Z^_X#-#mvzf+hCXAY&N$RZ)_1h+#IUDQQp74gAsDa&3 zGMXKFH<~z$Du`Sr4Z!pM!FQ*_i|c&y!eDW3b<#nKD9`ZoTz=;KGrx99^}qOnp7#6n zV>sl$MwrTqew$AD=bJZ9t>+ity?B1_KVJNq-r?53pMOtZ^CvGS^aDGIKl3--#6o^d zy`A!gaAeJz*?f<7WvEERiQ8R{_|%LhnigSle_}uKAhC_(8;vOmcVBTU3maiWz;s*s zTaqRGhI}vF-L}^OXs(B2>hXVcVbIO?Ai@S(4p3MLAgQac?3i6r4E<AF@rcR-+0qCL4eHu&F z=I>Sxg!{=*9gK$iX-S4QtI`GfBmhUY_B(--Z9ISR-y1(~y?y`SPhbDJ*1-R(B){8i zzI$1J{-WVF!FY$9Svsl75#T#tH=v0e6#P}exFRBinEw_*r?xU52KBPGjae}mtmXXg z4B}ZzMc+V6(G(Xf`_Ng$GA7}LG+C|sWZh>eiQ_MvQ_4jbyKy4oVofReLxvzkDFjoa zQD!v%KO;>I<5wRC)H+I zI;s&WA_*b61tQ}^O(0}KvgWr_5n*k1)!rmm+F}!#nmneO#&p7IOF5aT(oS>K1W`Of z0^J#f-r|I6EgO}K7#Re~`xz&Uo#ISO2GHwlel;1?0!RmibnG+Z=eWlDW{N9nfB;;mAJ{lf+dd zF^%Q~x=vqZ!UK+95yzCio(wUg3nIfZ5-hpB;SCx)vbN*?ye{A}7!{yWM`I7J8;>K8 z(Zd>XQ0F;d`NwofeZkw?R1tSkKHWfkD)|T%P4`16dN}#gXC&%NJMHC6GhI{2Vc8zt z>ekj)a(Hs`o(SU7aIR54RiNuL|73Y*s?qL?<{s5M^9hI; zSF8)TNT6yJBdSwLl;GS4w2knF%oiYoW`h=nU&Ea^?hA4OUME*6Y7Wq0vPwISQksuO z*@#JLo@~woqVcu6ca{PNhdo>VX}`_+ES&;Fvb@CykyOA9O6Rxp`)V~B_UVpfd5oN= z^(_k@UBdHuy5C>?mg1>+t4^|J<)SUvup}Zt-(Gr&hel6=xvV-LgiQ@3RB}VoMuaPL zcqx`bPmutdlJSRz2puJR={z6wu7-nbvdDY+6=pWyiwGv(mGzl-cPsr7Hfzu4+>*M^ zT|!lmGts?CS55^J2O!)aPnlljtJ|v;vPQFE;T15Iln~5eGHc-|h{JSFiw*+esxgU< zT{lj-&dqqaMvNJvhPOL$ZY5nZiL;QXr?iQcC#`fHRdT~g)or^*a>E)2CmdqzI>FS8 z6%}EYP=6I`bgI|8W7fP_&KXNgP)MZGZq?}J{&n;G54?E{srgToC&+Y9jIg0?%+g7~ z)a4{$$7DUVuI(V2n%>{{DQchkK++;50MO#c-C--SzJTBUk$F8fVPdLd#+!Ovl;q*#cKMbS|LjBp>3p z+XKRvL2adXA8|R5Y1g}i;=-?6HhwvLD3PzLNzK1A?ta%8<|!OkO!itr=A%@8BRQ4T zvP45fM7i}xm<{qa84Q&vh-{1KN9(~psI7UiB=%zYAU5n@x5>Y5lYjbc@=-U%T`!7H zdQYsAkfl6xjkRgjLM^F0qF?PaJ{ylFnjImobU}bWEK`_N<>!k^hl-<_G^fwvvcW`z zlB5~>d+wUE1x}wG92}mWqHhq*2Wf6)GN>O)!?7<|z~}{w?n3pqJ6|9GEah6Uuc=An zN$rmmcdv_4C%yQma{)56OWu>~m`f>H20)3iW}# z`xnR%5EVxgx>GkyW@i%NbgG_53ASyXSR+S&l%-?a7p9=yYV8?*ZC#ta6NxbI|sdUmGQsyAigwhI-tKH`Ob}H8L#`gJeygj>aG|_!kd&%(0;v|%80=>IJAAv^u zqR|vJ8)GY1;g6F?(8Hrx@@vuYx0K9GX4+?<=cAEP^tyemQeRQ;h`Fa|JOd8_lUP3f z);!Nf7x+mjCxOk-p;~Muc{4YwAF`5i5DuO^dJ3OzOU`O6ar)%h$-yDbYxO|=?p#+2 zcG@Y-im|TqeM#FtB_EAE2+hV^&A1XkVq{5naZJD*J$ZKa^x0XPW&^b^V#^m!$jhMP z6veuZyOOF$%@rACtMCk8FGlm>bR>(9hs<@O5-$N58SW6ncB)X1>sBoo4Z|9Kz9?Hu zj12al^jEp=MrYDcuYe)Jc~XzX-%D~^RgJOKX=vgy?`t>nW54y?@&5O=8Jv=Y9`V5) z-AbIbnMv3l{_f$!qKqdWD}u5I#=udxH{k2zK{^{Wyv$&RTyR*t-G;QIBAbBDiOCOt ze#`1aMF3Agu)hL`WdbMPZ`-hln)%{9pAYAYxmG>U-A)!E_R4^n1RhJ#)~kW}p3AhL z&}h<#9#+Z9{(*#7YHMow zi;J5`D06NTqj08WxP!;}h={iOB@Sl+Os@;Iix>)c8?Yy_ej2LGI3&aPK2&vj(3)tm z86s1|dmT7)=Sa!o4+QL=M`oSC^5}lMfF;PUK5)Bn<>dMC(YFtePI#XkNbmx6S>}MP z2~%t4cCdN>FEr zpOin+bmNc_3k=;0My= z!7WU+Wpz+`f*Mp2wHa-Nz_1nZN=p-cF1J4ri|HiKaZ6y`bJPaSl5dY5)22;~-;jZM z!m9z-#uB|vV!Uqid3K#M5>PdX{Ikod*@8Lquq0g3;JmpEW`=$U*Th#8Z)dzDVdv95 zDIx}m^6IDu_cm3*lVO_TmZX|CM*DIof6{$7Km}C}1G+w+jOZ|p<~^u2nxt^I_2fA= zmc2nGRa;jA!)8$Ptu<+bxQxHLJ>-+oYnAl|BPhQ4Wz%U->!1GZkq80Bf5M7$4d#qV zc9yCPevIR?jReiNXK<6eNlp&GKm6%KK0$cujIz!xw2$RZH2?A}o!P4rcZuO2EU#g< z1vW7v0CDG^JAE^a2X$@(%ZlJntc}e8#aWCprx}$Rv@DZHpclGLMAEuQfq*MzMAZmq zr^eIlz9Fx6u3-ur0!aZ=rYtpJsgl%!eGiw!SmdNZ)*q!DfirhHX|$mvhw)k?SP8mO>2Or$z!%XX}BAZPWt&O3n)022#9~_7Ku5k35?rs~cMBgWFzye=r)+MZn8R znM%oT7IzXx2(ofyoIE+*zMpK4VPqE3M!S>6;Ow2z?yZTkMoP0Pu#Sv%(n zRfnhl@p^(S-(XtM2#FA_|2F`f+m8#BmeN`e zdt34~QK8P9gJk&K+iJi=N|208#|fQMdmuu7QC&IAl^V6Gbo>Jk?qrj+IsBof=1etL zLrV;9MCKaMT2*iD794R3O{3I}j^c|UDTmp(?`EWj0mM6>vIy3JqIMK!MvB9zGMnB= zXJQPTrDLuO&A>s^*mEg{uasI zP>eG5*DzLChMVsHbnJ`J|Ch`bWj2Z=W}~Qn3LC{%(>F@FK^MdE>vS}Pvpvluf{4^R z4P!lPcrE&oQ0O;Zb=*_W;3zcgo@lr68x7X-Pi7u-lBDP8>BzK(O?QMiu#r3_q*GM? zWR2HIR)J2DRW3EspX@NCh%MyQZp4O%24{2xKnewa7z?HGa#3sPuCY(z>jEsOu|v8^ zB0YOAeQ!KL%cwq{5Q$fdqcMaMo2{y2JrJVXvnPa%dX7iB+XK(f{Jn+?w1GVAz{u{m z>iPE1d>*%f1)A+9+tbEx+GE-VtNU%UGd6bAe7*hikE9yUP;i4SyxrRV`Go%1ep{{l zP^}Dtkk0xWt+{kFZJQ6!#v5Q9I$n33tw&ED9-6mi<~mzKw7Q$me@Ih`(eg` z45DD|?oi{q+YJTaX3O}WtLP)(VP)v_6|ge&#S*Lxt0nYqe5;Hl!Y7vQ>w$t{1aVi0 zRD0KOE7A0r5UU^HV|dy`r$I{oWO#j@4Th-z`D}uS8g+>scAUS1GB$dCBRL@K z8_`5ty*I{Xjc$Faj!FaI_B!(65zx}}-eR1m7a2J(oAHKGn>u1-0PKL776*;js8c6d zI#5f6d!fLm2PDAmQD`(i>QQF*J@uDiGn&o;wsrbyIOQ=J2Bt(M1+9C&*8C~sT0;IA z=u&3AQ^JtbP67JEcCml}Vge#{D`1P*CE~;f$|n2DtVRG)fQPZ-1}>U)sKNikHB%`K zZFEM9yH!1Q=x1T*uA?6+B5T{mO})bYjrPL%%xSRD(2|&CAiKarN|grjgxCl(g>L_N z5@6^!d?%ci!l`l1$wh0ar4V00X+>)IuoCr8t*JF|MHd zgii%xwBsnu(I|S3y0vb-?iKCU%zn_o75DWX)_@OnYrX^Rva-98Z}{$AHePyzvyd9m zABg)XR}-y7^W|)%BeFR62P$m<1IY%gl#JcFsfNZuN8Gd2O-}B@-gSC8?C;g-hY8#y z8a(vO$yRVC8tiwkqgWaFo_8z7K$!fSqrF8K2P4KofCJD>%nsXXvePr7Uu3y4PY%W7 z%iaq1N-(w@q$PYS%%!V6?y9{R0%8)7Y6eR|dpH}EW@L2dwv-8|a8iXm;<||*$oG*3 z6+2+1z|u~Hy>-ujq^D(73^8~(y3_D^X4Wb?>xg))d=GYFY zsP`X#Pyczg|NUWde9+rJKE@vhXMcN2e;+(KKHfj0Umw9Rq134nQM8vjR$PF$gvwOs zFMI(M?|ruhLL>a*t-t*zMPaSnnh(?_C4cjEujIRePk~#^3hyt5HCKZ2E*{J=OiEXv zN_|n;){v*X%$k!;;7K#}6u#w08xwQ=?4HGf+oFaC3?1Y&|633TJ_$)oo(%&0>pYw<7(Z|5-q!S3ezJCbS} zGNRiTkF&oyWin7Ollj0hJSAn{@Z?%x`Z$Z2C|$(&Lui`%#aS3Vh2o@$HWs<2$Oh-Pr5Z&#FAK>Z7r_D~qnO6& zHPk7m;WtJgNQ1?Ukru>(3{@@@^p`@f2Zl10rj09`nf7(~Z~79-f)S5~hF_@>WlL*L zBZ+pGNy2b4E)8F$KEYwUYmb~Ncj%8y-}2soxHLeY`yTH@3cu~)ikiOhi#>4*Vdk08 zkGo51cPZM??DDo<_d1qoh~+(58tu!<86`|%1S&O4XOKcQ+0BpX*f5_n2t5)$sFYjJ z=3S@3((hg*+u6LoJsNcKNe2=4BI~r`%lR>_TLxV}5 zm_FASQUK5b>QnQyAe1-`@tO0<2#VzQJJ0{{$AABi7w^p9JJ0X6|KkNgy>bsiD_$#6 zb10qa!RAi0mGoz$41QsU9~|K3zoX@T43bLCHZ{di`%X>aTDR`@m0076-(*2!@ab;= zS*v(_ByAkw7M93XQld<>Qgd5Dw$c~N4M{MO;xmDO*;5H8$**V%4NxzO?$#S+a$!;{ z&_{ZxjY&2$vY!fDD4TiZuQE z$Iqa@c+oU+V~q@?T-ne93J*8g7T4HnCc6(FB=F-R1x6ZvHQT|{;l!|hhd!`x0a!>n z?*}2!MD5jiZG0K)DC$yyqFhMFK(M|Eyvzx`7U=NU8Gm|a4NItFAr zXiDdunQmV+NwTTi`Q|Rb*-TU|Les$?^c24BO9awK@MB6M;1sh(5E@^ns0M$=ZAERo zVFJDW(S;A`EkQ|)THqpSYmg$^P4O7`k{Z@`L^OT(6ZD%P4CuWtqUcT|UtxO49>QUn~ zQ!4{{Iz`$=jJ?U6m5);3kxVFr(@HdHRigp&L_>#Xub;9E5w3~VcXRQ+6-117oP9db zkKxV{l5dP<^tZPLSd1$5{Z<0LXBmz)e^a~=g0{=Bs+~{8;jSI)%G@1r3$d5` zv00i?;5#{FqUwQT`*oKnfkd;;U~zqY%LeECfy3r00C{}_cKzi%*%42eh=&k%-Z2rF z-gzPjU&b;OdLaWJwEY5&+t2sg|CP4?@nV;sG>e$|t_zoR7PV5oxxB*I{8n5m=`A^^ zXy6>uBX!8It`ZD<@w$_rEYJiFU;P|)lor0Ul>_JWq(eu4D9 z+^J`Us?m-u@#^EW21|U>3Z8lvPuAz;{dM=vE+%`3hzuB!Y%;@K;p|MOqan+Rs05U$ z(s{xI-Q#LKvf`<+)GYlwYpBaVmpSOxKmWY;vZ|IJ3>ZvZ4GC>I$~=>x{IZzm82*Nl zkkEtd&6GUnxi(@8(ye~J-4}?s83q02`?NMhiLd8zmR|o<`=3=|kLG4kpDO-7T+tLhSvsW~T zOtMljm>@KpPcYknpp|fjz;Tk@VmznyOJ$DLSsT_|nRQu~rH+2=s^hG3_DY5bp~<=Q zpok64GIkzUW;8sy+Z|UdM0Rl~7;!~RDxP=8P0e5h7C$Fz+9+LAu8=gk4QUsC zG2la}Wq)lw^3Su2iQTxg!gI0elEZao)o;1#-wJ-x4#VhOPs%t};)!@G30~0&^Q4aFz;%hc$95g#xVsQB*^gbB<=cjl z-8S7e%Y~?p9CXp3p{U}gF29&7$xVe)S(*t&Q=n8VkENfL%E%1?o$91b?S%QRKH#fL zFDv^5)2ys$y7z%i>)+n4(At5%iJqd9Nx|#fT^TJET>x+1zsNE7d|D+rdI&xa z_J-~Y4%?LAe@y%VTz}rtN)$yl8Yk_X67$Y-1i)tuRyG)p#tngeg2lYNn#;Wft!NX@ zCPds`NzV3JlAN+>i_H-54TD>NCrC1gEp3N$@1!I6scK+^nwVYV>{1t{*KFD! zztSU?m=uxblF`=;Z0hgqikgI+)!6J0tVD-N@sj%S@8SQOHSO#;bC$K#`DHpm{?)U=@C?AF*(+|EGT#`d8Fi4cn@dQhOKhfjwiry> zCW4>PhivrMbTNY#X$OUA14T|*BK%jdBmAEF{+3AIumCpeYyJ4v3y4*CPH-5H(pw9s zP!!IPg_%q`lKG91ajhg`O@&dJjl(~j;?ckloyg5$C+onfO>diyz-90vq2za%MvkB; zJS~s``)k=SA7(@u4ck$CR0`&XAk+mPvCwE{O-ltnlEp=IYsZ(ew0%w#Dm&|8HdyqF z<}i22Fsbc)e(T3po4m%_qSc95=Xp+9s3oY^yl9R>&dFYA%-y(W zSlCfq>%vl#^MPr#;VWUngBMhV)kQsXmQ!eQ#b4L?f1VKpE|8LHzSm*ep z<#5&K==0dpeDSPE|jJM$^wmSvAGn+k8LR5z$%z)^mrK!Uu9mvjwCC?i(cL7 z#f1)AkYyAT;}jTHIHh|9)hH5N=!kG}LD*jqW>ccU$NCL-8r68bBz?6p4{OJ;5n)M& zmRU51`vW7H0*9e3%S~@FJ8j2(r+_0f6RU!b@Sl{}TN!gC?6MI+*Pm_w6Y&Xm=T*mT z>j|ZHrhR!Bm^^ak1SmI&zmhd^kL5dGA6bmU(sqP@6O}6*39ADqU5U7ZSWi_DI-L+* zw2@sRE;=Go^v-V$q`d$IE!T!<5Q1(XUpEiejyz~^H!py4jfVd~UxteBy&lYgO}HLY zCKIFTAh8(jk?`i?uIQgkPQDiiMB${8SH8FC@PtpKsHAMj0~9S}a=dK348CgJldXXE zndwZ~>2TsjC|>+ZqM{3~#+*FXgaZo(El;xX6VTDHWjnIFmTxXbDwBxwLJmyCo>RL? zAcK}FS7W&qD%Sq2Bk(7tJRG7Dl>+K6nXF-5J2eZ$y5-+bQCWEXT>H)wy^h8=%;cM4;^8gHhYl_vNm%!))1)NEeNdbF|| z-l+&3=2sK&9AEQf*X^5x!l|SfRlzA5z#Wut)MO#;M;L-q@w{TpbPe6#ZK_o(-TT)| zcua-=_IvM~NdE1;uO{``UeRv|5RPKA41n0pM#F5TY6t9`*+Io^?&wqz*kl`lP3oU3 zq(OJbs#TTg5;#I)s({@>{B_PyyuHY0q%~1lmQVvVR)n!`u>rJ)r{mk3^j6shml19` zOhnk?R!jMcrq$x%n09@MOIWR4m*LtlT+HN^t0R+=Qp)E#iQPBsl9cyaUBWha5?+Dh zjdKpZ+RicvOGSsSYBoV`peg7^#il|cpGdZyfX6Q$hIp*ClUCg|URzy+6AKp?2_*aQ z8Xg#@K)e=H29hM;G|F^zol%-|&1*aw`06G)md^KsOruJ4oyKbqZ?u^0xXfY!4PD(y!$bmKwzrIYP7xSVU7fi-Q zk2lA_bDdqEv#k?%w+AuC{_{a&jhO3OU;z)4ud=3&+(!mvw?jqm!Z=@e=L@| zBZW_dQP>T3jrY=1*A=s%M;HWVL_u4P&`qi&cHfEY) zG8bjbuO@^Pki9Kla=Ig^@C! z_lPBvCb*w_k)1dg(WKPv{MY~qP2>f&v(d$psO-m&0$Oo7nw*0y##09an_6OTdsBbw zO%Kd}zv$E`Oc?7B#}}k-8VIN}tulWqve*J-&SP35z}IxlA1L4b=B1ax%kkmw^x5la znD^1ylr?;c1?}brlL-f|Y0P=hY|c2kLA*KXjIXN^B8#RKZoK}Me!f37zn!r+(9?95 zJ9UJSB}q}S_DM~fW)S7m_kq+2`a)<9a>K+lK^Dw!zYc&`Ud9`t&+&o?(W z&7XUF$yZH!D32Z;J$`ZmFTTbXO`IKD_-lMr-I&hO%j-1x{@@@P4AaXoURZqtLe;Ic zf5aQKkFE`q`2>S8@@~!a3I_cbbRUuIjSQHW-;Vp3RPhGIaM5{muD@y}qxp3@9OKU( zN9c8~L~RKhA2XuBlz8L(@#yiF_p#e{tXN7m(#>AiWRmG^aI2lk}g2hbGt_X zl^Ds4UM?%Y38bv#Ew^H~n-n@dJ30J+oB2*F$?rFlP1pnUuy93vVx;aL-R-MuDl zg+m|PUSP1Lqj->9JZL;L-Ky(qrX~xY#H$2s$bwvW9Op^jA%emOl~1WC(h6byD7QCu zlW*i`ev>qaP!O?F6(PDVqL6Gj1z`wv6r3}By z?j`UEj~^waRdLwGi#hrFYxo>32e)l>ao+8iz3Gn@gugR&@5tpUGf9nl`2ES@)1>`6 zsU@3XL(O{4>;`9JoHc?rD7~t@Gru()?M2`QBArHxq`5}~<>doWSLPYnH$4AUfz@#M3@Eu`Mu_R~8}!CmQz&4Vt;Y7x?uoB&4;u71 z-~PF?m2@{dsQW=kmuVxZHU8w!VlW;vn}Oj+_^yKa2Y+KXs-#&!#u5lHq)CTAJ$-U= zb_(B*@GZ{F08y?r;te%0i*%vGc%W7{SaFc7D~^^UrjA>_OKa+?+aSE07oF!@Ki6M$ zo7-Ldx3hg|=6*Zb*5B*!e~nrr`BSX_OS=!HYvB&(Q*yDgUh=1pJ}@QwVC7Dze1c6- ziLbv7=#EX4F1%5J;>~2_GP;_ql%{vnoi7&CgyWm)Mm6bcdb>nVW(N{kko6X0gF!Wg zakOqoH#X9Fa*mL&$zbH_yVZ&bUjP=AYol(0teAEHp^=8~#TiIag>kwY1C<@UQA#S* zuA0Jnbz8e=Z!nF4Y@_qE=h+~9)sHl96(Ag3G7Vmb1E9Rzc}59J5mT~7Ufq<0y$`E> zo)NN&C~ItR5{zn*f2pr8jeRZb9wSvKQ1DB)l|YZ+HyP>tlFg=-{NmARU125* ztsy*X<4M9}>Tsk25TntsKg47!#*4_!a`q>GOMcz)8?3XxFs>P%svg=_@DIc?i*K#+ z;gmF09G7ni3T$n$+hOS%X$PX~q}&hj)w@Z&A``rTIL8;j*P$Me*`H;s>nR4~ncP;4 zKo{8xVUKtNm3G0MpE&n!7ik^#-Memq$L`ijx$JH&x&QU{AbY(%M!2as&;2ggPkMuI zAAwv7d(SdV_+Wh9+kTjAKghT7*WNbV;vv%>*gbIxXxqx$A8IkDK2W)8qQh zs4v^fX}Qy+e3~iwbtmM#nFMDEh!qhLFgh7%op^S%F50fn>cT1{=;aFBx-ax6f zrmFEH{*brZ3cY7ySzBkIQZyK;`TfWZPoXh=y;4Qa>PSS&noe=ssY+MWUmUcBdsDc2 z);^+&78CUp!zXqchdHofU6p*P9iIQ=tBnA{)W%=9~C8Ti%xRIoXoA z+e_B!Jx&w~UYieOj@w^zkjfWd@ZYRec&mCiw!Lk4wzkcg-y{ugvgy`u0SW(Ix7KW$ zR%IQaUz@xz&7}Lg-#yrNx6{!YJAdt2WSalJW&wKEtoR9bM6y?Xo4oA?#>;N4We0!n zee08MngqZ1&C%ndvv0ib{Lbzm{GvUgg4_m@CkvAtS3ML@*yakN*JF$jUR0mDuCas~ zjeeJpIKBM9@2TQp{TaRIEm-yagQ_v0aOiV7qg1z)?;C{AYf5@M%QA!}6Ie~QI3d0I z?&RS~x_112=YHo8 zbh`~PhW-uv5$oG8J3GXBZMC=B7x3&nAKdS3y>tHjvUAV-I~!f#BRN#@6-1{O?SA`V zaYHKd12%g#UA$SlwOV+n>+0e`seV>gU+$;JReF6w`P*YvA>-dA_2aVxOa^;hZ&;SUFgrJM~5YN7~W?v&JQuwyiSRz!08|~Z6EnLNCIKm$*#A7!=F)PsYi4; zRP^lNpzeRX-A7a~46OqGoTjKAokY)*quB_;xehQ@pt|*$=mJe1TZyxeONgSKHXQXeDaYa{x!x^Xp>REXJ?K=qZpdE|5Vp-a>pR8?~6@u;Z*qNU8+Dayh|!irg&G zr6U!GDbf%Rh68k2q3jtLey4SPX2b|#XC_}aJELEu!x5gTqAJF;Br$H7R!}oVcO3k; z#b~6s^&SZoo683*XJTjnbCc`j!`3m<6gzv0!zPd$Bs0Cs@dBk}Hg4>nd|wsdG?>Bx zhNEP{!{y8^{3Dx9D7bZzC!1#{&)`}Der*G5a)9OckDsBN{$f5HY#_@ehb9lRKAy^B5U4Uyh8>*OfvdPA4?wH8_A>-Yf&?GdVSfjdu>98|OeLb3xW6I@Zf)d3QC+6Kchk4&(w?E?G z&D!C5{gCF8pFEXxc-R>R_8cdZ*?>Lj8(BJUcnH7M4Hjk4L2n_TW+Y|Qc_k1A(Fk4W z4=K@>7-^qRhjZ%!+hXjL0pgO=_W8qC$vJR_6x}pL?yoRE(Ou#cV4Q5Zj?63U*bM#B zX!hF2Nqxsv(Bq;pcjgsmzv8WQ)>UZ0uFPRqmj!rpaU>jK#$$O+#JA9?+M9p>gEk}u z*$0}gM)xz+YF~lbjkSpKp|J2KP?h3znkCug41SxYb5a+o^Qj4l!>B8G2x55e;D^J5 zzw{pMe}9Cj?#_OA^3cHZ)4s1i`Sw2_K6^yIBQQ%Ab*`~<@0W&e)-Z{GgxJySGVn^W zIn9P!?ctaI{)f%Z7L98T4D@1_?I!rJ`R8}jtewuT+cy|ShJV2HwEyrGhzIr)5wGv@ zHBd+xetU`eKv9QdpD{tD~UJDb>xy}y{J-D&OIyZ5$Qsca`l38qk| zr};aO*?Cy+=8+w#&ke!ggNoG`R5l@^5)PJ`A;DuOz5| zPZkhBfwGOa2JhX2XfX-s9G+9Q6r_)eA&c&SHCw7i7(Ja%HJl8Oj6lPWPP>{GqnkWE z>?TLBkw*q)cSYxX$XoNb{G}XX*hq{y7>q_Fp7UmB{s7869i?+Tylo9lwikjE+W|)c z%DO-)=qZrq`J_K2x!n*Q11JLJeYOEViTAwZ>XkC0Rq%r28u5C@TgL1 zQ1quocI7oN`lNP{h_&^a5$}#=GZnpjmNp0M229V{lPAYXyFEngOb{U297^CkA)4@V zE(Aj>kT{ zggVo8m)~7{ywq1Mf4KP4(+>628v}G%5{Pw%=*M6G1KxP@`yX2Z_>+hIt4Usf`zaX)lrI}dr@H=9MRyKdll?2rcWH&Zo%OO}+KU>a z0`rWQimKP@_iK@xn(boSKOanh?jW!$3|;FrYIUzWwZ`uDTO;{CB?yD-bcVuoI`?t` z8DcC^m@p4CuhO!jouf5w5B@#cKluy(+?E$ph4vO(m`PVdDdff(@{eOiY8|4X6&Rw? zWPGWK#J~D7u^F6ONUWs=B+}{VCcVwk9*-OYVIgrYlx2>J- z`}Q_>X8Y%(u^HX-pLbtu?aCY2L}T){kSQV23O}M1y^&6)tBA(+n?!&ze9JdS%wirlCv#?aZ6l2C-*6~liP;28}4oZ?x0~-`9CK>Fm;j9 zU}QRqAwi>L3`D?;SmM?=%_NqRW`eON9HK2Rf6!=I|M9u}+;yJ4F&n2l-rl|p^R&*d zbn;C(|HIpb8k#*}FqyMFbb~x;K83Aq+IZgWB;EOot-4eHDXy%Ju7m#Z?_@2|DRy!r z{x%dH&>~hF4j0flgtoznX&FS=pC?zx$LF6*6t)fWQ*AlgV}a5f$=pOc};BslbGaEUxvYZ2qldSx;L;}Nu@rm zoisX)WK$lt&?bc(cmq{ug79qbmoaQ1Iw5oq%iy))PE*3Y7<>rrXq>rdWH8yovm#C0 zd-LVJ`x=jdWRSQutL?*9Nc_E_VG>|OhK4=R4Q?la6G#%%;!cEQ z#*#-*F5HRb)7oMZA)sY5PD|OT`o4xgcRSmI2Y6cX=P!-*Spre>{N_xYs+P*Qiy?=+ zVPqjI34|ZQ06dNBLp6eCh%d59oWkaRA-`zXCVKscLTW+&bfn*nL{+T8DlmCp&VsJb zrZkk-Y6wRvSnD)#Q54MZs$<=x74t#yCp(o^}B-*E}T&78InJu1gahPw;2iJNCY-ltCM|MS!aPm=4K56VJJ+BDzIpOb|ONAEC19ek3(? z3@inW(A~N}d1Qv(KS|ys-CDOezHY6_Xvv5Ij+%kJ`kx;l7&GIi=};aBGzOMveB5M* z^H=zmJ3@3q!`@SVl(6r}@{>oY{Ae%wp+{=d{q$}$E0SlD6Vy^7@(9x~8urP*L$B1` zB$(dqNVgm_QsI2)%?#&#KAFk^NlY5jLb+v#9Nb25I?w`4jUq0E0+84j7+bujf4{-Q zWBy3boi~K;X8?+%EO}+v4>%Y_7OaFcryTO!36UqHjcTPli;{N46lcq?dH!;GGk96s z*4MRYR@yK;M+?hq9r?0&Fe%epn4YM@=?c&3t}}Lk}OfhVeHjnW3xkYXO;-I z*`3?AkO%Q}{R%T#Pi1j9XGbgwPgI-jK{^u@Ge1!9&;|Hy=463=-`(#jLYuj#EYEXixj(yy`DzUR#A&GOvZ2 zQxgl>mP=uPZG8e2I6iv%BxxhId$I8_;DRg?`;Ofq_e;D3fpC$%EI6Ng-}Ibn!ro|t z93*6-$8jY5y#di`Nu)zm)xr~XcF-eZEgZI(8 zcLHi|K>kM$*XCS+yU1TSFXnv%g1^+^`#9? zG`!8r!iVp2Ac=$L#9k$qP0j zz#9h(J%F;ttg!RJ1OwAFFB|9i!i=C8%$%|xhhi?F3wLU9}4XM;A#0q_c)3+9r<&SO9`xp_w87BUBgW`QqA5S8KAX-Ec|( zc3YVfs@E{DaxNf2ymfNfCalyV2RC<$jasdWn!~H~^>8v%dB@!=B!duOR2HJAk1Vz!@h&yI+p3jGKLAN8#cQ%^lm?3d6NoJFCJT3@m4GWHY52hjQ zzoMMWs0qbQbDhmoYhvL>aD>nBBRGF#0fb(lc#d89rdxa8Lb|p+zY>9SwosZC@r0uhqt0Lw-e_4U7`* zspRpK-uK5(zU`ep`}Xv#D%ubdy1Fknku0?*O_%HMzC`w6i+pH6c;pi7QuE*eUr-mr z>bF3SPJh^YGrj!kftVH&eg-4LgLgJt{NbzW!)N=)2m7aodpo9-K9X{e{&I>FD@W{y zr|oAyC9hysaYmm$IX(JG{7S4{U=H*ln>$ns6B*D&QYB!PgNIM|&wd~hhItt_7h@a) zKP@aWZUVPJwHjc{cS8X7Zmp{4G8?}h&L-n)54B{VNltTyhNB~frwFf(j@g&EP|+O8 zT}+*c0f+pD*@Y&J3N=JPGkkrpu?2UTxo~iEE=xfH2kAQP&nEgeZkI4;MkCB1(a_Da zk^G1k3?_TQ<4g!F6!9d~k2=^=@Mc`dF4J%}H%lfRTpKG^y3?W9$T}ULMdw41+p*%k zZms6^_xCfxDjx@i*Tj3=@kC8{SOBtCd> zA=jMI!jtY-bb1zg=}&*^9iQP>dxuZHt9I)Wv~P3^)5tx+lrT=-AZg4oGV4_GsR&LG?|_4J`S0 zO=uwYdNG!KMC8@`+RgxVggiE?0&XwPpH017aY3;O>gD`qqEwmW1`t-axyNmYC-301d{5_E29_RFtXzfUsQ-6|S0020fw2jvrsGT2$==tFA&q zhTIu?GR>|0iBb{L_EAa~0o@i=j$kIa5<@@XcT5LNziQH9?-DP-hppO)AFvAdXxeei zm|heYy77Hk6I-p*ce86j=YMipGMgjHDn~UvVbt1Ocn1#^STPMMc z3a&VlYo0%#jlyqRez%1*z7ILW32^@XbegkRxbm1_zInJNa>JL13k}n8#>PPhJJvVB zh=kAJhEY{eXw&jZ*2~e*v`+D0Dp`{28;6?c-M!WAdRK~&shgQls>GT;xq98awH7;R zAaSD;P^w}#gm3VZHK!u(I$|?onon!oCKa)}swEW1-wf~N&Z0~LGUr;izzB)_5Hvvz zd^Z#>*AX>YXNIyR>taS^868rJ6MT-QK8H(S8K~r!3#lQ*U+Ca92> zJJK=Y`Xs!T@*t02ssHH>!UN0|eH>$TwRWefBGb!Jp0r1UNdM5)6)ke@uaoWVDff^q z;4TT_I>sa}NrcuKcUJ~3E=Zi86cO1{)FRr6MokVZ{&+6h%>Gq6zRcXAxU%D$u4Xb) zaq*4qWf&cWy|bmw4t|bgw&YbCiQQ~kS)Kc6Ri|iLP zph@qvb^PgoG^3lLVPnjW z1YdFA`h%cf2>v3|;?e@H;FBr$c{FQ-m*LXMre^PKA@6%|t27)&q)`Xrk3b<@B0O(0 zC*4}L8YB=dV%7r-csGQT!L>7&F z>Ot~erpDKHb?a@Xl%Eg?#yaqL$G{iw(O=*U`2|8JIkdd`gXgYFCnQ^j(V6M#Ae)%g z0%4EFSwG8jb!rXR&`_xwCTa5D3(5(KGpI!itCK1hXIfHYx*(L!A&a&Ni+~(orF7gC zPeKkdF(EoGLr69S0asNM9X4SNdW0_qdrK62g$(hdk?m%j=xItB ze+m*BmtlxZW*O(Ok>vvG<1c&ur$A<-*EN%$^pFiPXq_;l@4ZfEGIy*(#juM4-L}Os zSJ-SgK<9wPm_4DrL~35c!8P?{-j)GLQbDFq!}Mg#%(s{kgYiKT~_F75D->ib2x_Q2%;bb=@7OZh<)E?PfnAQ zub{>t+HaR72zzZggYDg2V5GOV4I?e4wV;EA6B)8YcQv?BpxA4q>a4|$A$I!b*8Eu%xUOq#= z3Vh6V5>9|X`P6u;72R8`s}0m#;pkH0=7Ofxm5wgHmrH5)#qonJVQ2xP1bbRY1{Cw_ za7I+-+X2&gH|Gwl@oAhpIJN!S-W~j5$GgKB-Q7Jrl4N}skFD)0&U!`d5P$kp4gRhf zc+p3v2k0tcv%mEYPR@F#hX>D24ttNE^d25QJvltsKRbj?E6}7H!!bdcCx1e5chb4~ z+JA(RHS{d}f+@sfp+fc{EC#ZW!Bc5pGSr#Ja52M|g0k41u{JB{shSoLL)XGa6B$o9 ztZP`cNxv{IpmzSVG|#iyJS>N%O#fLQ9Y*~}K*z?x%w6=y^HI>)ZN80BIr#L$GVghr z_FzAa;g;Kfe0pRQoOvO)A|{9Y{>Lxx)12uv!bgt|&U#oCo}+!JhefLp|cS2M!5x4V$t32wcE1oh_=|nq zzk*`;n0~R(LHh6Cz>6OLVqeJA>GIhZr@f<}o}Hc~J^1DDr^AE70=nDcpV!^;T_rVs z*#GMx(66(@$A7gCzkBlZ@Nw_QZc#zz)M9r4`{^Y4&5+2x+w5PpI z>+W!G15=9+k4|8kpYEURpFMGQu=hA=Y&YyHnjPoeZX=$=Hj>=+(dok{r$KJl-oyX= z{^?VGi0rO?@#OS=VMk#7Z})+v?ja&%@APk{XNQlb zRfY;4_>2=2htitagcgcjApKTR+1TRcB$OBL-SxbM_o~wl1!u3{!ZqrbFEee$%fTQE zFd37o)nCEVvYZ5}P}n4JiSUz*(dj-R-#jywPz@8*z|zAU`c)}FNj&-7=jmX;Bc4xs zP|@kYVmbg}4%e_(zKxiaS*2zqY2F<+qnl)0?qwj4kv6ad!ebc!)M-6Yo`6 zL3mAKz9Vts-$*7*iupe!U->!bF+n}*4TJRbe@cGew8Sx!EaIcv-s@pLq^yw>;Ms-< zOyV<6k)pj`I)}r2j=Hbj=4P=3$W2ajM1UgAxKoxeXee;Yq%dWiS6Hr^Pc9JOjqjVk z?w=5>+g?Fw>Q35krHJ*D1uJ$YdT{ZE@#@&bwz{HaLp*+V2<7%1NMX~YLJB{yIte!q zqpP1-*}B_^uHZh^R}bD;~V>GGR-c4XtM)#2To7os;r8mU-x5o{Spqps3tQ!)A5;l zD?E8h_>50a4!=A4$?PQcU60*0qq#akh%=sKZQ3hqHF{$qu@x6&4E5oErA;I?$Mw1v zZ;(JoY+EZE#PZM-@)uQfL`ydD-hw-!ulgDC5_}=x0*aoS|k^`;2}HCzV0C!yLM)V_GMs5@BfipD)G^fehZjQRWupC za?@b}#WS+m#8zdrP)FExt=m$bvq=+%KDkZ$6zt5`80C=@Oc>?Ik>CLIxk6)z1i_+} z9HT2xS;B7mu=x=#9PjbzEvcx-=+L7&W)m4P(Qc{VkJN=H&~XV*Lvskjq@%9+;v&QR z%nS;*wQWY$-@9jW&kc!}Plj+!(~2g;FTRkxbJaqcIhv&*e9Yg*AeB_!x*F<8+H^M= zjAV#`T9pmrg~irEaB8*17_*Fxhyx(IZw}=clF9CH(N%5kw2ZXXd;ny=6688B5`#)o zV0!rLO{ysv^)Nw|_sb?gj~$QQcFY%%oYdu$@q9R5WGmV&p)ySyJK%nd2;vRe99l&1 zHQXs3Yow7lu9lDk{~|SRtpqqKLB(W|7#l#n2?2a&3F43?={YVMy1shtFyf*_jUfvD zoGeu>ERUFC!?CDW-MErgJ=@9o#croTxf}hZJt~YFRui-m9e=-LzoZ0 z9jJ9Hp==y`0|ggO+|>t7Qpbr5LJU{RWkv~I(D08Q@wrS8dNW|E`Nn7zv?ZzM=?Iij z?37@xhL?+3)~4@pul<(DjA+Vr(taBb$lT^+@3_Ucw*CDoB3zG^YP}Y4+2}J4zX@DA z97!ik<@4OesC=F`YOR1B({`g9xs}LPZ`#A5=K*%J$*7^)Tb(GPe9yo5LI~IkI9`T~ z`z^k&mXyahU?A3kAr1eePvdH$#Zdxf$Tx%oxnz;i>cSvoe85GN< z%(&Kk5I6X(`Jqj`*qe!Q_y0VHHe32PP1If5aW7KSnEQ|~L6--B`7S6=+|MKJ^UL!B zHLEK(Wm2OY5_qW+uEyv2-G>(0vO3rc@&Q4{a#K8zM5U9Ef(K@Gu5&=g!yN_BLyYTz z`3UtxLB&tl@ALv8U6*$|)=BCG=@kpTiwsNHswg)VYn)nl)KsxTt>{+_kEI8PzB1SR zb~zuxB~7!Uq=w=`jk*zR)j;F3ta^)BJ~K@v-7TH1kWUUea!*I+M<-x6TQ|&97%h z39?M2OW*ixdtHiY#Oz&j4>J$rOHXEKk!^pJjY|$i@`YwAky17Bk*PINx`6+cRi{po z1fmPn2l-*scBfT-#<4IavvCXC50{qMu0>`+FDBTuIRa)P589Hv1yjs&kL)7LK(r}= z-x-L9=lo{am-{nVPO~@d_YDz%+K-={i9mJb?Q;HhK5-67Z~~Q56b84H?mT=_`Z>JG zhT^Q2n{T^&SNQ`YxJC|#Gx}EI9hIFWM7c0+%;LB!q>@-~k~_i}%VN#gGO~DqTX!p& zGDjtLqRlCM0jKV2=1(13O`A>hL9{nGHdNWd8jbCSvU=}Jn{%hO7l^ZOy_>^WvD^|&sg2s@ z9;;ncmsZrg+@&XaAU_|x@H#?@hL-J*mK%z$3lGp;C`P3~^^wJYZJd5J4*};pKoA{@ zNlSBddCvNT(}8Idlqa#ew!l~=FQ}8E;zLbkGvNYobb3#FKkgr$wGy9tcqTH@m2Q~{ zGSUaPxtFwe{7J{tmkviPnZsV45rc(JjaD9Am(TF{bJHkC2`kglt-)&53Tx(%$t)l8 zVI+fYlJjA+Y2;{8T#*`7X`?*Dp^8B1=*J?f$x9hfV{ajx263kL;B%}kO3|E%A+3ZV zW8v=78HGBllD@KnM!#1he>G<1CzUk6$D3f2e+Bv`McEU8*Y~sOTC(JIc8$?=*_$h% zWUxDHOax@0a05b*cq>(x`4&*mq>=#P{MqniR`YDeBut&uCN>V&zLF&RXjg9Y_r3>3 zb(!A+tLy_OhX=lU#}Y>>+We=lhSLOXloCjtzhZG~i0M+H9{HD%7EDMqPWCWQN7Jhm zhPoK%!%O@QcA!aBk$FQiCjGwi0uNndx52AJO@FbM+_(NBLLss1u*NLZZ1E5LuM$c8 zZ0P2cZ1OxP%iy$uQ|#j(EKmO~2a@?Uxe{~xh@l79D-d|{`h>sKY4n}(Cw!+q zh)w?+G=nDU!+!X^nv+(!wa_#=Mw@#NK4w~j@BO;7x@1!I>X1RPf2`qMXV%D3E$fh*uQ+S1~#Yg&rwMH!>HCFkG zRUc{?4ylh+nS|cauYqte=!-boa%Lu*?B<#R7KB`_ zlsXYjdx%xnrHWD7qFc_>M)zLB->jnHrs>$%h;dx*KZj21OD}$Uu=S?TFXz=>t+DCz7#|&#K)gwb% zcR;I#vlf-Bl#sYmLd|Koty=^UlDXKkKSkIWvV)l=pnson+|o`I_%KV5z+7 zd{9K`l^BL#y#w+|j>ih&z3ecAH_wM0g7uET@&jDCjme101EpHNGfFEO93|msRjo_6{#=I9~0&FukH7ceaDo z`XkfznOo`3DnqN8qBSycjs~xSE<?ydWtlt{?`GsA%(&Nu07kP9FtYzCjj!wWJYromgTFOv9lx8=Lm zYVmbaSdh)nBASS4Q<=VLyKT6{P2#)m+Jc!A=CTN!z$<;4jIxWl46Zmw@Pln9z;HMo zXna4t6`#1(en3pU(mrZK3HTW2#40e&F7fxka(3Xoq2#5W2bS%O?)fDLS$0UlP-X*^ zZ8zbZm%66hE1a^Wlf@n?at|r;AMaz_mE^Hf=w)#r!AuB$Z)x9pF+Z%jVx|{1IDMH| zU-VL-;CEUX!)ZToo%o;p6e)pZ2h}Kau#|FX%Zk%F?fb zcO(r9n}pMVV>BB%m^gU#KsCtKkB)I-WpmoY6i4V^lu==bvZ0CqVr z2%qP>`2WBg1YT3Eg!_SgFq9NN$VLZrm&&2Y_1wIZPrNRCgZhl+-DZ&8*>oNf%%*5b zbcX0S3I;Gv2LhW=wD%$pW(9kyw52Sz3zG<#GSR3nGo4eO-et1|KbFl{i;@=5*oqTk zKA18mRs2qez3gO3opC#QJ%V|0-!;AM^)aDu{^lZXz*+gJ8G+g|-Gw^*>FBKY-Tu+> zvy(%AMrz;fpY0#lisLuiVah{@1QJwB0`EM_1{yU$Sgmbh$!2X?ThYKgx3SHfco}#K zt=2ZFe6t3v+xx&5V9>V}t#$abTz@ASYW$zL$kTN36cG*G zad=zzPH-r@*qNay-%Ybs+CK^&a?D zpff>Pcw!2f{uI|iD}E7vRpmmRc^zdeyuk4()0v8NHCnRpVd_%E>D$4vT={Xoh4@!x z;3YkMA5#k#C)2u?n=d+ShO-SE>hwW@zIP{6!DpIy3l1-C4aGXYbr2Ijj(Eu?CvhLQ zxBg-`d}OZ&C#C4?cIl9%W=qqe+%t=WqFjLT*Kk4pQnWI-Ab&L58x5;vj?*>mk@=8H zbolyf=m3r=qU$vkpF_d+&Wn;z99yj2R_%%5QQZyiTx7f}iaith7QT2N*=~0W4FBNm zrl0x0x7|K+IU+%C>o`uKP4_ALJ5jWjNiFo6)cER|hhTp=ujKKx*`z3*$CJ5af|REg zF%cGHIM1`u1yy9gZ-Lu|rOsxsQt)3Mm6@2@!IMX)PY(}j#^Dm!vB*os=-qsqJUNv} zm7~YsJxN|aNM3gaH}H^ClO2sOCZ})&@$fNpiC5mG;NNF+sdV^e^LMY^SJ>oJF)<$v zPzHxKdQXq{&%S$d@`&MudXLY{{ZC9}|9U{4<;bGS$UE?}#xr*W$017x=&nm~nzy2P z%#e<7?ihoG*)qva2$ZmqG{mPFCYDU=2b4VbDSL*&(j>``8T&ADGBd9=_};jmp^xO3 z_rsc1mZx}i^2Eu%h&i(O%Z={5!EUke-&!NtM2{<6@y4GT)UC$XjV3C)(<*UZ46F{! zB`sPzIi+M3lmaY07g$5x4+Heg!z5VOL;Na*wQ;l@eqc_W#WFn6wx9$Ya?yM-BkWY3 zEzS+e6M;e;2t2h8_vG0)%lqjR!&BWt)CdE%4-~5%I|+Otb!a%_gkRak1so7eaVmj* z>D*69DebkAyf9=P3Qg-6aXlp*&rZ2?(#?5ebvTi+nQ4+K*ZQzJ_qWDh?AR2W70cz++>--q{K!uv1b{g?3mOL+e!y#Es3e+lou{9~=q zzx{(l?cG1QXA&4+T>`P1jCg|`k`AX;kUE=;+ zbhCsi672b)>c}wsk|J=#Ev8!0kw96Op~p>Kvu*|iG$u_<&u6c+tyb(rG(%?uloB~P zr65P|EosPX-KL{at+?FkC4wWs6XS712`eozcp%;=c2f8W`!~=+^!TgJ^XUUJkZ|*C zU_!qIhs5YJoCbF^VtU}3UwrYvxL@SVRuj0vR*s_~PB+QPXTtZuz&_wUmA)D)GObh% z7pfv%`(n@Q)fbMv$LoUM1V)NL8%|B9n3&&VgB7F5(lJN7gay30j_N?DHXju+HWkCd)C*_QA+TQ@;>Tm z@5*AXBvOh3wv}Aq4Q8Qr3fbThTIiilj3zI_^qJLs`{(Xvr~CGg|IvNlZNjget!{I> zyVI?9?{8PH;C*-VIq)Da@M*WZvwaDV>hSA$o8SH19lwAoovm%u-7nx?0m{8oYeAnL zY)`9~)rXDJ5%KunGYseM5=?dlY`;Oayf;Mb@;OVo$^OarnEG|LpxXid5>yQ?gi%W^ zWSfT|_Vx{MIcnk=k-rCmNVTkON$dtw#vmeC)}|!lbSXhw1f0JUPgnyJzH{%FmnM4= ze`^Z^2qd-876zZ-Mdzj(dT)lG!++o_`Fzkz&xi2zv(E@@{s4$ta`wZ~X#x^ga{BCX za&VCBe|L6xlGM>x0DGw7B^H7W`M2cor>FamA09sZ>@!MB|2msth9@pPOD;y~C8m)a zArlYNx&Q5v$vq4blF0>clI3BROX!#;l;|Y;v|l+vGHD?YrR0LJH(0Dm4u1OSyW{=u zPX*52AKi+{uN6mT(?S8`%st$@Oln*2wz^3hTHOOa>-oL*f4rdobQ5?11*N}xP@w9c`Mfw8K{>mp zLioJ1xjyxe>CKn-x0WUTq%3m0c$B4U8#f$bEu= zm|*?^WIEB5LQV-7b2W$mVHnFKVOSJ|k5SPUpOviZ>}t9k^yQi7BsQ%)yI>u z;CWGOQBUZ|UQOO4^>0`X4+xA`6F!-aP#y?hdNnBmch9fjJkw$ZM=~fHJO_aS7JQhE z`x!r&j0U~J!$CI1JbJc-_dp4Jj|lvpOwah0|HKPQ)6O7`Ix)_jN@mH!1QKv9Uj*Q`@i0(y?u^i2DJ<3R}L+(YM^=8>+_J-eFYGxBN+{yXhb%N%00)Y@OV6(_K#uG(q)F-wUkW`pQR8`BA zAhZ&22~YwqRVf6+>JKN2yhnp`JA?y)PFuHga74zCv`cUY=fe&fH_cP>> zc;4zaqqg^?YB*MC3dTDJN?mu)r6!d6(ULHNG;8zBwA|#2GeT66Y%@5c9Q|lg@5Ynv z*8Oa|IWYDaN+$-D^E1S^q_i+SB_%k%8sfB5m>%_?oJ@KO?Zx?tYMSbXa>@YBqqddi z)v6V4b;2#v3Ue$+wPJFbwqbY4VBv-?{MJ@vZfu~5sehayRh-IA5yCvM(b%XAj_p67 z0A=-)O^D~$LnLL!SptV^gr=6wGfUaWLdI9YJH+xJLpxoy8q-ZI@3nCYo)kc;!$cXioRU`L<|(>6=c~r2nMR<7eev4=ofuyo`WN z=B*v+ntc0vREN$ci_5Ff!enrrBoq0y@<}(TFfL9a=UROO1c=Ky>L(1LL7H6ODJ0>R zBgASE_&|?j${HSDwFUe_RU^fK^$~>yqZqplqVzl-c#IE<77ZD& zu&mjlg>N&HLEjdB1E*UyJY1s{3jwMP2`}=_vLRHxE;lg-e2N;&CYfX&BjMZLD%+JP zO1EM2R>D<_%);s49-*e^n_97SY$Af<$}sHWpQHx!F9~3(JEIiEzs_iadFJK5Wqexf zcAilcO!Wy&cSls4{jBLjSdS-ksW5jIU{@>42HObcFE@HapLY`iqa?^#6Mt0{LI~Ro zI$;-yI^%6auPf$Tls!o51{DomHGF_WF;_Ng!L)y!(Qg%ozI5E~w$Y-sgo#a|$9`cm zrC#|pyUACDoXIy+I2n9?0uEh|p{BKEGRRC;f@jQOvp71TCWnj^2@NbBW~HnxJ=fA1 zX1gO@5`KIoeYltbpNTL!O?$XJRAp4L4AL2DVwx6T9rajs5zknCRjF*j1S84sjOM0Q zR6fynDySfI*TvK=)TxnBj;vRX$$ydQOwpx;wEqG0a>aQQg9$IcA_bGa zVla^ln-v-PJeziwc8#eux_bM(mTpG(Jmu+YG-X_x0VfpgLrMlY9`R<`CJ>e(no4ZvcIf?#hNOh?7awHPn!OS&NNBYOA=I`rUDz#T&e z7M`-+my?nT)5D?MK8MTgP(pdyzV@yErJw}5wlgVoO8oA3u@XT$W?V^x=7>l~h_>YU zHo4GS9v7U+5CWW2h6l)+ z&YaPRJ_`oz3}=I!*>H~$kK*=-K*NPw$xT#lhpIWNS;u}jtyeXQefbR(O?9zM`qVOd z-!f{6-(KmJ<_z8xl|x_gQQqZ&m@ge3*gp@f(1h*J-9VM*Tr{Gpl@Kng8o~PGoFw^C1j1~Y$JPK9#6(?ztQ6EE%z-ytSsu40M~ZDc#!Wdnzb zH!oV~*z>X@0p1vT88T~xdgh4Ypi6e+rH4+jAO_19B>Bh^pE6+DWq6YE9}rmOgTZk5i0GFr>I zJ)@x~ZqHHJujFBk-rkB1QC0rRhD1l-oz1MsI4p*BZpWU<_wV3p$RBk4CLJ<*FL?SLx zv(gg_okk2&R|#h)YZX4Bo&|omB`&3Hr(LY7qUub31I*$I5_8#A~4zPA|+oMCMOoO>q9V|hmW4uoaVu&?Yp`;!E!x&5>HiAq*JU-; zx#eB>q^)d#w^4m%qGjhJFPU9%c5-ngX~)j5Fk=`<1JZ$P(6$~o;=-?dn7NB_&uPbg z3daH$@lSzni)K@Fqt%LDp6*lb?vmZ?YDB4`c~DXT1&=ms5!=pgag>YkiW`&;YRsr& zM<+)=3C$%>su>AtdD1@KfBgOKRttVPIz8LnqG+S`@#81ETc#OI><5#C?rNFZJeVM( zyAv=s7mE=GT1_}Wi4B1iqtrguVH_hn^@9GhwYz1^@#qlNyX^P3ty*|I*+#AKa5j8{ zY?%FH4XapvT|%$rtid)q`N#NCR>sX|!zl|p?c-X~Xc)=G6H@)MCXK4uL0Z_gg$8Z| z-rk;Nzbu9np(Wv9=h^%w%f?BgeJpWv^_@m-m8d}MFL7z4iNm_A4>sZf{SWIwmnWmw zh)0&sCX;#Tn5q>k;ste#@U@in<_&;iG_Lw`wwu=;TEK6<><>`=HRQ~~~dl1B=J>mlorRs0E@=Aey_5bl5c3h|II46(8fsD|<#v-7o8h2R}T~eI<_RjeKhx zx>euWhEiLNmuA{_gY3*|Ew1fi{aq_8?d~=Mr$H>Bl4PJ{bc!Y1Qq7;PRo}MbS>6R( zZoQt^^0kQJvYdR5wwmq*JL=m@)!g~;_&Rpi7L0{=SnKm_lDms7kFV0+lV|b0zpkBnAX`bYZ{#A2{^;x#t9luoah1lc)X)FCOEFlmm9rML3 z%bY(4v-EN@z8Kw_sTu-dzqDO_IH9{-i3jwlp9~fm=NrYoqDB#);=usQ-}#_U&VbG4ad|3|{|! z0t0;Z_~<96M;fdGOky^h=e&wCSN+KhuK@(V2X=zN_|cP<@-y4XyF;Iu09aoUtks)E z&UARBKX$uDcPo6EFFFiCK;f-DD6MC!d;&Jp_%(%0Cky73Rp2V^zrwgH zjAW9CRE}RI?Vn4E!#okJBCIjUNfo^elaIAbSc z)$npW!S7<5Gzqn0B?2=iz@%`-8)_@%TH)lY0ON*;pi9Gwt>Fe^p^B{-jTW!xIW7?q zuusaWxYjSOVxE*$X|fhbNTTybjbCljzZrEHmG*6AB~4p97}b$K%LDBI=Ju`=sHjKdcrYR1tha`G3z*{y1IPlb)!YNPR&#EWTyRy5-8yA8y7g2>+h# zY>UNLLoiEiW=1MrviVKq4bu*W5X$ksZ<}C%%w$x38pKvAxk&;J?a> zu86LQ^h|>hR`iTE38~vPuPz2i!t#O` z;@xLDiPdii*QB%G+yd2;7{R5I_Q|2^}5Gy1rxzgzu~ z9sMUQ+)s|Vel3yYCu2b8;{0b>;e&&qxOzC0$(ilz{IbW%nkV^1((fBq9G~kJi-%!V zN&~Qp1K&u#qnQU1kNKNXFddknGR!3l(kc3mlJbN@AAuV0+J64ws}^)>IL!&9LOid= zl$PZWU!hunu+$A3eER*7*)q0~nT5I7G6=jJ_OBUoC$kl8yg`|E4^3uoIQ{M3*3ynF z#>Gayc(@M@eDUz%mIDB@q>&$V_^g*H*P)y(Cs1Oy?xNLf0vO--Q_Q@FX? z?LMY%CFu9|1*{4(&h0I{i||*%wupD;0>0LN1swNePIith!dHeziFs5~^&9e^3;sa? z5W({4WQ+z+vYwky%|T!f%RimW<|E_+rZ_@Ljcj)nL&m_qwymf(#BJ-sG5d&5wXN_3 zSLzb~b1|Av=;zJVWIChYfQ4%FVQ)`Ii%THfI0AgqCYJ~__+1bGk@|hW70!dfU_E*s z4m+O@fZg*;3lvWO3j|vyD-IvxJ_fM3i<6Fr^Wi@-r#8j7Y~$A?g)z=vIvC6_Q?-`Y z9SaoToh1P8ytDjHPvtv%DBs~BdxvN29UK*?y7kWJXJp&IGrRs>dkX)5`Oa>>ch25> z*Zywn-8Wc#il4B{=Ct?(UR=WeXkp&zy1a`l%e&%6eP?FYX;D_@ojY}wGy532?6t8% zmlP{os#03gaHz<#6icopec)VY|K*HVmCGQCqh|SK_GT)|iDWlvbhf&i@TS{ryi|3w z-Ju)Flhf_{qDTF&H*elJXfO22k~s;IVlOTa5TsTQ22x+*vGy?@386n~`@h6*14OU? zqK(sZVhbJiq3Bpzm|JxbfEh8cGwia#K)t7kT26>GKHyb@9mLEqO7@+`VXd+AhCXvp z_FM$Nz%pJ@9#U*77VlR3-4Ui^Xyv2d47J;(VoZY!gSG_W-2?8Cy%)(SN9yyvS$ z_xLI=dnDFOwJJfd+0x((@m60RZf1*=#+yZol*F$r_2O6=aVBv&cZzXX9^$Y(!eQCC z-H`aZ2jtMfUmA0Ehp^{Q8FjW+yqU&H`Bp?Hisd82%L?9(eo%#Mg1g3+-7SWGWpvr9 zDDp^+12aCnd!(&1I@x&ST~aA zqe9J`AmlLC%`YV@4ghv96i^JII}*V9xnvt3@8+#!8$@v8RkwZ}^jfhcr z)nhZPJxpPSud?~DPfWAG_iLzz$>)I_zk+*oK38ek&f4Rf=&}`#`WvED?u+jMAYufE<0CayqsULTT8m{ zk}f%0cN_Wk?sl?$*==+gK-EdCS8TQFY-;}SZQd(<8U|T>>~0CK>R?n-*?XbYWuYIU zaeGJ`pD@7jie)(Uk4c*_-qwV3B0sD3@fnPmh_LD7PdGkZo^1>5(`{DspX9TG-}R>3yte zx30TEHzb3UD-oD8;7-XacuKksuXShYT`x#rxxQ$;^m+`0_#2kwn0lqVn~9{nb3%q-3(dWO0tT8nJ&9&K1+iZs<8@v67itwz0qI_yD5I~7HV z6jpInGYNI0uzm|CJrn^hE=YsC|9@AlecB+Qc@8=mtcMH zMPW}L0`N6NglupyUtuh}{DBDg2RoVwwMXiWzQ@9rnoUqK?5BMMv!;JA+Bs(7G05=z zhed|>=PJiObB~MjW^bOvtz_TWYlY4xrj?*GNrfHS%|foWuH}$E(o)VaMlq)~QL;~W zG^YzoFm;3zfy`T{eT+Oifvr+*Q97pdhIGNhxn#XSdTE$X@v zyEY8C09}d%_)C#8H=kWvs%r2)RU1F~F;0)9j$+8(-P8xgMhkz^SnSNt1PcWcjq&6PHM z;+gaQF`K7A?>3Sn^6n?ax$DDA{?p+-qt{$f0Y^Mg#Zu^VmwX2JmCN)?E;$tBQyF$~ zd@}f!L@&`5Hg~jpT>pxa!S+Y&7o8I(P@*F&9xivlI!Q$t+~xZ8A3vi~CBk^cP0QqB z6S-kEPBY6;mP*)G7ime(J^eR42W9(F?g7$L#D9_>#LZ$;B-g&Eb=nj&G^3|s1nDP`{Vh{8<5c@(gpKbbg;!-9gTJ| z21@fOY>Qnc5-==X4gIl48lYmAz|q~sB2!kb5BuCwjDAP~4vb^EQ*iGrZ8agohI(l^*6TuNKl!%-%}x9h@@dbE)2FPtMJ zxnBkosXtM^rrN%tRVk_KU*rv#EYfujs&oB6dW6p-KwY!N7#&G-JXm$NNp@arX;V%@ zqQQh9xr|nU^j0}>_skfh3PDXYG5f%pT?#DmdgT@r1baS9D`jM2~Cm{~ZN69;Kxgb}4{ohDvR_9Sb0?*SbC{ zo;&+mH>f!ocezB15ZA?Og-^ukGoFfws>Zfcd|C66uLJCDdP@JXSqU8W&`nWLbTE;R zA{H#h$K_det=7{x1-LVJb9esc?i@~#DrCvheEOAf$!zhaCq;Z4PUx14B=SF6BQY=HGD=? zLn-P=cVGB(5hVFpc{=@h)3c>*8?Dj@wCz%f--0R`htmJ~tLUk)9VzE{T`9-vXMp1A zQ7RrfB!|av@=ijrOz2->RZC$7K6dU_!xHip`3SQN=L=ElNl_aw{yHj~NL(vw4!UzL27+C~y0Mz2eo@!opWvPX_P;?wZ2D#&F?MVCObfHv% z7p%Dw7jnStrAYgg-FBg!WtMt<3=HXAXY;GcfG^PNbk4^egd<9hMM>S}$zXAPeH*X% zKoTfoQLnmS?sL#oEn2sh?82L!q`TSK>NYVA6R$fv${7b9soMp~;QrU!gY5P8crh9& zUgFNZUl4MW(~>3i!|zWHpF*pVzSNSh6I0#e`rQfJwTv*`{9uTa<$*vGA{t>j0hj=N^(kpsJznAZ4`q?bq~$f8s8TM3emJAyLGy1L6g!&&S91Z8UCIdTJ)^r@{Vm`S} z)#*}FPf#*3ze#kVp||AkXm#_QB>5KR?T8GfL|g|_02T-BLdF*x|& z(QPOVGO%)iBlXeIL~f}5=+r`8PExoF;+TXHzKkaPv;SqxQyG+Cz-AC@VXh;(?0lc9 zPjNw6&+T$+WFZX5H=LM2kwQXD36*jpNy?(F!blZ&)OYFN&4&lH zW!s2GN)_FkJdc5b)!?@m_6vQBcWjvyXso*o9&J4)cFVFfklU`kmaEkYYf~*iy()Pb zSvs0}(+x^=$W_w7iVa+~#h4Sw4lJE%$R``MyT*wIQ5uCP(G|UwUX=ulNaHmP#3<1Z zE>R7lah^;bYQNue%=LR@{lmKSi>F)l6{~Uez+SatVyWD43hP%y_aWXmKz;=}4T-#r zuZ8u2e%~MvH;y0m#Ryde(=Z$2J?*sBB1CSY*Gg z&E;+e#ff<9+lBGO1GN=1un{Tf%D>i?{0L?)C|l_Q^M4nh46Z&A4n4m9|Fy zEf7!(Dzr4k(cP#3k-fVFzOHfxONzuzQ>!Q~j&)Z)5Z_h1F4giTgc-(gJ(q}8K9ES6 za7Dv#oFWRs6@Im~hMc7hIO0}J%1Y1?A{_yJ4c=&mcCph+tc_Jj=BUd#AI%4&My@nZ zs%A4a=^6#+T2?(<`835nArwm`WoHW~#V@nJuT$8NVO$>h z>nJ(F>JH&hvh32-Fy+-}B0XDpW+o-uh638?-wStXwj(4moZ3LhMrwzt0S6t|C}if$ zq>{29QG$J5eC*iI1AJ*N?zb3y&5Pts)m1th^x=N)8OyZ^$=F1f zqmnh}l~GC1Be`lpBOhsVb%bZj}97HpaYN#xYDip^t&#UtHK#5$oCn!tbq^M<$+ zwi(sfBM)z})JZfL&*2h3LmmOcjao@ICUfx(*$xo7#%V>8MjG^*;WhCN&S%p?S91M~ zZD(_$z7phwge*-`7B?zdxG z`4Mje0>muq3w)xHQ%auOoSU%|o4Mwl*UQ;aE94IBG`Zqm7J>cmQ)Z9B}J z+3A%JbqZd%W6MDLqP2#zgA{PZDFZA;bdtG~xf7mI$a>vYk<+}_bx2az5`Y-;Wl^Ob z`=+b(UZ;LhQsx=@OO{PZ*3ajDbWl{Cfoun9JlrM}A)f(M&NEyE0_K;EHo7%jCY~^) zNF7^0N{+hreS`%q+SSX)s8X|&ea3@ayTH_@IU`U7HrP!KAjB-1L!=PBhktv#|LEvI z&#i3r3Zf zDt_oO43DwDJvE(}Cj-e+Rtxffpe^L9P0)f07w_6ZB90y`Sc_%0&kyxjEqr2q-_=6Z zwY^w9?H%kySyhuN85ZHR#E%1Dxt5ub|U#U=c!*W8c zdMp^{4yyHdEW}#6b-_Zj+c~DfG9HS1L?sYaz^5B)P)zT}3J$8lL4K<`?oyq#bE*S1 zcez?T&~v*jlo_Pn`@v&QIG5RYu3De-hphk?vq}llx_L^Dg4>JlnR_S4TqQc#cyH$B zN9Ii?$-8%#ntg5M#8xQVY&uOpl+BI7a6NrBoO*C-2DwMLF-{PS*|JigL6mw7quY!q zZPgrslWGZ6n4i6o#!=#>DkoF#?9i>bw1vXdg)Nw5>~ZJJh{xLsB0i=_ z6NNDqnlOyr_7meB2+&I>UzT%G}neiVQrk_7k;P$h@piCI%iwE|3@OW^h*M9&gv zMrgqq2&xs4&11Uj@LTB8;~DVE3A#_r3t#tmw^I6BOoF~lIR?KuX~!9xG?`9@gg=@v zBoxYmsBAO-ur|3N8ad#Ghdnxodg1v{P_FT(2s;%EL2($`vibgqZ{F&ji%DVz2bklP zJ+?_;N6@1hF|-%zq)pDyE%aAz%zY+G5;-^UGNSlqZb9?AZ*poQRLec2RPW~_OtHaj zvsghesL#=!-do#^%uYn`E z9)vsVVt9$n{6uoH<`d4O%s?V0qRG2PLZ;jifW%vQFY!aJx*uU<;9l8si9H-gw( zd#OFbi%(1nFshp@xtw4iM+g1~RDGJwE?7-^IhhR5CFIW$0Vk??-vFEa`>`};(lx2cRpb-=)z z#l^+&&0f1s#Y&^B7)F@~-}T1WjnGn^C0*2lFhvqzidqS_AZaE;F%Nm0jdBedV44YK zW~;kkMZ(p^J=5hIQ>JG4#7Ou7Iq}$eT;}9(hf|e)mv0$Opn3f8bbXCyk`c zb?I|81gZ#F2$fElw`Tn_D)%iBxz~Aq z@BUZhY$n5LAJ^5@Obg%UufN(_+}vMT>i19JB7XMx=qIAi`VjMm1238V5x%waqVs&` z9=W?|1TB_ZK#?0Pvh))yaF9h*cHhvD78ZFnF~nJAkEYu2HI){7xS7hHurr*uNX9|x zqlf{9sZM93A^Ko2L!4WvpY26H+ddzTw<*-JeGHe)V36E*f_{^CP`Z-TIYxLldH(Y* zjQ)Iqfl;;O>v(W*Am+F-$7cm0Cmt|M8f}NaPGvG$;sEXQ@n{IBtaRST&Pj}}{Kg;M zXP>%R76;-9f<+BRQ!Q-gOii_<7J>764#jTCGY}VNCjFFX;R+wRdIX56VxWc!Y)O1v zWer)Qr$sRG_<>Q`*#vfFk@t=RNEzoK((zb~C%J5SOJ3}@=TBAq6Cnq^J*wNge_2nW z=`XlZ|C?nE(`-9bZ9FND>19gVEK9u?k}fO6g*LpPWKW$@mr}cMDhi)1tco+WECEq| zzB9POMw1B%y%)n-?zkQIDW8RSO0&;_b*7t7Iu0P7gs0_XFaqwf=i0wrOj-2=rv8ib zuiboZN_p-rh&IsQpk)N&{zwSaH)^A@=yk74oc8p+%g^X)RbejB@M$>^qd*oEEYronY} zO8x-V6{hI?pu4X$6xwU3ypgg7Tn0DZr$}E`_aXRpBudKPR8bmLDJ!HDB`mehNs>Kd z^cKOUso;L$Q*Aa%rA+7HZW66i9+PF_$?wJ>e-i$fobajBnk9_H6iSnZUd|xGjIv!u znlLBSct+jjM!C~{BFQcBQVAUPL-oeWTg5b`SBvXF&)@K9<(+A;M{>%xkEJ=m9$KzE zE8R#%ZOB~)V%`7a$$6ufrDwalC>AJ$R`|@piqgSFRlfB0-1v?vKdMM!_+4kewvx+5 zmLo2E1DM$h6q6nIzS7O{k<7;$lNxZOKL6o!A0NnjEC~fIY?;DM`(d|L#Np0d5hXAj zvAZJP%vwkuztxRpp+MF{bJ<9K$k>}d&GW^z;B26nJGn>#s)#XwAywlx#6sh6PZTr2 zrbY(SK=@tQ>6`)6h8u{{ki|_C5#c3Vc6qYTmT5Tr=?da!OF~+gIC83Zd`BlvQ*DI< zXW^@|@e|Q(to_-rUi7>Ej#%Ol;ckt`5nX`C5~wrAXQkd4q3Z;ara7Z^v4SNu85(y& z-6UdYRUA9l!lvp32~kA?szv{EK^q^f{;6taD8>TMjH`=8d~V;ZFUcp`iu#aiPC3Hu zvJM%pS=0Bn?}QfIC~6snZSh#-rcltZ7Z*JZ!2&=90p%IElBu{P9-&63 zB8F)HO*!Ek%t54Knr7Np6c2_~HFlgpT3`U;r)vVOQZg^2b-7cJSV&KIIhve(jFK+-$Z%*hk!UcJma!%A zDUIl?u}VpZA+H!Tlm?WnY>9njY1(k_@aFJ&t;IsnJ zKl(iN?EA;hl5@DsVA(knU;O(|HJ~^^%y$;Ustc5AOitx~ad6y=WOk1`YTjub zYZEYxXQXmbQxamIuN(HjMili!laHG~P$B_*cDH@{_UEbxvQx%g_@?3z+b8txD~iw7 zOQYbj>tA7J&P&TV<1Bjj9?B+epYWatx~i;&m!VAYSPX}}6py9AP4i9D_ed#Tz8gzUfsdu30UJrD(;<>V>8*=<>Vx7*J}gKf zj6zAgf9r*#B*lMsic2vGJFpX9C z=A3$WoiHh%-t7w$?D(QlHa$OvC-h@pAAQQv^OXcZ$(|D<0l#yIiDG##-DQO^DSog9 z?s+8Di|#m+?PW=xm!$wMnzv20CQAWa=p)9UCz=&`&d@DBa7zTaB`_O(9BzxCws`0h zY{D^iPS^B^r;tt8KU)yU@x(?k#qh0TrcSZl^Z21IR_9DYAAR$5VR3GaTR8$m@>*$H=Cpe=Hm8w0*@;;jEa@0IBTDY zKVHVt8Y#-Xi*e8#LgRpZ1OJHz1vxEYNTx{^TF9dtiyc@;?_1P)E`fQCsv;x$&t*+S zw2~^W`iFC`Ru50B#fL5b!iPe|nq08vmx2^hWU344V@olL92kRW3R%tK&1pFthAUWn zH_@zeTFc_5X$LOPc3TYRkEMEg_bz$M!i)__4F#^X!cv1uR^}1mxhTkmV8`{Mpm&Fq zGZ85Pe<~PRCx=JHiN{-CDPfMcGdsPg$8q#&0-HpWpg8RZ72Gk`@H$Lk_EkCIAtd8Sm;E#Hr!bMar7=IWnV9aaB+Q`zBGD zvy8zEljH!}PiKsK=j3=mt@#zCD5puY)-xHZ!D@!&)kGItAyN)4LF#D5tCVoy64X>;Q`@C5E6+9tT)%AlxX(! z*0Hz}7dE;{Z*x9*tXb!^fL=JYvoXPJ(%HK)m`|uPpGjbwWLvn-pgV}(I!bRHz&BLH zFUA^~XL4}NXT$!h+(3jl6JYDI8KC{+sMQW}k2KT0%$3Dj9E%bkqr% zyn>RZ6l`OyL&_(!;)3rlfyP#std&hG2ftn$)Q8&s8aOoJl&ynIQm*$cf{d() zue(D7;RMhfhSwHGTWQ6va6hs|;H~9@s)nY*J$bqqCkF?K$%+j3x?-N~Rvin%!B0QY z4L?sW8Il>~l($CwwAzf`BzHBdu=5vhJQX4peOZTZw*Q*k|N3`3z_KD%)9-(I>8oV7 zpljXa0A^-`d-=r|$?rS=Q7vd9bNElc*T+QP>A4wR!8S#l9+$-sd@Uar+ug-5bJIxL znug>69yx!_7UM=WkigwPJq<1`p!d%Fl}|=MXLE1Ds4IOhZ0+En7S3orET#%vZ%z*m zPzMK-0KYWe9YqzDayK84W1sWE4e|8galDycAx7 zMW1J*3p43ql2sNrOEaz33gkIZ(A4Zf-s-}6q3E%$TwUSEMh)UD$#_LE`LQqBP+g?n{S`zP?HkR2oe~lN{=h^HoACU}ErQ_$< zcWIG>X~hdA5B}6tnDMW1*|wBj{ZVvUyP<%3WIAo2Dfy72s{rLd9XV2RM{36XEchKC zkX)lst3~=gIsd!H$r_2?zvP?~=IT;z1WibybX`|8@|guwDY4*n4bW<#`$(FXi~dEUoU~I z@wJgmG7{~stB9@^BUI#)#gn2b3=4N`f<+26(x1z{N7y;~-_5zE@hHa=F`!h?z-Xn(Ii~1Ag(WsO%dT)I!vU#kCL@}h z9`}jlIM`Vv!ttY?0PpO$kA`D>bl-V2%U%z0aC`MH>4Yel9je6{te%but4D7p$twa( zZ?_RxE@wY@uA*4$3IL=HtFtzBN2gK_BjFclGr+Z-v$H5nD!s!d>Gxd9Co}+Ugni}( z#Kz>>8qS7qxHvU>rP_ID8pv%r7{Fep7)RXDuusgWWmdWE-u!l&iI#3df$drIge!JA zUTpIpgN1>s7$b2wA6~-HFH$tnkw%TY72aLUvg|w`wBZ_gM-|^q@{4x@#qEg{lbq<_&qj?WI)*FudvkZw<3FKsXxI6OSq%zx07Gn<0 zG8jEVO=yQTybY&NK|Z!5{xzP^C(T&tRNEoYiKc;m>8Wp=WY2gQvb2At!VlRD87GLn zN`$(ZOlf+M@etg5_k5@QA20a7&+qxaM*l8b@C+`2 zOiq=vpFhDMBmw6^I_fVlv607X8O;nFWM%=X4$vO|KF2$2&oC0VIkVJ))A<9Fk%Tn>9ScWQ?Fgvl=i4%Q0Ud9#d zV69Hwz2!ENhcvVVga!?F9O3xxDHChJmQDV9~ddqL3H>19t`x?4Q zdVFF}Cl5U)z4pkZQhqNlWrtVODUeT^gJO8Z zIK70~j)Vhv1Nc?vs`%wdG{y4%{fZM@ZlYpR2E@Q&)0*zdkaqp^U>^IY!D|V4)aI{$ z0O^y+WhL(tp8*VF{|d}lG238iC&Lu8v2uEbIb@_1u5_u0kT^rIJ45uMd*+>MnlJ1l zEuCKu0|wA;wR%`ur`OD^)xHiH7l3l}>2;JFhm=$VOWd}jj7T{<6HX@6J#V3IuF&n8 zR^%QC+T<<>g=*FT!kt^gI>F>(F%2q$kC$@jZhi7dYbS!j%e^V7w#Ky3cX#b;FSKVP z`IcQoNq8r)%vQoRnGX>U85HW1MyJtnx4jW~id(&~%SqsCI&$QlB*@?37=kSN=}x>u zVhUe#maL@Er`f;KVp(gdf8=zKdt`ar9iF6xi%J*;+huAd&|QLPPjvfw?*^t%ooh3)F`bgH_296KMiwm{2EXSKKKoaO~TAoqI9eOTdee z#Zw07u_3O6<+2^lo|Z3|JT)fCw6|Dni4){_d4s1{>>DT=V|FVvnmPuWmh_L_X$MS!Mg3J93W0i%!DTUq-8CE=Q13jFyB%oxQo5LtQ%jFQG6OF5b0nr)R6wp_#U! zR@%syG4unWHsJV8+P3RMC((BVr79P4$5~=%Y|)iUlGse|)yI?I5$}r7mP(^hCkxC+ zaeJL7#;9I%f8DLdLj8=r7HT3DhCgerkrbK`_be(Ym{auoUT8>PiYRVQ9A2Dk|)~& z?b*gy!>9KjA8XKIZM&-l&GBTToqv7>%jCxU$A2LkMKoKHt z+?*6mFy5e$-<6Fs{Nl~I=h7}OF>kiX8#nWMO<^cNe zbERbhD={5`0OY_>I4C^@1RR5)(>|%ks=Htw%Tpai(;VF~#gR)P%7KkN(4{q5mm(sK zJN$YPlP2Qr;L_Onl?Rs2WUu?%^UE^k)TE4@&ll@#< za~#v%xR_v3Y~i{IW^sJ<-3{)~fcakeBzQx${@;P~x91#QI%Yqao@_=h=lfcNb#uh8 z8t)x^x4g3-Cd@4+h-`1Qog9(ym(33ae@t(_ysy7wk|_E0Je%bFyUig5kFV0;E#&2O?nCu|dsBsMC86y?1c^DMobj4wvF?ng<+0e*J07-alS5v~`x zhIiuAZTwGfR`{YOuQ5qx`jg+k{)7F%0mk*_fgfM5*GDBlp)Jg9)47kyZQPVK`iJJF z(Z5Z88~ZV_GohzrHk;=>9$7xsv(k+q_B`O#IhmJTPhS^cV!ZnTT}taK=(=p&(!B|1 zW}NjwAhUp^%TFA8O81wfBDMRe4du#Hjfz}uSuL$dmQ+R#l_x~UeOy(T9~LY-?3vy} zN4hIa1o7b+J8iYVYcw^ISNp!{Fat= z@kSVTdqi$3udu$p7DWg$*~wz6E8ZR@n?w9@c|HAoQ5Ao6{pG-yTFNK+#h1zN@W)rAJJh8V-#}bZ#N$I`U_q@$9UPkKsPn{5pc~!@&mcuvL)Veu zOqj?xlUjE$331!wnd*s6x#>&*c}nK6fAX9I+9}XLe1R$V8AF%?tA!q)gW)CN#1H4< zN{Au?i08l-+`=qoARTcg+MLof62d%x)WuiTAnc(G({*6iLxuK2N@Oo+W?! z)8UivNc9GLt-H0N{gP;u{3wD(pefNJ_q2_FRB}KebRvd}iftX-f^}P47CL!_Lg( zwJc1VU)OQj_M3U2c~pZBkOQNm`hA(bna)t+GdrS|>?XC&me*eGB^mMV6+!uy&7T49 zf-X1&oBZ${Eb&q>aXEN`NoKJV(tbai&Ix704Q?5BYEHYK7EAn-gNc6#n)nfVs1Jc; zy13%lVzE6<0-q)>9Zv?s0m0@VPLATh>+B8(obVvWv>iwSimejnt1OC#sY#?bog3Pp zTxN4c_7?1KAJl%KxqD=<-XWa)&!(=#sPY%c4?b zzdwL>uSLC!^m{D|?$B^U#SI-d$b{vz{La+;i&u8 z`>#gfe+3%<>2gNITKqUVPrU}x8Ecu?=?Jm+={(NC8noU=0yVoQwsXv`DejohfLxo+ zK84!OkE5mKr7M?%6anccr$^2j?=!4jwn1^RJ0?6dx+K(KrP+>os#u{GJKxTj<)8eEM8tG<&ks%!0~0z#!d zAFn%x2<4O!OsJ8yla^esTE|!;SA@IAR8M!l`&Qn2c;}hX=+#%gjLsm?xj_Ef3t@H3 za(-}5E^Wi~@=iCP*Os&5n6@P%B;n(|mmKH;Cx8O(9lr%JrnM0g$#3hWOGw!R zzex{cd?Wd8Las6S4kbK{I_!|Dk+ zD-*R%fwE3>>P4ASb*D0YOEk;<(Ih7y7`*XsP}@$kNgr%Eb?`bwwJcmsf3_&ylR4!T zuv2SZIljB?E1vyu=4Bl#{0hHFo289TRQ$|B7jJjAaA~%;5t>+`@@++?b4yYRI6ajr zM9C`ll`+O^PtCXAJ^vZnsK0yHcv*8A;CwF?BLxKT_O$yLh|eK9{p&%3n6lhVH@Xvr zR_)yTMW3)=jYkR9p(c_?pt2rmueg-GLh94xez?13KsFW49VmX0F%z~d#>NX{NtDm< z@Wce8nws5v#Wu^ln|?3IU-ij2`A^Eje@gDX$hRL6Ki-!>;mn&$lM57lVZzoKuFzsU=p>t+PKV<2@pH6a=_}2e zd)=0{jW&w0WZL9)G#^1547oe&ez-=tBty5Xph-qiO`R@u80(K7&|GDMU8Nz)>z1ck zcVLGH*n#%33x%;t<}L7rG2~8Y`+NK`znT&FtR$VmHaf~TlgN$C0MPsKU0G+Z^1ry} z|Fhilr(-mi^KxZ;+#MLWA_sx!$r)vGL^9T9s>Tczv}A9@o!na zVd;7`c{ND6B)4qjn8YvIJDhsW|GITQ`qrf#o5=qCr(L{WFaA&5 zy)-rN3?R%q>6zzK!nnVom#_obY9$)<6sm7;!~G1uK0iKr@%-oH#n$#VWncODi_JG3 z6>c}zh_oTGT)3-$!etgYRCjuPD8iynvcB`NofCJ z-{399*$!;3_`s3OHoZ^Vvp-7ND7mzG&hQ}Df;L&WCE~b6{JRr}?7NMrV^!U{j9Cw? zy6bsn+|%~zuAiC$tl9_FFb&>%E}?{EVSGZxnVg8&fuk=Mypx!FsB?ZiSA;HcG9Kf8EJ1u95XAmd20$QjchH~6F zO_A8^ihJARh#BG#`C;67b|s73-txqSCh^|S?ZJmlsV8JO@6@W%^(l|=Ek7Tp5?<+8 zB@56Sg_zY=WVb1+kqwQDt6s8JFp-OqB9xNJEYi%7T~#%i)998!sx!(SM6>2a;I^V? z)1hm0)S0+hV&(`DG?{lxdB65XuPoW)m9p(^3^7agwv%0X=tQ(v$fa4>bK)5I=KHK_ zg5I3_FifGhk(^=9402db$Cn(thjF^Ki^;?bu7GI-1|m66IWWEEq#lH#wQ86>#xMak z74BVb>pSH<DVN_l3} zc*SbWF;%}8l&_UB&4mOi#U$ZD@)tJ+m8PF68E{G3sUYUesT5?4a(laGrTCy+%D~xR zY$hoI|B=OSOXz9eiICp(Va^EI2o*+z&_0nWJ38!l&~E*LuyPu{*-ji z#QwvrhyWb4qfy`@9tJKBjEJQifp?C$tWGZeWEXWQXumgIRN-a$TN`KZ()gbJ6=4U_kG@(Hci5` zY6BpaG{+B?Osny`6))Oo97WivWc4R&r6Cp`TSQg@f=B5t*)iQ(;O1sFI#NZ#u?blz z*xgJm#=!iT}KbLe%7 zd}}mHQ9wPMMnvIk$)2CA**5AbSUublUNy|Iyj$~Cp*m)_(|Zl3dfmGFwDBO}1W<`L zKsyIcqB5O88orkryEpSwwo7;_nF9l2Zk`E*N*OtK>MBV$kLpe%-Wr+b&O*pcm{&3v z=5Lq}@0~Lv-gAq${JkzFTDDSxE`kvdTM;m-ox7xVa+s46uY4~jhF8F3#lSwXCUi%i zg>y79R^D)y_!V_=5>1381?u`0miN3HiMb~ixI+5Fb!8ICR2vAcwo#l<;nD;z1ij82 zh!6uACFPiQjbCY6c3dSy1Vjc3q`iU39mL3Gw;UNd>?@29S89oXDIB>`L&$ij+|;jfRMyDcC!60{FHX^QY#&NPR?HvMU&t3n(M1o>*# znliY}0+qz9XTl*la@+ufj6rtMi_I>~`de!WL&7k`Xs*Xk&P>R2nslHxnJ+uZBg#I4 zsE>$5<|JNbE3%N1%OSebD>@x++(9}|?E?hDNiW@e3<_*}}A6!mt+X2^!1_ zlA(^1uiATy(G)r5L(hko1T{x_qB+odI>Q^=ONGuEw(VD}uC9jbW*l236}3}0*xAWw zg030tlxoA?No0%cqF^ly_Y&?kah{;e-C-L>_x0Y7Ffg#1PkFpchZ#`AV2hL+YNB1T z@IaBh9@);cLtkgJb4;aE6DU5yD5NUfX(Xr(bC5@=<{DY^@tO^zBT&>e7z=#@UGK0I8{A*WPPjjJOl;WqbzCf zJm8Z{a)TpsyD)q>hP3?~7uEl?_CDCx^BKIii-H zPthoq2@W!7V-Ii#D_@{IgFcr)SIvs5?d`<@9N{ya@wN8H-F9A|%*P5NsuwESewJPJ zwq2k6^cB;k{`e8>cue$2J;9Iddety4`uy*7#@)#<&VA9*AU3GuFjU&}nz+9uUwd;9 zJszvKi%!3@IPQeH-Cw!6NRPk)A0Xjeiy%Q}Rm@UH=4>(oBjh*vEaEUQ!+57K+049v zEHz07WIcAUOF0~zMH-y^PKSK%g3j$yXTBvTLPVX)(%I;?#dt?IL*%8s@}vbl=Mj)_ zJ4tAG82y+gBg%$DkseogJrWhiUXznzsPeE-zkxBkQTXSGJ@Cm#JZTA|o-BVtYaG|~b3L#<|+oD{T09*e&fX(v)PCXncS z^KlKkYUQf0ae9m2!O8KaBfi@Hgv5s7s;bWnf6aw*!}rp`!JL8YNdz7_SbwWuUX3g%(Gnw&qSmFUC%?Kg!AbL#HCi`zgU9FQ(ZH$rh3e z>qaBluCzPsG~=YCO8!0>jyHFjHeh%>>}TZNz+Nf~OmsD0AbKk!xPyd1Y+0IM13CF3 zOh$3wBZ+%zY(Gz0FL0K(KN~#ATO57R-F%*OTQBg}R{rki?oRz(cc***U8|A&DP&;b zs4riN^=04{4c$ff1_`o!*cYod4-7JLEO4aZ8Rq1)j$0;cV<@!0JZ?iRjV{)(Yix9@ zyB5cyvD9_q^eaZvBl0C;%!p3ikc2uNiwI;?EIgt7$odMYyRe43}W^?sa2I}?X;gel))x!*B*Ta8^3k{T{)TY`r zG7i$T)Gis}UWxL%Y(m_TlrXYJ8?CP}YEi-7%Np+1oVi<}O7r}yKf6Mz;5?7o&s+<6yS&(}18E;^#>FOHd#nY%z(`mGZQ0Ayi!8VX zoj1|7^Nd;1!rfX-_o~h+jxkGA04S?RfZrd5?=Rym zHv5Bs_~A5=UgE7Pm)}35XTXvfeY5wr*`W5A<2S>3IPp@ZYT^sMVIx^C#PQZ&2YyJp zk21=$l)sbu%rk|}$TBkU3aVVXu?l*ySSeF{A9yR4wOHDew&7-;Sbu;@2i6~9q=w(G zNP$&jbUh^Ejk%*-k13^AT;+@TqInzB!sxpd3X&CS5uLzYHyg+*xl;qGROn>b%Vavt z`WXs@0tq^6;rg=tiHziEKq~1#S`>}hZi{ny3-#b8^8Rc%gJ#`#~ z{-VI(^pt{Q1Tr+w7uT5^?uE{zGcs7^Wi5Niuj+-w0t%3r zf+bm?QJi6FFcG%l%M;Gm~a zat2T6uUC6J)dH1t=Vg_G!@M>iE*Q;qIbQTezVG!)-Qj5biVtJVoM7~Ma>}`+tI0F| z&yAzUPoJG7n++>JS$%#?)u(zOPlXcI_<8Vc>A8!j;_1K-3}*MJ8kjC!g2zi29m%Ts|K zPn$qk0kbc>Z+Khox7=Z$cq7S3yWw(|_KkTK%i)x7wuo-DxDn!7<($>XVv=34+1mA2 znw84vzYA;^f5+px%2+0S3oq_PELY~`9&$|gs@Ax7j0U#JYlD5xMqEe0HW2wX9(XCu z;yqPyyD6p#FC{3v`67v!*euWI=Z^HP$Z~n${mPcGT))Mw<-?4zhk3p@&oRPhJTKeu9LZxrq8y(G3`wVu z7fu8h>!n#m*bRFB*UG!xtvi4Jw>yCU?vg}n8tK+t%rnbdtaliL{HCus2{y4M(S3Qx zv+i&{cH8-2fEa9dpLm-@tFE!@91^@_+r=recbnKo{i|e+JssJ` zA#lU0i?kStDVx)<0OG3h*5{(yWU72mz6bHk?~cARclVyTga1ro)PEkoL4->blubzh&N6U6p%`w_d^Pq)wW^_^ICwx1TT-iud8H zMegX88Fz>TY_aD{cDyxRpx6V-&c#YcDB51XEQY|2vtOdpR!pD_;`n6NV;zOKIasHm znt?wR${W`3)z*pix{0b~#fw5ZF`D;Kxw=>XbCrAtPGF@bv#eA<%riE0S)ygCVd%(a z(jSD5u9}#WsR3-FnxpeQ^WUb zd*HS{k?VtU_aE>6z%6|O7YK2bE^~v3G8MnAE5tIU?e6Xnci^kUC8B%^KA~HLrD@D= zM7T5mUNe>qF3_nuQk3gRSkMA{x^<7{t)pB2wTC*HYROIjYF&Lu%!@4>sVqxp)Gc~h1C~Yq6X9=bj+tSqpq-x#(Ec8 zK9_qb>bduv?c%};Cq#GHZj&y&ZX#3ESyv^l8l*Rf&#<{`i?tGuhJ;NU)N$C5s2QNJbI7F*K)!OVoya^ z$^)k;OKKSYu#mN*Ik<0$=q+>M-10LFPj(S&S2N zMzC43H+e&vCg{=eP`;de>`m;=nJ2M<`b zg{f;+Bf2h0Q14zWrsLxYFVq08+|h;UFfGvy!!jndhJda$C^h-zc!F4LVwl2Pu4a4W z!d|)9Ps6di+3F&KI!2knFN6*herwdAQ{QMGH+VWCABPm*rzAH1=j` zYbSST>GcqVsyaU$1PC!w1FJ$*xvsG-+y>`j~Bjc^y%U%*yH| zLLa_JfqwTgN;X*oNf#ww1}0L1F1pNyd`h4h$1rY1tg}6n$R;b=uq9@4e`36u;m)NJ z=8dt$m>q(9Od68H+FS{+*h82yQD9F-CU{?QoT7?zw9rbAY&%a}9x%%J5fmvJImsO> zH#O0nZItPbD6RXWf-Byr1;?~77+zd}C_g6i4vRHUj}EqRp5dqBfMyM#Nb1HlSTHoH zZG=_$#Nt6WbOO{Y1D#?kk31I^)gr51B#s3Ku}6T%Jbs7}Ba~OY#kul^1C*!QKaOag zsx}Bc?%jr@;R=Y6=C8&!&Q@SV#p{ldubY&$ zX5BqYrI+)+e>$-x@P#jQy5{zJr2ykzvt}!iH)lhju8FSE6;ALf1kR>864B!l&RP#q zJ;+q&0v=w!4bqS>GN! zNZ?QSi+&9uN1(lWINRD=W3C6n=#XT{KOOH}Xt6FDK5Rr)p^{#s75rrMd=jU6f&<+$e}f3-{UJ#)YSM1d zzvHvs(c`1D&F5U>1<1dW%XrX9_K~H;a&X)QGFv{^33z^8Sz&+HNK>#*l7eAglA=K2 z)QUjC!J9jzDlqVF#YV$dcW5;#9+b_QMRg|p=>}Q+Fac%y4`YyMQPyI_Ajp%0FTPNt z9FPn+4~zbMf{=k5lon{1^K!vjj!-H6CPTpfWanPzE7V^w!olWkdiz<^QBNHF^b^P8 zrI&%$g}eRs(f+}c)1P_|51$@C`P-wz$7j8>{gdwx&)U%Nz4r#d5&pup{_;gLW>(X6 zQZ;%F@nYNO!||Y(&U<(cYO!i&C05pR18W)4`%{5(f6(r`6I}I&ZN)o%BG{Mz0>myX z-v0z(?4V2k%K@^(bK?MISJ$Et;qj`jM<5DkCdv>o+VUG81eL@!vMUg%o@#f=JjZ~c zB&Cw(bxdyM;u9AGYfhwf)p$!7oZNDf$dBc|wgsFOkX#>1+FRNJNN%u7g{lEau7f^M z6jvX^{c}|ghb^KaBf#<>MR;txx1A~RP_C0;d^|;W#I$7w3x+D4Vj);5&gVoeC7lHc(U}=1a?1<3hzm>fsdf-|03i6BIEybGHy2E2h#I+ z{W8M-|1W~!AMk);_~9{OIJmFEE~Enkc6gSKb4qiT`U!I^_&M3(0!Z|Z70HF`w^w5D zVlD9VP=>Irg>TkrE@Y``qp5wWHy9CAv}!xWALW~;Cr`dV*?;s+jUg#5JC063;yX{q^v7PoB?{!586J=sTDX2$3}@M3Z+DqSi@6nKT!^#z@_s+tY8o5q zM)Gi&Q)rSl%Yi~zi7d3HQiAQ~EwS7r{n;eX<>Dd(&iM8wz3rHWi@oGI)c4k?@33FO zd)e--V{}>nOSau0H69xKdOZEUC(vih^DJ4N_^M8rlbb}1(Dg!nF(;v4omI+;QwL}7 zmh4q2TlDXE_*hr<&68(mPoJHA^LfK4`Wvj7;+-f>g-!TUBblpy6lffn(3ta|n~_pt zLHG&+trSTZ;AvFwJ z^_cv!>D0GpPo5n2oFb)=5Dm?j7bO#Z2OK{+#Tc_rFV+ChNDIykT@-UTxGu=28hX9V zcu8J;Yc=BAS)GMjY78vqYbj=bG5rhof0(JIyIy-?7MHH0@zSjq-o{?1mvpgkrA7L< zUXKb_V9{?+`i#wnOoQ`mB|GOIsaS%db_lq~Vb6;QZV~-C8U;5lmSv zNHH^xbEuzWT#&0Z4m3zrxtCd^~(1R71 z#2s!j?-Pz%#U=jh++jukKl@SmOx*oX911s*WAvF|zd5A8#3NZB_I2*2 z+|G`Qt@;JV=*xz6efyYMYq1t?Bl#{Ro|lT5lK(?YwkX5t;EzeD+u-16e{AaFhp*ui9F`)L7&#C{V zn78wq^i`oiK90x+cs(RCGl?kmzP4Rj;eyQt%Rdyp8qM3zTTjGai$uqy_9&e$r_!Kzk@sdXEv#f7j@Oi5IKb zW|A64r@frs3|Qigm0SQDYo&oYb1y*H2zNQ0ICc`$(**6y%l4OARKS0~i zX|;^#k(%dbIR5fJU*XsYvz~mI2s|%2hYJF|@h;Hy>?$SyvNS<=OJH&?E{1Ou>YqF^ zvC!n=f>0n##%>!EgxYqjdPmpKrJkSGcvsor%|)6-((W1X;_KJRMLHbi$<6kJJDHkW?U|>xbkaKxXVfyr z6c+)8lN$Vg$Lm+m=~yARms3o#;JV*%OZ8QeI9bg4nTgYI{h*xdl0Mq$`&GkAPDwNG zbWi)=vVRNs1N;FaURLmd>%RQm{?YNXlfzoFliW{se(z;XxE{`XS_%5l%V&M`H}~5$ zq1R{5b>s+daEefqI~R;`JYT$^dIPky0o|;_xrK+}qU>u&_Y$!&=$J&B@V3@98gX-pnxE{jKuLpUyp>FkWz&%Ux$V zM{_CP~})cy4oAIC=iaq8(L)xJ7$-r-G*~ISX@ur^0lwmoe%>`Y7dV#I-cC68H2jb4A^5ch>t6N zj52ESG;w^p_ZjaiUc+b&UaRpy>J3KWM5rZU@EeW9L|GWL88k;Y!&Nj34V6&jVg3ZV z0hG;6WC&4l*^?opwmF6XPC&80>tVF45$d=i&{4kYH{}d+d1PaeA5~Z*6`lkfwg_(& znFE|S6ZAQoT=&o~So4akG{hP!41xTVwpDfL)Bk;towZj|O?OY9oF4s@3^ER616pW& z`|*Yuv-b+-*N_Gqb8`xUIu@l9r{Vdl@t1qdj`CB$T)Gj76UYmx}{@q9ST=C@o^ z;~lk04qhBnBGF{CznEb}9|GEK_?lh}BA2=nQM2hnugjuDar|9Qy$r)YV9sk6s1rni z9OY8^(Ov+Px;@BVZ;uziC*1$~cRS5!3LOfhto0|;Tk<2xMsO6efe#sO*4A_pCiViB zb8hhSKiQtwGS{!r3u$V@4{atDy-A$O)Msp;Ta01P?Cq#!%)`BRDtSh+=X>RLzH`#tcA3CS%TP8s2<_Z;iyOK3nQjq0~S!UvE6S&V_ zA*YZc;veEFCe&|IEv2KJ>tS|)Q94Dddj;qp;#G|1b(xyBemMa6m)C-xuJahhCyx)i zq9fx^8uvO38d19W8Q-_Os@qahs3%9YJ%DY;)!bCvE)IIAT^)@DJHv04(4eQ$SJBWi zhh&zNHY?aHt4Iul7SsNVI%rs;#3e?qmMl$|Uae3SF1su-iwiU7-Gu^UU9AM!(~&ER z=T5hHOdpxDt9UUp0$Bu5liHKQbs*&IpRO-dL11^WMs9)`0Q2(H1{q*VFyy4MFG zx$|=dsBl~0K7@HX8F4vrw-Nn+s8-s$?%r zWp`t4_#{gZ{=Dv23wMmM>XOtB^=6mZ-0otNRKdB4Inhd>8DY}Br>Op1-YQ3QvpPGs znCs!!%t{d7Il`uxlj7$La{TgjOO}iyHa&j&9xhM>=Z$qXOx{#l@V~odCt?`GsEe5m zW7a~(>+?|>47({f4JC$JLcMSbtIj4cIR*j(OSLidv#ri3Ro`E6ct<&8uN>LMxW!{X z-74mG5Ja83+BrYiC~4z-*0oHoZ4ElgT|z9nqDlo zSWOFKiuSA2TpIcxS`V+qd~!{gD7wILhnIrA)u8}-%-P(Us1lwaca4%T<>wJBNqgmr=|c-5%pN`HE)uxa6XmnG4klxOErf7^ z+z?1m#sU9Uz#J+Opo5^0n;ND7cVJK@QxneS$nOF}fRgVLvnE%Aza}HtuOMj6CX=~W zTcPJUz?QsY#_aF1{j)sg38+oy}qq%ly_lv#v(gBcf*+lKc^D&e}B`|KckI}yE&W?9&e+VBG^t;!=jLG@x|_Ovlh?_Sj&GjqoH zRq<>^50(iZ3eML$hwJWV2cCYw8Tr5iViS6-e=s7;X`5MR4P{;Gwx+XYs>a`ot(v}E zbKw-2Zkpyf8Z;2LOT%y!glC#(i@~I=;yG%msbcmz8>35+$$nvoJB+)-ydtA~59dwQ z;8zeScED&=aOn&L^pCz{KCfmL1#TssI@NW;Ja;4X{Qts!(-pkimWyvAvsLO|)4s&z z5`w$afy(o4cl!nU7d_u^|5w`n$BSKl(gYctjkrd!iw}q?tZkPcgJj9sNze1zZ+cjM zi_y6Y9v|S6Wn^|O@N(Elm>**#cN}bgGQ*>U0UAT{%&|UiqW^+NX@5?Daejg(_CDy- zGxRnh&k_Ro!8R!NntX=19YL2D0I-xZ+|CAVs^FmknXvYu>;9B;Gn`;2ottP)FT#LZ zFmfrhq&FN{^PcXX{m|leFs~Gh2yvQoGWIcuGxRD;^C3DzX7g-zjp|JL92s_jH=V*{ z4Ot_!VNR`)WYvXH&5(A4NS~gZ66xejTtk@`Snv@tz^G$45;+l-H_nKB42{5?po`re^KFJU>7?oj z1xpFjfo_lF3^dn70Q}Q}`k^aOOSW6f${sCAQqZcKeJ3Um@j+~DjnW|oadZ# z-!oo`@pl{)UVPWI%DyAC!M1rQKvyppG-gV#u%I~~v=SR{Fkq;FS=Nar=~S>6)#M2S zhu&G{3wCzl%;{yfvF!qZS;TL$Q2vHCY>Q%Ow4Req`J5KYR z4lZ8UlvOVJXfyE-9Pxt z{`ZH?r2f~#lhdOokEc`)@UgZ>n+nyWxFJ z;0Aqfflk#`u{G+>UsM}I@v<3%ycq(B*Z<{&e5`#gyi*;HVa10qw>=7knh9olgP`u> zFXcN1Ch>|6Hw+T3F8qN!Sxhm0CKLo3q1^0GRXP~Z%>c~NO_siLWcKN7@_IPn9pFxA z70dO)N!5qk{9h%Z0OI5#$^k8)S##N z*l>`AIQ~CZ&7(a_pRo2R8vmB@Q6mB`09o_w{FdkY6xQH$?q$byqR#Si1AlU z@Q9+Ejyh(joGi#k%rtZSuy=g)?aBVh-+Fk}t2u{d2m(qb{A3+uC$7J5l%}Y10RzHB zKtOqY^cC+fFCkFTr?bTQ6J|&kshDZX7|xfZp;AW}2IWBo>f4##nf6*?IDJbT~)oo^0;e9^e)Nida<>AMB0Ug0W$lhg6JgUT)PO>xm%1 zOgOOkqiTF)VG6_uDbmy5P37C^7E(KM;uP8RIA&ry|_*9^NNlO&d&*)@Z+nfV}31BM1rvB+s(0yzkg z0CQ1Ebch%ZhO>CQhtFnp7>?XwvL;lMkDu#zDK9vb(0%Kh_#Ek3@*C54{P2f-6&0$#fL0HBmIXj58G6pGbk-0VNa%L?ai&w_Z z&+J-cZsLSJ`k>N{r%D6PcarDBa}2c$uQC!CUjsh}2a)nhLr2(mB88IVyXcK0@#0eI zM(3kxVQs{6(ZoXj4!75&dF!ah$5_(nIlNj4)W@}U%bS}r&IP|`E+sIH`~hC zO6FnA8;aA6B)RnlTgYZ!;x&)4(3XyQse#MHak za^5BJ!7H0_f{mTdEoo~*I!pRSiiW-dRzSt?^Ni8#IXq1!(*&s^%)PCR;&u=gU0eib zn7$%QBuJWbk`FTGTNoGLo;aI0indG;M;N(nW5ujaI$mR0l&H5`GZPOs!V$R-Ic0**Bmb|{|@iIPhkGVKxu0YJ7Mj#aZizn{B``MVKdDhP@8+Qn-yR)}McwscOUpatgA{mmqj7U6zRkvO8x^ z?<3<*`jeeu&SLyiy^z9qjW1{$oqjEnvAz<+^DMYDq8&*Z50EQ&LU&0-;JtM-+G8v@ z3u=vA@A`r0v&i>{{HrlIh1ge-dyVXAvR{w@_>@ooiKA*s)^=gQUaUd&hHrww( zG8>x!H8l5aB>k(&u%9u0@a2S+L}~^wae>qk&BQ`@3#36FWvwcu((Px~&WI{5>=cCq zhB#?ZY-V~oP(X+3hRq_A=C33N9DQ^$GpG;5`@7I=_%(?xvKx85ben5}-Xa2vO$dcwcN#;zdS^fals> zwV!IvL|#N{ustE)Nm!HN=IY8C8>qcbf&qubls>)Tw1Tu zgtDG-E!j{LHvc-ch|943B8$|<#zyk(;rB<6ljEar5zGqrY;y4A@pnhx?*@IW#>3Km z=j}bXd!*gN#}C(Ob^Tt@P{QxMToU|`7h#h_J;##=4+v!j|3K%{2XuA3T(__MZM0WS z`am82s+!#0>IPAm-5lu8NMIvy!(Fw9WW%Qg+Px2t4#$Jt>c8>7ejCP~w|6=_zwg}J z#@~@!&8H)frmp_&)BL*!|NijRSNL=1kH5d?{=|P@?)>2o|F-kxm%snxSAY1!S36K{ z=l&o6@a4ZH|MtJ>pA5$Q{9p2KV|W3(<0ARtaR1@qN$+6)GkIKonS_uY3w{Szl72G1y2qyrEn{m|Sous`Y?bk4d-*X@~5*QwrfVy z!Ftl2>+}_&oMM(y3{j9V8X8 zRrZRbG?MIk3Z2DgFd#IM(Qd{ZA?WUuoN_%%TaWbAzJzv$*SQveS??E}o$V!BRqy-bBcx;Hye46$N@l%J6I{~LT`5}FsS=H1z#)zK6W9Bp^YLrs67rvc1 zU=}d(%y;fEJ2zVZ@wkTzP9{_5!{fzuFB@GaCmH&!@k4Y|Q?C?wf6jmDf)+n4b1aB) zxRY*m)n^&I!;uHYXwoO|9x6e8Am)**Pq1mWtGJNK)|PhzZ&FIxgkKHEt;GEsR_Yo! zYGBsQoB{`kAhPphO9tC~KpXkHSthCg={a{6Szu(%{BJfp*c~#lc`tew(8{KClfNxr zb3Rtx06`k08u)0*jX|gG-~RRQf5^WG|9AcBmqj+a?R@!fzYYKQ`!B!xBl3TL`0|hU zzNF_n_kVxytAFu-zs0{!w^oJ!IXv9XfBeV4w}6YgcaL4uvgA>kgM@Mgyu=)MtfR5! z)dIS924c*3GMZch9n_{ih?~QTAHmLH^$+Ifu<{2pbZ+H4a&%br!&y44{SiE!H{o|- z>agMmb9Gqx1KB#Px)xtY`|#|Cgf5;(fBApU4p07;e3{hl-%B1(UgOUG4=8Z@L-Kh4 z(P7mkc}ceo2jQA`7pj~tLE?rtIZfQd$EOJwJ6~K}WHV~x^ly)!JUu-+t#-yRx^EN1 zPyPuT?p%Fc?L2*oFYumrzvbQS-HRh!?C!-=zR==C@NS1MO87<9v8Y zO1vx7C&Am{z%4uDzf3W?xZw@-UK_!(@@SNe;c2tlxfs&G9v+?^oE$wpLkHxCxV+51 zpq`U8J?Iq=RcTBdmD}Tiec6PD$Wbs$2cK1|XSmzG^#)(nW+>JjrW?6cJHKQR(*;O$ z0Xo={<=d*ABRV0~O9DB=&BnFq*bwvl_}Our0}-h22Zocsz#ToD4BC>>FB?=x>3KGS z9W`Zl-4XEh3{fJT;R+ArCldwKiRG|JR}zB@r!q~bA%%BMvb>*8vw^mPHLwEd5S_u~ zI2v8@DzuG%<8ssJ7$pW@F@b>R%C+*4EvPL;v*$*`i*(}K6Wol`bekL?vKeg3Br=!7 zfy`u@?EIm94($98)kc_XdnT$<`CQm}tUVi4EgZ;rGX6(4o1l#W_RT_^m9bYjW;bgk z`W8r@=Ud7Ouu*NJv>GB1CFda}ZrJ;}l_BBDp*xecnQUPq3|| zRb_gcA!5fRED%hp*IaU!<`BK5Q#~>|>^}O*qSXdA{uB=TP{`mMHKLh#@AHs&0jqkP z@O6*(s+=ZrpdPY^Kf|j0f9$>aV;V=&Km7h`{)!GF0Td2hRuVZ%f+b{YgN_wa>?~5y z2u2cXULbz1l@1osU<}CDXXhtXk zipR*Mh&``XaEVV?9@kN?L)d~b_8d$fbo78K&RE(sm(Q=CBY@1bJ8I)G0N+!bq#&~b zH9`(@Qa?RAITXLt8fW!pj051olaC>c0Vyrz0vPN&oXk9tw}6u$BV;UO=Yxc_?%hG| zIi7Z`EzM#e;k46{ofFAlKRi0!J32eu&73+6Lvxd{e=Sep9=@vtL%ad$257=UDVXz} z?CpqeHox7B7x28cOB+iHeRla$xWN+Dk&pVOjFRwsbhQx&qsG)3Tt8(wXPMswX=&B> zYY@NaU=97gxt=i!homk#s2^kw`~h0b<2A8=e+!f+)SbBJ)$5|xXdV%3p+SZH7_rWY z^TH%4nJ?B<#xIn=c6R#m=p^%E?B9r&({6}@&%ypFNS4N(p~)U^nab5T^BH8*zYcnf zpZ}mM+XNyqhSeXw{q%F-ob%tt1|0U_{I?3f*48)i{I{|8*ZJ>1b^cphS*6wW9CjR7 zqIhii{)YZu{RB+Ai{5vzvRHrr*O~9HGv9yRnXg$th5wzP`(%5k`3s)?)>p*erbC}5 zcl7WV;ddnwdy9id-|&ElN@`_Ii4uoQBwfhZlKk{;bqy} zK8Q%aZRK4mGw?|crqNa=gTB?REiCk+Rk9u~&{Zq57oe}a2b0Q&w5#8(RaQ5@t-zMJ zvQo02R!i%Zjmp!?CXL*jmTSqHstafEV9dC0Wd0$KX>#rH;${FR^a^BoNlEI`32$CE zx+P}NHU5DLG=`MkY`9JeWsKjoys8jk88y@RgM=zx#Tti4H(LhNsWB$jwe*+1Mr-LEzF|54w~u#~2KR&{H*wYW(<09OKz zjY}cr)U$tZoY{f0Z?Jo3^&KH#1P6K3K+@%m)d@# z_I$swfBI`?#^SMUQ-y5&YUP{C+Oy2uWssbAb+ximu}>dHyvh6}|2y)3`v$renIy&+ z>ipsNKdVnSo<0Tne|2pW4gzay>mdKHKiydQOaA{e{&Vej)cJaK^^xc6zwCJavg7&h zwBuRoU6XxV?U#D{unxN_91ivm(XtKAIiy5B^kHcHNwqgbxtwhnqB(b;$1`=WQqtE> zj%#fy%gsZ2cr41w7pXheI?@`<(8m9bCNLcF@52CbHxfR;P`-uJI(39T6WIK{u(#i+ zi{3MYcLs90wnu}#6??Pk zzB)T>9@lr2&ou|zVBZP0+1}Flx+EEEh4NnQV88JzCMDbt7SRd??mK7@k1INkAyS23 z!14SFf5|`Cjm4ta-gcyDM#X-oeD9#$r{ms$!w^WAs|q(A{~JL$_(?gu$Vx1a&;5fhQ##3yqxtI*#e+ennfYNXV{@8Sop zP7#aWZ#Iu>JN3fy?^f}@m&>~NufP61p#se}y^-icucekhv(dWLQF5a(_|O;dQGbIX z_xT{mp&qW;g3v0DA}x^Tyj{;@bK3<&KBlAY{_)!lh8mr)|{? ztEu|u9?^x{NtqivN58b|uXh^l2C$2*q}8B3LdlC1?~<8K&6pdy#qL~?+%J7DB;{Ll zBFwJQb#IJw4cT~Pe&Q?5qfIZ{o&3&CHRs=d)K9}>HMha)p-HV|s_Y7mX?g7F*uMOiD1eX<=vRTk~pR#!_Y!|rK(RgoM1 zw%M(n&-l+T8x<*fY>WNF+V1X2`|#+nZVy;Nk=a&)KoR{L-PcUMm^`S7rI8$nzYCJH z7o!t8A=?*DEoaXKWC#?{Jl>^Ta|%;L_s$MeOX)yt__KsW-0>)s1lM+zi|Nx~R^M)N z=O*?p2`693LW?P#O+BXtZ4|N#igZb6A@(a%Qz-EVvGS+)<>n(gb9152)IBp}M^m1x zk#)DgB1_!W6_?cA6X})_V|{2-COk9B_EVRsz7Xs?D5=?7Voe$hDb=m2sX7txNdW|Y ztE%R-z*Z_`bX1VN>K-kMMMoS^Z*`lcSa0gHua(cR4fy>oGbkA(Q`QkWijgAYbt?aG z+cq16y;0f;pc5%7nSI{TjB|uXaX92dEfTjZix3G)+uHQMI~^6I=#bcKm1Rcrsrbkm zNNJ_j2zwaTP;tRS!3WD?YF#vmScTF{Ypq@^(6OzRi%7N9+L>Dy$eL0e&9mbhhRy&p zq%(Rbq!4!a(ncwXtLh5+3PkXcWH(Dm{G}KhOXM`JY z14*BNJ>XJz20{;pTcjmtLtTG_hHN=~>26Z-E+r<9`6c(1CZeP)W?hc63njB8@A12H zWU-JTF89uTJM2wh=dxFGF@c>(qdk>r`Y)Y{IfI7@Tx593ZwzCb4l+u zz17*5pyq@kPl7VlvjnY^R1rziAEaJv-|}QDu@!5)hB#zYuS{B9F@@4yC99-#dk)eD z_?ZL>nU1WELBg^9I4bF-?p$tl6$^@Pjxm{g7FS9V3~}=>%-~Rxy*yJ3Cw`PNmE@$w zm|Un6BvdX&>p2on^7M=&Gf+CYG@nXD^PTmFxhXnF%jHDh>6A z%>VQEzXV=^<^Z4lYV@0@PgCxH*H-Y(*S-H;eY*MA{qLWH|L_IHJP2 zh|rv-H=KkfeuUB3gp)3we{hpUydsG{PtYY2u)302$^eZ*5!nrarDXN&+!DE;G!D`# zA~Sv7x}&m=An#BxAXBM4xrO8@^2r@t#}aZ5?t0iTj-?RL^(flkqp5uc)DUG(-vKqg|OW;zsAz@4Ugfl4>^NK!Qb4g5~MKs)oZpGa3YpaefgJXMeA`or8a# z3H+7cLYy<)_^50IBtwk(jK&D3a3ZK z=+d5j_YA%*lbN-dNHF(K!k+E_qrO!(Nj_ZScsfCMlW4{ygh-QU&Q#2d!xjE(FeM*K zyO%J1E;2lL%|7(+d@Fcxbh_c#Lh9{Ht8$`TRs^gbdVh$jEicNfd}iU_DFWN7^E(rA^%MFr9;3g?9uM%<%N zjMeOAq-!<7|CX*z5GE@5XXI;Y)%KaYVe6%sTg~WYm|M%}C74^!#2QXHtXZl-TC-PP zH=8jVj+I)JZ}8b!|A{1Sf*_qne=!=7YUp}n>lUv!rHn(hlwzUvqn3d+mH%i~^?7&3kw5P1ZSc5$ z(r{QhzSt^bnhz01gI{KJ5s}r*+|_dSFEbVDULJ`XE#I| zQ}IA6AQ^`;dQgR+KlwMtGBG~`{nNZu?+)MqNyi-bu>!>Tjn_d%Xdk4p*o(@Q_eQ-$ z$&PAWxwT($^^@OOWlSf*U}NG}I%vuyUm{S4shG@kGewQL^Qs@*L|#nXXQ}vg-%YQa z7udn)(lBy_CCex1QxZ!nqmFq)bIo}&y<=XW{H|V3(9ymU-s)%e6$`C=lW=xzzjLNsG?&F$}INav+g$EQqpD>E{XFhID8NWist5qSv zhQS?7;Y@7xsSse6pq0tJvt%+5ZO{}R{?J@Otw*`6!-b&gCu=b&6{!R@_kI^`vc)S@ zPOvgWjo@nKY2~#jyoU4G+GdfX=d zVA!(FILvgmhZki?a~V~)Zr>(MK{D5)71M`ad`k+_ zw@4wqYh&FCoq2u*xxR*@Q29K(C{~$7Znb)okF_YRHH40z#^vN}M;4c`0`_sex2i()=_k+ngtDV5N@bKx6si|kDM-0)qRW@Hfn6~M6 z3pCFz0^g_t5WSqq<6D558eBb2%r^#3Y3QWwI#lh2;?5VK>~#sv%L>Z7%|(aAx{H>6H>RF9Ra zUEi6E!pM>qXP0{drNkTD?Ms(pnpQ;D=c^NG%q7JDT2qjzTvUD^v!fv4#W13MZ2-KFraCu(0bMi(M6b zTqEMNF_jb_rDxFUFHS3=S}7WmMcZR*N}SR8i1yeTlf`JwXir3Cv0!@~4T>|b9^W2E zld>2st6EytODrlP&CSuS*sDS5LL*bA;`VqYQsFegQ1Rv2IvSJJwnMR)586lf@CwA< z9CDE=r|E5sh^7z5s!Z00MCG*4yPxgJJ;JdgLq;F#tfQZ^j*yteAI6@#D(psKpr!VWGd9-)>s&-Nr`%Q6t za`emoZhco|YfX60mc*<5)0anQrvg%()DBO76-RrbcKECKdH-;?B7 zZU@JW{W`qeKip}Y?d~7G5YHj!;nAsR>>uo(0@>3eDpC^LuQ!q0LH%UsB|J(zCNwA7 z+dn--x_d__q9%@OC#U;6XN}s4I6gZ$K5EvX3cEn~aQ|@c1j?x&)DKS)z~c~Jiuy0` zB$_X4jRuwmrkEA^G2PiLtAzlwf%#V*sUGZUSO3@#1Z5>p=4Yo z@#Ndm5NwFnOOQwsOu8r35@ij za9_MByd5i0F>Q9FYFehagVO=E8RtrKkFd;cIG!|>Kv!3^PGuBz;sp}fSh84XDub0H z(<7!YjM%|IFbKhniumBI5r`|uXQ<)+TVRJkDUYg*JOjdXdT58#SDOogRx_KWDs_}* zgts+H)0I%HMrjr%={jR~ALlIaG$$#(9YDysa!y`06*MqY!!jGu#iy)FyxU zwl@xjWH$WPLzL=F=k{idmQgoQ^PQJ3PL8SS^!5XMguO|BJUH5wAK@*24DN>d~1vN`ThXi=8?k&0_LA zR<@#2uAz(x|63n-WnyGss%*-kYNYdQOn?D%Gytapnat5h%2zaP%4G_GOqch)aMbr6 zm~+uvW$<57X_fv%r&TX{!|T9G4(ZDsTf{u#9!hJ^Pu;r|B-)xKknYr` zIra%o)*A}g%MrKjTFpWkn^3Jg7~8tb?BxY4?*3!6BBqe%GN`eeHvyqJzR>Jl zNNz5ee+$j81@mXf&rDfpCY*sin9bFRx#pHcdFYE3X{^DQ3ajceq1-8=uAP6wVKKsH zFc6{s+${>ln4I@FkWI0}tTjV&YuU_`@V0k7(Mf4h6_pzUF)G-hIpX(^I@O>^EEr84 zpKyJNBljrW{c>L9m&JSd`$YcDK0HANFz8Wx3S?Pg-?&lBiN$=k7&AaaaB4(?2(lmTgB@(d`T zHri(8aVXiynI&V?5x|~`Q(JbCBqw{Rj2+P0J};aXzql}ERjMjoS`$x;B57A~23)Z_ zJ&-G~_G}$W!kCteTu|l-yD_Wx%f%=0v0+0d7@bu)G<^T>L%M)5oQKUtfr~J2typv>h7K?OaDuuc zsdLeQSPIyhvmUAQQOU4(?Rq9-@>rDM+$v4~&7@kOjBk<_jfdC;(WbMr zQtl^(j7*4bTUHR35M6IjX$8FsITd0F3TD@^gQ4@vPg#qy`i`RllqrpUFQPth9fes9 z>cyul2@O_guL`cvA`62U0naL$PqyUDv(Mq$ROG$%o?TXPR9&6Z6&)v)s+=6R?^eJcH=ChqvIjh}=5l)1f{~YE6>Yw`Xug z8KIQ90yPYraG9UYsqFVCsn*{r@HxgNR*j`=x?imaOXUS6YtdHv}_Qy5% zG76UiWkrYq;|O7dx!LB% z2J9=NHq{z>WL@33!%4&Xu(qc8Uu&iOjrK}+hDz-@YOJ12+oS$8Y>)4@ZS)lDb^c3? zM3i?u%7iKQ5>abKzK|E+eDjSc%Z7a^@R~#9i+PdLv@TV}KU398)33*OsTHG&n8M9o zfb*9;iN>7_F~3h^B|Mx!Ov_9z3&CR>un+iSs*s8D+c;mqgC1s54|oVg9z@T^Bapvj ztyJo+Irn2mcA1=Gue{#GKw9-wERU{_O(*1j+B`sTk@6X~2@9AEMp-42N?L4`!;!cm z`y7zu#nja|8!BR+PfU%%4qkbR6m$fYRA9w4EH+tY(d;cCxmBE9>I-(3gnY*A^b770 ze3#@D3mlfp=?1>s!|r?G#Nw{e+vd2@NaD8WFmQVhPvYS58*Mq#lC&DD{p*-GV9pXH zg4~ud{mhnullK{PHfo;GFw*pIH<+R}PX%$5UfS|#>2|D|RBjuc$(kVl={0NhwQSLr z*mo-LNNmx?8=dE-bI>&Q@(Pw3sh4?_FP&U!-mgS8Jh;43*NS!Euyd%nyr!!Tuk(iD zx$~_CgTB*Yno^PhU087|cbR!oP~W+$9K93zm_8w%_?o|pEs=kHUZ^a$eyd)b7pqnJ zf&W{sF6Z*%{Jl8m!$l-VwR&E}WOI_tBynD(ua$TWaiCP<_na9O^7-m-R%Oqt=T>#$ zcdq&_^W+H`?N-lMtNi7i zM7HTV`b+l*)&#auV3+zei;d?TDyXDfu~rc85tcsD2%PzR5zlu!EPoKD?7;8#q#7oa z*7&rk!hVku3+r(V!=~-7f<#ENL)QS*fFrUJ>dBQ*n8&=qHQx7rQ(j#uuYC)7F-~8r+|Ao^zcNA~K^aqcVLR6MlS}SW8_&?YpE79L> zMwVxu7;%Q?sGWjE4_V2t#oC%)1t^E`YZ64@-;EVWq2H~oq$I_ZPC`y~$@O1OYFgA~^t{z2VtCh8Nl6Ln`Alqi;sT$aU9@`r@6^+Uw z7^|!#7?<(PL*b+_urkJ<_DCb`;2cndUyh;-Qiv{F4fbYbHC~*$aUqcn`Jts(rTqP{ z-S4*LkYDygQSNumz+G}8p3-(wn%Uf;-5=q<@{i;4a?$A0d69gxvVv2~Nmouv_w=br z2cKyrsW-?ScqX7K+ROu3oi3TkY#{meouX=2zP*~-Qhjk|rzdBuoJ%3g=|9N*Q*M+v zNH$B@QeS{sJW=MFsmnxaN+q-5^(}Q!Xe30tTHn7$d;VL*TDd}}woVTxirgEuO9A^U zx@E#y%33;=Ds&h8Q??f;XHb>p^$n|3F=<6_tsi`o@7 z_~=VLyk!JcEvcTW{Tw;sxYxyabip(vgEX#{KE9weSTG*ok&D)MNfW_)h>3LmP(Z`b z?^80V@WdG5_AMk{C3{fp97)2gSTemp%$+-rLZ-C|R6R(i7Dp8=Y z734EMR^2hj^n&k^W4cROeOqUllKJavtArdDtE#}Q@WXBO0{g71M9?7fgjOs{ zLR^Ct0V2SF4_Sa8bpWutd}4DMDPmJ1DXl!>1v)H z?42d%sLM4fk?Je-JFT|(fUSz>aqwi!ApPcTQA}OAK0p2GVgL?r(1!FHzapFo8Z*nY4+kP30|IH; zXA>=ne@>x3^2{O)LiJ?T8q}O?9--yH5%JH z0;TqDzadxt6B}8~$}{xu((+*KW7$-`nG%sjKQ8!KAMwR&flyPpys-LPxwWm_##Zj> zR&Fz%5cM075bK5p%{5jsEfMatkUUd!euDjh;K z5aV!bjB9@q`u%G<6(kTLKMQ@PB6vNhvpP6vIx<=(v_duR9f}u+AnP+^3mrP>*e2mO zA8;Z_^XG|kL7{NVNqP0kC&WU&V*>F6P7a~8-G$-cCQgU_-tdiV2&%WRv6xxm`+4$y z!!CtN=BuYGL`w`g>Itn?%nO5tP8G;!r7<{4g(W$-c%w}_8Ej-sgk-2I8POAF9Ma&+ zcT!KlDTkt(E4ydMJMhUnEen02Cqh<=NOG2tJ*V|Cs)R?@l{lfS-O|pZWb$_j1;mp- z6I;*tQ2#-fX6|QT7;qzz*PeM1)WX7py%YsYjiPPBV(#hDM z<<~t+8p=4wcorQcf{k-+i!%DRd0-0fkiFSj1bU#_eT@Sko4{&^WmNk9JuRfWW7r#q3a{;&)0 zr4Lz_08+bKe|d)f(f*%+75A->htGtU$Wem9=j+|3C5cFaOU! zfBYHtSJ~cH1{;5L{P&ghZ`L*<{=e(+?l1q}KgIud`Sbmk`K-hUexPq4GRfXZ0v+Y? zdaxpX_WcnGa30D~H+VLt;F=Zkq#C0e=C_$lci0y@6yW3Nm-@-c{%*akpo!?)<8cu% z*KyzLNIzbbfRqE=!0U`r>*V5Yd)E^X!!R4}{)jma>1#Xf{looJafgx=ona}nan~ak zYs~bv#{u!Q^bk&z8zIAfu?#5JEXJ7UqEI72=iZuxTdHI-Q0i`d@9eP9O6ik}l4xP7 z=k>j#lX{_*Te&E;;290%+Y+Mr0!0J9evh$>41A>WkCgeoDm@=!n;W&m7ewr&c7R^i zpD+gMQok#ERJsN#sLHW|`J=>ng=7wbSEuidmH7~g+~npy2{4>fo)W_l=;Y+O$Yp7J zMrF}UiD3$S`<*Ei#dCcX0VfGONc{ZO3H1G7quuqdF+O)I(h<-P7o|)qw@Ojku|!dL z8}zyuay_?}5zjIz7|qJF%!fsKcn7_3KTr31WDG>@fLUjiwN}|&F)sF)#fRnBMek@C zKAZs-#cgk*X7034x0KS25%chgs#}Q-=h*K~I~K-0g@)rECoD#ksqfJ=fYuzXolsX# z1861pJ9dxk^ypCFC_s+hHT+t`)qukRe<5jRsdo*OM7!NV+e!Ri#=nQPJrr4#QW4kd zIzw@za%-Yce0EVp0&?i|s|AJ+R_G3fg#NjGdh+XE*PCum#D2^NFWA~k5(3u9) zunps^$Fq65yVGuy!!-H#i|+{#A*|f~0K&l9xSvrpN|*oEH`X@Sl>EQ` z&E_h|e``6nw;nWbyD=5y-shEkCv|Ao116n~()^A-4)Va1H9(`pql< zt5*KUO8L9?1y;W8)Vf(e{d`r}ZeZb9SucB1(hA4U*wu+KoWDHdT5 zW>E)H+ezh2F)2$LLwJ5FEL{rTh1S{d%`mv5?Me1wKDU;~@oHUQ>DIXI@68!DUL{p}S%o zC0&6hYl+qF^Sjni#5~eg#aa_^q-_&^ zBlfwPh?=VT%50HDyJ$8VxJ<$%HtR5T*d8-fkksyS65@enbo_GYk30@kLGjW-pl?WM zNi|#sLkw|laGNp};`?^IwvsdbmRL&yr^2H$LgGVyyi(A-85aNkVclh6bVeYa_{;(; zA{=CoKw)@;BUFr^VwoSlG3K` zX#AMK1WXk~tJ@DoKDM;w5AklN%`dixXgERcjdKXx^@i(f + + + + + + + +$projectname Module API: $title +$title + + + +$treeview +$search +$mathjax + +$extrastylesheet + + +

+ + +
+ + + + + + + + + + + + + + + + + + + + + +
+
$projectname +  Module API $projectnumber +
+
$projectbrief
+
+
$projectbrief
+
$searchbox
+
+ + diff --git a/extras/patches/patch_spamfilter_conf b/extras/patches/patch_spamfilter_conf new file mode 100755 index 0000000..7589f7f --- /dev/null +++ b/extras/patches/patch_spamfilter_conf @@ -0,0 +1,40 @@ +#!/bin/sh +# +# This script tries to upgrade spamfilter.conf from an old +# version that uses 'posix' spamfilters to a bit more recent +# version with examples using 'regex' spamfilters. +# This so fewer users end up with a headache when upgrading +# to UnrealIRCd 4.2.3+. +# + +if [ -f spamfilter.conf.patch ]; then + F="`pwd`/spamfilter.conf.patch" +elif [ -f extras/patches/spamfilter.conf.patch ]; then + F="`pwd`/extras/patches/spamfilter.conf.patch" +else + echo "WARNING: spamfilter.conf.patch not found" + exit 0 +fi + +if [ ! -f "$F" ]; then + echo "WARNING: spamfilter.conf.patch not found in round two" + exit 0 +fi + +if [ "$1" = "" ]; then + echo "ERROR: No target confdir specified." + exit 0 +fi + +if [ ! -f "$1/spamfilter.conf" ]; then + echo "WARNING: no spamfilter.conf found in $1 -- strange" + exit 0 +fi + +cd "$1" || exit 1 +cat "$F"|patch -p0 --dry-run -N 1>/dev/null 2>&1 +if [ "$?" = 0 ]; then + # Patch succeeded, patch now! + echo "Upgrading examples in your spamfilter.conf..." + cat "$F"|patch -p0 -N +fi diff --git a/extras/patches/spamfilter.conf.patch b/extras/patches/spamfilter.conf.patch new file mode 100644 index 0000000..aba16d1 --- /dev/null +++ b/extras/patches/spamfilter.conf.patch @@ -0,0 +1,328 @@ +--- spamfilter.conf.old 2015-06-27 18:29:01.084559805 +0200 ++++ spamfilter.conf 2019-04-04 18:29:38.390647262 +0200 +@@ -1,232 +1,154 @@ + /* +- * This an example spamfilter file, it contains several +- * real and useful spamfilters. This should give you an +- * idea of how powerful spamfilter can be in real-life +- * situations. ++ * This configuration file contains example spamfilter rules. ++ * They are real rules that were useful a long time ago. ++ * Since 2005 these rules are no longer maintained. ++ * The main purpose nowadays is to serve as an example ++ * to give you an idea of how powerful spamfilters can ++ * be in real-life situations. + * +- * $Id$ ++ * Documentation on spamfilter is available at: ++ * https://www.unrealircd.org/docs/Spamfilter + */ + +-/* Guidelines on the 'action' field: +- * As a general rule we use 'action block' for any newly added +- * spamfilters at first, later on (after knowing about false +- * positives) we might change some to viruschan/kill/gline/etc.. ++/* General note: ++ * If you want to use a \ in a spamfilter, or in fact ++ * anywhere in the configuration file, then you need ++ * to escape this to \\ instead. + */ + +-spamfilter { +- match-type posix; +- match "\x01DCC (SEND|RESUME)[ ]+\"(.+ ){20}"; +- target { private; channel; }; +- action kill; +- reason "mIRC 6.0-6.11 exploit attempt"; +-}; + +-spamfilter { +- match-type posix; +- match "\x01DCC (SEND|RESUME).{225}"; +- target { private; channel; }; +- action kill; +- reason "Possible mIRC 6.12 exploit attempt"; +-}; ++/* First some spamfilters with match-type 'simple'. ++ * The only matchers available are * and ? ++ * PRO's: very fast, easy matching: everyone can do this. ++ * CON's: limited ability to fine-tune spamfilters ++ */ + + spamfilter { +- match-type posix; +- match "Come watch me on my webcam and chat /w me :-\) http://.+:\d+/me\.mpg"; ++ match-type simple; ++ match "Come watch me on my webcam and chat /w me :-) http://*:*/me.mpg"; + target private; + action gline; + reason "Infected by fyle trojan: see http://www.sophos.com/virusinfo/analyses/trojfylexa.html"; + }; + ++/* This signature uses a \ which has to escaped to \\ in the configuration file */ + spamfilter { +- match-type posix; +- match "Speed up your mIRC DCC Transfer by up to 75%.*www\.freewebs\.com/mircupdate/mircspeedup\.exe"; +- target private; +- action gline; +- reason "Infected by mirseed trojan: see http://www.sophos.com/virusinfo/analyses/trojmirseeda.html"; +-}; +- +-spamfilter { +- match-type posix; +- match "^http://www\.angelfire\.com/[a-z0-9]+/[a-z0-9]+/[a-z_]+\.jpg <- .*!"; +- target private; ++ match-type simple; ++ match "C:\\WINNT\\system32\\*.zip"; ++ target dcc; + action block; +- reason "Infected by fagot worm: see http://www.f-secure.com/v-descs/fagot.shtml"; ++ reason "Infected by Gaggle worm?"; + }; + + spamfilter { +- match-type posix; +- match "^FREE PORN: http://free:porn@([0-9]{1,3}\.){3}[0-9]{1,3}:8180$"; ++ match-type simple; ++ match "Speed up your mIRC DCC Transfer by up to 75%*www.freewebs.com/mircupdate/mircspeedup.exe"; + target private; + action gline; +- reason "Infected by aplore worm: see http://www.f-secure.com/v-descs/aplore.shtml"; +-}; +- +-spamfilter { +- match-type posix; +- match "^!login Wasszup!$"; +- target channel; +- action gline; +- reason "Attempting to login to a GTBot"; +-}; +- +-spamfilter { +- match-type posix; +- match "^!login grrrr yeah baby!$"; +- target channel; +- action gline; +- reason "Attempting to login to a GTBot"; +-}; +- +-spamfilter { +- match-type posix; +- match "^!packet ([0-9]{1,3}\.){3}[0-9]{1,3} [0-9]{1,15}"; +- target channel; +- action gline; +- reason "Attempting to use a GTBot"; +-}; +- +-spamfilter { +- match-type posix; +- match "^!icqpagebomb ([0-9]{1,15} ){2}.+"; +- target channel; +- action gline; +- reason "Attempting to use a GTBot"; ++ reason "Infected by mirseed trojan: see http://www.sophos.com/virusinfo/analyses/trojmirseeda.html"; + }; + + spamfilter { +- match-type posix; +- match "^!pfast [0-9]{1,15} ([0-9]{1,3}\.){3}[0-9]{1,3} [0-9]{1,5}$"; +- target channel; ++ match-type simple; ++ match "STOP SPAM, USE THIS COMMAND: //write nospam $decode(*) | .load -rs nospam | //mode $me +R"; ++ target private; + action gline; +- reason "Attempting to use a GTBot"; ++ reason "Infected by nkie worm: see http://www.trojaninfo.com/nkie/nkie.htm"; + }; + +-spamfilter { +- match-type posix; +- match "^!portscan ([0-9]{1,3}\.){3}[0-9]{1,3} [0-9]{1,5} [0-9]{1,5}$"; +- target channel; +- action gline; +- reason "Attempting to use a GTBot"; +-}; + +-spamfilter { +- match-type posix; +- match "^.u(dp)? ([0-9]{1,3}\.){3}[0-9]{1,3} [0-9]{1,15} [0-9]{1,15} [0-9]{1,15}( [0-9])*$"; +- target channel; +- action gline; +- reason "Attempting to use an SDBot"; +-}; ++/* Now spamfilters of type 'regex'. ++ * These use powerful regular expressions (Perl/PCRE style) ++ * You may have to learn more about "regex" first before you ++ * can use them. For example the dot ('.') has special meaning. ++ */ + ++/* This regex shows a pattern which requires 20 paramaters, ++ * such as "x x x x x x x x x x x x x x x x x x x x" ++ */ + spamfilter { +- match-type posix; +- match "^.syn ((([0-9]{1,3}\.){3}[0-9]{1,3})|([a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+\.[a-zA-Z0-9_.-]+)) [0-9]{1,5} [0-9]{1,15} [0-9]{1,15}"; +- target { channel; private; }; +- action gline; +- reason "Attempting to use a SpyBot"; ++ match-type regex; ++ match "\x01DCC (SEND|RESUME)[ ]+\"(.+ ){20}"; ++ target { private; channel; }; ++ action kill; ++ reason "mIRC 6.0-6.11 exploit attempt"; + }; + ++/* Similarly, this regex shows a pattern that matches ++ * against at least 225 characters in length. ++ */ + spamfilter { +- match-type posix; +- match "^porn! porno! http://.+\/sexo\.exe"; +- target private; +- action gline; +- reason "Infected by soex trojan: see http://www.trendmicro.com/vinfo/virusencyclo/default5.asp?VName=TROJ%5FSOEX.A"; ++ match-type regex; ++ match "\x01DCC (SEND|RESUME).{225}"; ++ target { private; channel; }; ++ action kill; ++ reason "Possible mIRC 6.12 exploit attempt"; + }; + ++/* Earlier you saw an example of a $decode exploit which used ++ * match-type 'simple' and - indeed - the filter was quite simple. ++ * The following uses a regex with a similar example. ++ * Regular expressions are very powerful but here you can see ++ * that it actually complicates writing a filter quite a bit. ++ * With regex in this filter we need to escape the ( and all ++ * the dots, question marks, etc. if we want to match these ++ * characters in literal text. ++ */ + spamfilter { +- match-type posix; +- match "(^wait a minute plz\. i am updating my site|.*my erotic video).*http://.+/erotic(a)?/myvideo\.exe$"; ++ match-type regex; ++ match "^Want To Be An IRCOp\? Try This New Bug Type: //write \$decode\(.+=.?,m\) \| \.load -rs \$decode\(.+=.?,m\)$"; + target private; +- action gline; +- reason "Infected by some trojan (erotica?)"; ++ action block; ++ reason "Spamming users with an mIRC trojan. Type '/unload -rs newb' to remove the trojan."; + }; + + spamfilter { +- match-type posix; +- match "^STOP SPAM, USE THIS COMMAND: //write nospam \$decode\(.+\) \| \.load -rs nospam \| //mode \$me \+R$"; ++ match-type regex; ++ match "^http://www\.angelfire\.com/[a-z0-9]+/[a-z0-9]+/[a-z_]+\.jpg <- .*!"; + target private; +- action gline; +- reason "Infected by nkie worm: see http://www.trojaninfo.com/nkie/nkie.htm"; ++ action block; ++ reason "Infected by fagot worm: see http://www.f-secure.com/v-descs/fagot.shtml"; + }; + ++/* This shows a regex which specifically matches an entire line by ++ * the use of ^ and $ ++ */ + spamfilter { +- match-type posix; +- match "^FOR MATRIX 2 DOWNLOAD, USE THIS COMMAND: //write Matrix2 \$decode\(.+=,m\) \| \.load -rs Matrix2 \| //mode \$me \+R$"; +- target private; ++ match-type regex; ++ match "^!login Wasszup!$"; ++ target channel; + action gline; +- reason "Infected by nkie worm: see http://www.trojaninfo.com/nkie/nkie.htm"; ++ reason "Attempting to login to a GTBot"; + }; + ++/* An example of how to match against an IP address in text (IPv4 only) */ + spamfilter { +- match-type posix; +- match "^hey .* to get OPs use this hack in the chan but SHH! //\$decode\(.*,m\) \| \$decode\(.*,m\)$"; +- target private; ++ match-type regex; ++ match "^!packet ([0-9]{1,3}\.){3}[0-9]{1,3} [0-9]{1,15}"; ++ target channel; + action gline; +- reason "Infected by nkie worm: see http://www.trojaninfo.com/nkie/nkie.htm"; ++ reason "Attempting to use a GTBot"; + }; + ++/* A slightly more complex example with a partial OR matcher (|) */ + spamfilter { +- match-type posix; +- match ".*(http://jokes\.clubdepeche\.com|http://horny\.69sexy\.net|http://private\.a123sdsdssddddgfg\.com).*"; ++ match-type regex; ++ match "(^wait a minute plz\. i am updating my site|.*my erotic video).*http://.+/erotic(a)?/myvideo\.exe$"; + target private; + action gline; +- reason "Infected by LOI trojan"; +-}; +- +-/* This is a 'general sig' which might have a tad more false positives, hence just 'block' is used */ +-spamfilter { +- match-type posix; +- match "C:\\WINNT\\system32\\[][0-9a-z_-{|}`]+\.zip"; +- target dcc; +- action block; +- reason "Infected by Gaggle worm?"; ++ reason "Infected by some trojan (erotica?)"; + }; + ++/* In regex a \ is special and needs to be escaped to \\ ++ * However in this configuration file, \ is also special and ++ * needs to be escaped to \\ as well. ++ * The result is that we need double escaping: ++ * To match a \ you need to write \\\\ in the configuration file. ++ */ + spamfilter { +- match-type posix; +- match "C:\\WINNT\\system32\\(notes|videos|xxx|ManualSeduccion|postal|hechizos|images|sex|avril)\.zip"; ++ match-type regex; ++ match "C:\\\\WINNT\\\\system32\\\\(notes|videos|xxx|ManualSeduccion|postal|hechizos|images|sex|avril)\.zip"; + target dcc; + action dccblock; + reason "Infected by Gaggle worm"; + }; +- +-spamfilter { +- match-type posix; +- match "http://.+\.lycos\..+/[iy]server[0-9]/[a-z]{4,11}\.(gif|jpg|avi|txt)"; +- target { private; quit; }; +- action block; +- reason "Infected by Gaggle worm"; +-}; +- +-spamfilter { +- match-type posix; +- match "^Free porn pic.? and movies (www\.sexymovies\.da\.ru|www\.girlporn\.org)"; +- target private; +- action block; +- reason "Unknown virus. Site causes Backdoor.Delf.lq infection"; +-}; +- +-spamfilter { +- match-type posix; +- match "^LOL! //echo -a \$\(\$decode\(.+,m\),[0-9]\)$"; +- target channel; +- action block; +- reason "$decode exploit"; +-}; +- +-/* +-spamfilter { +- regex "//write \$decode\(.+\|.+load -rs"; +- target { private; channel; }; +- reason "Generic $decode exploit"; +- action block; +-}; +-*/ +- +-spamfilter { +- match-type posix; +- match "^Want To Be An IRCOp\? Try This New Bug Type: //write \$decode\(.+=.?,m\) \| \.load -rs \$decode\(.+=.?,m\)$"; +- target private; +- action block; +- reason "Spamming users with an mIRC trojan. Type '/unload -rs newb' to remove the trojan."; +-}; diff --git a/extras/pcre2.tar.gz b/extras/pcre2.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..3d7de9786b85a2a5e90a0d9f4dd79d73b31b5600 GIT binary patch literal 2234905 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 z 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 z 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
ip6?L&Cx*KBa>DK1s$Krw5eDrv0^KXCK`u5?w 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