diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index 29f828cff53..e3ae14b16ab 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -288,6 +288,7 @@ https://github.com/elastic/beats/compare/v6.2.3...master[Check the HEAD diff] - Update `state_container` metricset to support latest `kube-state-metrics` version. {pull}7216[7216] - Collect accumulated docker network metrics and mark old ones as deprecated. {pull}7253[7253] - Add TLS support to MongoDB module. {pull}7401[7401] +- Added Traefik module with health metricset. {pull}7413[7413] *Packetbeat* diff --git a/metricbeat/docker-compose.yml b/metricbeat/docker-compose.yml index 537ecaabcb4..8bb5435df2f 100644 --- a/metricbeat/docker-compose.yml +++ b/metricbeat/docker-compose.yml @@ -35,6 +35,7 @@ services: - ./module/prometheus/_meta/env - ./module/rabbitmq/_meta/env - ./module/redis/_meta/env + - ./module/traefik/_meta/env - ./module/uwsgi/_meta/env - ./module/zookeeper/_meta/env @@ -147,6 +148,9 @@ services: redis: build: ./module/redis/_meta + traefik: + build: ./module/traefik/_meta + uwsgi_tcp: build: ./module/uwsgi/_meta command: uwsgi --http :8080 --master --processes 1 --threads 2 --stats 0.0.0.0:9191 --memory-report --wsgi-file app.py diff --git a/metricbeat/docs/fields.asciidoc b/metricbeat/docs/fields.asciidoc index 7379fcbc8c6..a57d8d00c9b 100644 --- a/metricbeat/docs/fields.asciidoc +++ b/metricbeat/docs/fields.asciidoc @@ -47,6 +47,7 @@ grouped in the following categories: * <> * <> * <> +* <> * <> * <> * <> @@ -16414,6 +16415,74 @@ format: duration The OS uptime in milliseconds. +-- + +[[exported-fields-traefik]] +== traefik fields + +Traefik reverse proxy / load balancer metrics + + + +[float] +== traefik fields + +Traefik reverse proxy / load balancer metrics + + + +[float] +== health fields + +Metrics obtained from Traefik's health API endpoint + + + +*`traefik.health.uptime.sec`*:: ++ +-- +type: long + +Uptime of Traefik instance in seconds + + +-- + +[float] +== response fields + +Response metrics + + + +*`traefik.health.response.count`*:: ++ +-- +type: long + +Number of responses + + +-- + +*`traefik.health.response.avg_time.us`*:: ++ +-- +type: long + +Average response time in microseconds + + +-- + +*`traefik.health.response.status_code`*:: ++ +-- +type: object + +Number of responses per status code + + -- [[exported-fields-uwsgi]] diff --git a/metricbeat/docs/modules/traefik.asciidoc b/metricbeat/docs/modules/traefik.asciidoc new file mode 100644 index 00000000000..0dfaa5d9759 --- /dev/null +++ b/metricbeat/docs/modules/traefik.asciidoc @@ -0,0 +1,41 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-module-traefik]] +== traefik module + +experimental[] + +This module periodically fetches metrics from a https://traefik.io/[Traefik] +instance. The Traefik instance must be configured to expose it's HTTP API. + +=== Compatibility + +The Traefik metricsets were tested with Traefik 1.6. + + +[float] +=== Example configuration + +The traefik module supports the standard configuration options that are described +in <>. Here is an example configuration: + +[source,yaml] +---- +metricbeat.modules: +- module: traefik + metricsets: ["health"] + period: 10s + hosts: ["localhost:8080"] +---- + +[float] +=== Metricsets + +The following metricsets are available: + +* <> + +include::traefik/health.asciidoc[] + diff --git a/metricbeat/docs/modules/traefik/health.asciidoc b/metricbeat/docs/modules/traefik/health.asciidoc new file mode 100644 index 00000000000..c282d1fad0a --- /dev/null +++ b/metricbeat/docs/modules/traefik/health.asciidoc @@ -0,0 +1,23 @@ +//// +This file is generated! See scripts/docs_collector.py +//// + +[[metricbeat-metricset-traefik-health]] +=== traefik health metricset + +experimental[] + +include::../../../module/traefik/health/_meta/docs.asciidoc[] + + +==== Fields + +For a description of each field in the metricset, see the +<> section. + +Here is an example document generated by this metricset: + +[source,json] +---- +include::../../../module/traefik/health/_meta/data.json[] +---- diff --git a/metricbeat/docs/modules_list.asciidoc b/metricbeat/docs/modules_list.asciidoc index 11932109bba..8638ba8ba6b 100644 --- a/metricbeat/docs/modules_list.asciidoc +++ b/metricbeat/docs/modules_list.asciidoc @@ -125,6 +125,8 @@ This file is generated! See scripts/docs_collector.py |<> beta[] |<> beta[] |<> +|<> experimental[] |image:./images/icon-no.png[No prebuilt dashboards] | +.1+| .1+| |<> experimental[] |<> beta[] |image:./images/icon-yes.png[Prebuilt dashboards are available] | .1+| .1+| |<> beta[] |<> beta[] |image:./images/icon-no.png[No prebuilt dashboards] | @@ -169,6 +171,7 @@ include::modules/prometheus.asciidoc[] include::modules/rabbitmq.asciidoc[] include::modules/redis.asciidoc[] include::modules/system.asciidoc[] +include::modules/traefik.asciidoc[] include::modules/uwsgi.asciidoc[] include::modules/vsphere.asciidoc[] include::modules/windows.asciidoc[] diff --git a/metricbeat/include/fields.go b/metricbeat/include/fields.go index 465b9ac559b..901c466d2c2 100644 --- a/metricbeat/include/fields.go +++ b/metricbeat/include/fields.go @@ -31,5 +31,5 @@ func init() { // Asset returns asset data func Asset() string { - return "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" + return "eJzs/WtzHLmRN4q/96dA6B//GGqX6pmxx/YTc2I3jobSeLTWhY9I2eeJjY0WugrdDbMKqAFQbPbE+fAnkADqCtStq5qULb6wR2R35g8JIJGZSGT+7gW6I8cf0YZg9TuEFFUJ+RH9ZP4VExkJminK2Y/oP3+HEEJXnClMmUQRT1PO4HtoS0kSS4TvMU3wJiGIMoSTBJF7whRSx4zI1e+Q/diPvwNCLxDDKTGMV/o/4bdenvrndk/gC4hvkdoTQIgkYTFlO/hFwncoJVLiHZEr9KbyKfgalQUpSZQGqP8ecbalu1xgzQ5taUIu9e/1H7FC9zjJ9TdRLkkMNKnS/2RcVYnBV9CeS2U52c/fcmBVw3Gp/wa/+qz/+bmgw2HEYVyrttAcx37BFdiwRIKoXDASo80RWPGMaDZsh+RRKpIiztBhT6N9CbwiO5EzRtnOg0bRlPzG2QA07pNLorknQlLO+sHYD7plBcsZJn9HmIZCYqT2VJqlvKov3Wf/tx6KVDjNnlmieq3/iGKsnBwE+TWngsQ/IiVy98stFylWtc+RB5xmeuu9zHe5VOj3f1J79Pvvvv/TJfr+9z/+4Y8//vEPqz/84ffDpAuQ0MEsZGK3od4ggkRcxOiAZTm+xqAU3sluLi/FhiqBxRE+a6QVYa0KYL1nRJiJwiyGfyiBmcSRKufDyKnB2GiHmhz55h8kcnvN/GNt/nJHjgcu4m6gha7KJRHlntIKyjBrICBCcFEDsBM8z7qZvNZfchowMhz1+sVxTPVncYIo23K9syMsQX8BH7lyi8FqRUfQobHKrPi9w6TIg6r8MgCrhGbprFoMIh63qSec7cZQ10TapDWtFun6nA2ibpaJPaKihOdxeUZd6X+iTPB7GhM9TIVjrLD/2Hpn/4q2gqeGUvFVqeeqVEE4jtfwgbUjqT8ZESm5CJ5i+qMr+NbKkW1ubBL17N73leOtjnCFrrmUVC9cOJMkwoJogpdoF5FLxAWK6Y4qnPCIYLYKYqNMKswisqY9W+eN/SB688pB0ocISnG0p6y5dX0c+k+mgkf1XB/GxX5gXVlnhZzV71cpiWmednN/Z0jAEhvH3Jo5NKHquK4ceQWCXL4gWKoX30c9irRCCMGJSMvTjkoDh8rymOtYcqAbi1ktoNi/vHgYvvTsVzSWv3C+S4jZaWHugux6j9qP8Jm+8dmNHvPoDvaP3emv3L89xM3fkFRYafWbJCTSZzZsc/M3vWflngu1NifAj2iLE6knDbNoz4Xj96LY5b+rK2U35AIW8p4PIT1uzwQiVjQ+TSd+YvTXnJQEEY19Wr1gl/qOj1Ecq+sCyDnr1ALQhsQmp4lCnHVBqSiDiUiuCp6aVhevBG9IIlvcarYE6rYnerC8AUkYPsWi1Yu5XLK/mH95iLzRxkBloepTrqV6yrWpf9+7Mi3vcevy9Dn5xboV7dmYaaUbBeFZ5FhEe6pIpHIxwxhq5NAFWe1W6OF//Wn9px8uERbpJcqy6BKlNJPP21C4XGUJVtqkPw3JhxvkCFkMEWGKy0uUb3Km8kt0oCzmhwCIusczHYOl4+WxxSlNjiezMGTsIAWJ91hdophsKGaXaCsI2ci4a7Q0a0Go/aqD+1sqlVZob65f4DgWREoi2wxSHJ02SMdmj0V8wIKUzC5RLnOcJEf07uVVFYPTI3f5hghGFJGlNvlr9XcetuXfCzO4btOWRFFVl3Qfi+WXehVQDTQapYYyHs9wPFQkkPHY6DYvq/xU1dTgpOl5VavMcDTfoEqKbWbaA5tVgppiQIRDD9dhjAw1lOKszQkzxhXEv2ZjVyHp5zmnwVLhG9Vsly62M5hsXr6GrvOjIXJbcaTdvweEe0+J9KZECRpJolYpj/NkZMDXfKcdmyPe0FzJa3xoufjueGYVQyzAzNlMBTPrhoLDUkY6SwzaxC7MxRW63VfinyBmlOIjYlyhjfbdiNQTUYT+4CiokUAJj/T5ExyDUHVbshIR8gYzQ3ExWBGC5yxGStAMApN6uaQ0ElySiLNWAK4+a1UNOiLq9959VYs4PjKc0qik3GRZiSB4R1d40iWF/tUU8yhP3YZYoZfJAR+luQzg6FnMo2cNFJKIexrV1HgZN0qwVJqztlKHu/GWpMVtrmmIivZElgtDL7rCgcFEcJnRO1Jqhmcv3e+e+dVD8XdUbGlBEoIlxOEhGOczF6qs0PBga5cn4z9uqyR79KaPSHMstX1XAVIFEyWUMFX7UwhNDyL9cwXUTHhj1firD0UVSUwSokjrz11oBiCqoDIMqvF96UfahRYFAvB+0I3w9Ejc+ud9nm6I0LskCo8CFP8W04TE6EDVHmFmwPlGVjXF1HqrNd6TGYMgMk+01tfnNJwSgK97GDKPtLV/tkFYfts86RhPN2R9uPC8ue2Wg9wnd40nRjxXbdgOsiDYt07m2pya/Je+NZtjaNyc+ZE+2iZsoW3twC9m/7UWz5PcfX6BD9h6B0EXPRiB/pe++TyDmHgsPv56bo/lSS7okMgDS7o09LSlP5fJ+YrKOyQVF3hHzLIdaXcWwYFVFvlEaJDJCCckXm8Tjn0fcikyGRFR254eMAwEt/5Y5sJ6PCllNM1TiIrQXc5ziWIYKviKWDulEmIZ+rfSGkzOKQjrkq0gjz/Qa/NlPWPa6dXDinCGI6qOANBeM1E5ZESKK5ysNscymtseVGDxu8GEvjxgKLeauyFQjMVOUZLwyARieGMwCJQ/NaHL8MggL+/pDUzDMpH6gWMq7v0O6XojCI72pGntmNFsOE8IZuMUwJstBEAuK979HkvkGKFv9nS3f3HAiogX/62H8f+mJOXi+D8vskh907vUymCP/tJcWusdUKvrrbEO8xPcykZIvZt5zPqPscKPtglepjxnqjIyHkV5Rs36NzGpkwZHWUwenuboIIdCwztxiPIJj9GEdbE4mpESeeJYn9RRZMc7WVs37pRQx/3OAIBlmLtFt3YzWLmSGMi1iymPCWpR7LqJPHWUxVWkj6G5B2zO7uQz5CNkRwd8tb7DI8VSEZ+T1rlKB6zC0ksQFl91qdk7Iyy0CavoPbFAPA5Ozb47C1DKmrukVAfBbSIVz9bgCfkn9hSbpgmHShTlQhCmEnOHpm3MA2U744qV2V36/N3XbkbgF6FrEfgj+uX29voVXMSY/GR7f9RMU9QHg/3GgWzs58NZi8WlxA7/Dt6fKMp28kf038+kTJ79T+jKxQ0AjUlu/2y+9tldJcvq5aTxTQ9EECQjgTM3HjOWvvR2vcny9tV+c9vWRztgtj8bwuMgV6bAfB1ltZT57iufxkOc+oAmqT2LZd9KsEPNfbzGEOsI7BXPZu7hbM48VmxlQx7uRolsasU6kjvfUTsXjjuacHMSw/6I/UAczHVGxFqSyAumw4rvPSAMeXjWYmwdPw5AuhCIn0AKwxFYmSyGwtL3wzhwcacPo00u/a7e+JVRHjOaaMGhkz2NE//uPIW9JtrNPs8UDaiFCebJJ6A2zToxh8raC6hTGgNw6Z8bc8gZ+vrcLxI8QojOA8U/L1GWzzUpV9efps1Iwjuu/3oCDUNuIq4/obcce26aKg5W2FydBwC8u0s6UZhnngviuDHvSKMsD4OI9jSJBWHrM8iEbwt2IJ8BqBaXUROXYRjYO5wxEjXzMtFJe6ggOW0rLeXQGBukMuDwXGF5ZNFKOw3Uy+1UKC81/QoUZFn1IbojJFvjhN4voWkNKM2CxAiYjBFWlHC5qLASLkkcRtShiCevZK1xEb4nAqoQjFzGz75/NnWP6z9TtltvcaS4+BF9/91300RXHUDxNinBUqGUslx1xOue/fEpo/+jxd+xKp99/6RH8H1gCMVBGnFBNhy3XM3Ji/mmoOjc59FWp8JCa6m1N5/iZEPPUkd51p1lpRH4vaA5YHw0HAIuck0cplzJWpAsaXpDswjElkP5qOmHYWiFvdSR8FdCMnMUhPnHTK4Tzu8WWRSvmERvgXjHRNijZ12eDQsguTJMhh2JCd/tljkM3wYoO847gSOyzZPkuN5SRuV+GRh/Kdiggk1YHNq1XkcJwWyRRfJGe+6WfMek8Ewb3wlfQmt8yLSdnfAufXHAYOOtt1wsu1T/bhjBgTNouS5qcZcFP0i2r4Tcr0i2DwTc9Z/KJwg9cXObzD80cm5RoFFxc/2lcSHoq9fXv/TFzKMkl4qIdUzl3e+aUh/x1iFAZ8pzhzLZa87o78vifVlx+2qqouSeS7bwTW9/RtNp4elZwAWTkqZi+2QuqCdCa661PcGJ2s+x2lqUpqw3rm3jJFm3ro/QaTcuHwxdd/3TIbhqjmi0J9GdXJGMR/uZZu8dzlD7Lb+XLTyuW0FFoJmYF8TNw71hAOaeipvaFNSBNFfn2FvExkobsGpbHLpWp2/ips8GnGpWGp1LQuDtlkYr7eusR2mSriSZ3pdpIB+bhL8XPN/ts1xVLqY6scL9+tnB2gTr0WhBsjzrvNGbML9VEVKeyXHCWwyPkdIQQCmVWYIjsvIZhKfCcMRRtrMXwd0YurKBZkBhyQ+CAoU7vUA6Aknd6aNj4bYhlM8FdgLHLrtuZnE54j2TVmBYZtIKFAMmrYDyeJNWwA1PWraDxN2za8xsZ9Jyw/ZrtjMV8c4ODdedhBA4k5xybnCqdBBCwLThf3ZceeEcBGCBwUPAqKsVcewF1wPgege2Nal+rhtCxPPAQ/rx3G/2/CDRnh9QitkRZTtTQpMyC4pve4fewjezsWcnSPbbe1zGq22e+FX3tPRIqYmiFtEqR0awWISrJtzDOk/XXMZznRKNxaApF4W3Oxw+hyTPlgajlyY3gIrl+em6ExRljwHqzftOUIKkOMtIvM5250b28fW7l9fXr18F8c3pswOtpo1RGIWcUcUHB1ImuKp1DrYWqq2F7H6GxfDaj59Oj+BZy8j58+8++NdMSzzotCjCL0YYPVzLod9tZh/5X3/qY28Ck7OxNlHJfrYQcpyNK8Qb+5kmWKp1nsVYBR4rVqrhDx0vTYmpdXXAEvloL/f2pm+4UnFB1iafKeG7WSO8b/muDPA2AQyJOVfBpVRGs6J7R2U0Hzwp1azobm5u5wO3+MXCqQB7N92ExYelau21ysm6jrfDDznykBFBU8LqkYiuuCzJ9mA2wgPqXOIdgQYLWip1g7nryKNzSQMMWB6TJsVexdNo4zCGVdA1MYUg1lGCW9U2TtB2BV9N4xLRJCE7nMC/EGVRkscE7eP4EkkZI6KijjcisFXO4O0W68O44fc8yQMiK27fzonKrNoOVBNvVefAVkZVOvBluzXLmxnJU7eQbPrmyNV5cA8dufRvLpi8kM26VNCuMYtZ8V7fqwyVICeVJSzUnSYEim6Ar3A2zccF2uTRHVHn1IENpkFtqOpNaNDpWrDBuUMfchlfwvO9SyQ4Vx1q8ZhVurHUcc4yJ5rUG78b7PL9Z5oby7V4RZBQPXxJMmzK526OUEUYB94ViFzu1wdCd3v/fp7wSK04uYA48hAvT84s4HyOnwTg2CboWJEHKgMXHpOiaO4huFQ0SQx1vQYYVxffvzgSeYm+e8H4c78eFzTF4rjG2y1lVPmf6E0QvIK3zFra5jm4yZAtGzBZvkHFLkjHQpiQ1rAnBUkNKMR27kyGMpkE9AFV+qzLkxhtCMozaNvED/4Y7zKmHFT+BcoIKBfQEqjy02vEbbHat/KITsSTYUGYVVbgU5sDv6HHWodrxnlyciKcj8ijHqpv4qINE+f+gPhyoYwgS+NLnjXVr4VlmOercc57pVy+93V3ycOkdYa0vhNktEAE8G5Tw1U0G8ij/QbLau2MK/e7QDbvO5sp26iTUXzNvmaWA2pkjM31raBF4xJ+3TdHZv26r/Wl/hpVeIquK8Vn1arnUc8U3becPjI4w3bzfFxvK00Au7hC7bTgzu5yvyeHK+lvgAyeUptuDlTtKbMwC10gMxLRLSWxvQKD9YaFtnskjfUBSxn6+PJdYFxU3q1se4DZ9SY4y5Z4B/uzirWsYmZdeRKjC2DwvKta4WOBbJUeKzZxJ+hfc67wSuD0ESB/fPluIt5c+i4iu2M2vSGfvuyUWtXFAvvFlgtXV8se/88R3mntrmqNuvU4zQCl3rAX///ACHnWXRbmJPvE9M7mrL86DFUkXc+ZX1OpiqJIKhGWkkcU3H4oFO1TrI1c7nnOtsjlQc5zuO3jeAVlQc+1gX4WhEDbOBQLvepsnbJadkr3JtKQzUYK304tgfyXEjSwt7F394h5MPbzojb3bS2Bl1FwqDU8Aj6cEPAm4zEk3ywoPBb45rgO1oc9O3Qwd8Ys/RQ/rI2WmVW5vcMPRXATjjfrTnQdYlD/dG2thnQuR8tWOTb7y6IodtgbKC7r+j5dvNOS6jxoz4qumMAuXNpUqequ8+4jfexPVl1N6PqUhyKX50df2/6mvKW9nxmxl8rxPIJGC4xlAu7zTwNOp01DcDSPcSDqCaidgYNl/0irZdI6eZQjr4l20ClXBFuqofCTDGVYiTNZyVEar3dkfl9iBydummIW+4OZEHVbxTySK+3Hr7Xz9VgxhLr9AoJGGln3MqyOACt83hG80ktP2ghTBXHTe8NmtQwYiMywojjpGcupwTDjipf9AixXdE/JYZC8C5idi2aRhTEaK3zwMZCaBTEW51knfjjELF/niib0N4iQrAVW4Wz36WGk2z0xhS9LVkizCgeErGGwhrDJrG/5K92lrPFheAyAMefD0GYh53B8KFwSnmTrzW5tQshz3bT649MoI0JrWhIjSVlEila6RECOOVQ0C1Wf3hG13tMFbh71OagJB5z32cuP31Zqj7sLhvDspFHsHN2iRdPjxMgj06DIRsvLflHdQYMSviC2uPiZEDp+g64egmHI2a4XKs2FyIAT3+JaKgfezWIzEjcY2Ow38O/atzD9YHi2QCZCLdJv9RVn7dvkOhR5wNli06WJG1ty4L4DNLPPUbmoDaDSoukEY6uFz3ctA0+T4lxAL5Girb/p2ILhuWkxiehCkiiA634D1SJphNf6iDbn8+zrCah+67rWy+rlMfAu+6DEPLqDqxqXy/EKfhFI5DB/tA8SG9kc5m+rdkMTb0KHL1mjwILGZGq8Kd+KIMzMdTmFBvsIb3iuLNlvJBI5Y7aAo8KUVar8B+uzuU+e4qJboRW0Op303WAX3bjR89kIV4agTWzBEpEHEuW20bFe681xhNJ+yYwPAl9pWxseBNrLWStCjc9yCjUdmjfz86pgbSgHrmGzNY5jEe7fciLvN9eooB8YN/1ttv4UlTHrY2BizWDBuVpvR7d768EGP/agsr4kThJYJVuakPL9v3+11gAelsDmPNwSEWysPb4naEMIc8sXcYGiPWa7wkOBP1DOAnlSOPD0HguBm/nefcmpKd4RoOi5xK+11Bit9D7mDDqHaOd5Fn13RwQjyQyPg6oPewZJqZ5K4vqhGDyoox+qRaxodDdbOaTrTwjoDUNg2z48vsxgnxrwaXFd0tWUwv5tbtkZskaEAbtREvEEBGbFBEmCHRMMaBdbYH3c7b3o+YV1W6wneLIXCmIKsvq3IDwTeWz8yfxyfebZrm8MKg30rkGFp7x/WKf4FbXl4YFazf+s1T0bbzRTeYfefPthnsNDkPlagryMojzNEzi7NV3pvELo7EC3xanvcx5CQFFngAHNYJBUm3lOAF1JXPc4970AZ2jeaxrUQWnNydhF2wHphT5Kti4yb2TcU2wTPjRWd8YkEwSiMT9CB9SpW3kUUiggusQGMl1Zv7QdNA31U9lCGr0i7AvYRVbOQxbno++jYVhlnqZY+J/lznIWYfalbip92Ffi4F/o5oLzyU3Cl7HLvM8Mwgb/Y2201vr2gC1uUKFWHBS1P8kIXSRyu8U0oWwnlSD4zitNyhTZtZZGj6QizqIcJlQzIDFqDn+54OgvpbjdE/montdWufq/Dz32maD/gJgV9ti4JGHx2hOQRl3R6gGQmvIgLPZTqkyGUOdAAoy6sfBcZXm4O5J/cUyAEuBTqaih1q0VVEXi3yHThNJarkU0P6079lP1B9CZR3cE6hJM2Dq3e2KBJfhIhETwqJRuaTtU3reT7EGyzLJBnxj9NXdYS5BoR+8JQ3nGGaJKBqLmVZimLsVCKN+UwOwJD4AvEd0iqmyNmEtzU1peHxeJXDC4mAoSqeQIDEmr2faCN2xw71fU3izQD7hmm/G6ydxGwG2OWZJj1+E9FSpfpI1Z7TYHRNPVoHKXJzjcdXq2+y6NBScJsilIAKuWiOdeulUXWYnbO58J3pBkamRxku3wxuogzbcH3LmuvhpF2Uar/Tdsy4s6ERssTS7PXqlM/vjttyY13CRLRDz9lrAdZeRbQbZEEBaRb3FGvzV/XwuSckXWOKPr++9Xv//h2//ftzH0Azm+MFcZLw40Ji8q5TJPTSpwmRFzbWrXhiuq3Z+P3toZzmVL5aEZ9lQzm9Uw8qSItDHZdJIzgAonrrRRScWz7CyispwGoVq2o3uJCc7ZLlH1GFKTVJi1UKy1t+dSeY0pPw7Q2l4sp6dmF9IwXNqaziRWnqLrbArlZOM26CF3dAuZns7/M6aJefIbSl9KaEoHv3s6oTyrlRuwC7xnC9SJm6CEP97cuOzbSdp30u6dIaRWyxsu6t5IW5Sjw9Jv2SloyOJBQ252B0J/FwBdIRy60m/znDzxn6TxPKdPfYofHmHi3+GHskROp7X9dKa6WT145sNw7u3UkGvxHpWoAxcnRU3fGxIznwlU6+wtjuYsTWaBFqSBVcBe8BfV9e/JUwLeb1jEU31m25mwydahAkD9O/ix7kNa78TcwIBmeHfEotuA7dnVE5BZjiXCDEMptjBGIgRv+UhoNnvWkNdO43BI9gNnsLG7MVVCyWfaMR9yteP/jDuGu4E92R1TIHw6O2Y4pPPtmG5M5RGzafXoPvs5Uz6SrUVs2m9kv5xtNNfBM996+HrgLHPgnHP/BE6df8L9M9cxNP/++Xr8TDx+3ONPwbMD/Q2D41Q8AC1+GXgEeuN9/Vl8azWwXPeId6FVmGj429D2q846LisFkmB4LkqwgAaiThCvq78PyKL2GZTyOE+GlisfPv4mwJNEYC96TF2qVaPMRMiZ7lh0dQm4elfGkQ6yrUXfZ2NK4w6WpsXzvIxNZW4a+64QY/JwShClSeB8BdtN1clwJCScBOg7ZPsOObgN9YX60RLnRvEg3j5BAyl3nGhwVUsS0k63WASe4TQaJvSHXAVrNPVCnc1mqGYmAGY9gB6rQZIdjPVsi4DaqqqWbT8wW33kqZhjntLxDqpH3H7NtGrnoS+qoUx7KBq46PyqN06E91VvfNUbvfjH6Q309cT/unO/7twvcOcWXsGJlYUb338CnaRcc9hAZS0iZL1f+Bz8LFU/y3/c+1smT8jU+K+/vYO80dE5z95R9418ACAHyisA1MohW+0JzlaUUX9zf3SGbfMLwRnSCGo7RY+hXydVB5Hih8cdQ4ofpg+Bcfb4U/GesxczTIcby2POSDGU4bNSej08IlKu0oRHdzjxm1CTWgS/2TriSNM2Ndqs0LwHAYS/5KnHwbpJZVJrVRbTaIQnOERLW5qoiS+EBT2WPVpk5BYW39O1RZ+QBfel2W7OLO5xsNCMJv0kkx2Y9mixf9ynWqirjPPAy6CJ5o41azXdSRuXJ+Ft4YM0UEofkrgNrT1vYXyonj4bnE7UN6VowJJsDirwEdvzyr8Eq4Azgu+eCOJrgu+GQl4/HUED7HSYtIPVks8Pu+xGHdZRR553vHc6Yc/9H0346657Coi/7rqntutkLu7pPQ+/KD5h491Y2l/33lNA/HXvPfbeC1rAu2hlM57aeWSTreC/XKGC6LTnWTyJHa6uKOCJ5nDJAe2iqYoh5CuiIZM+AGihgCavrB4mNStoYakbg+hfW+7evbiVntwFdMom/JkmrhZ1oDzfoOexjxJxKKQSaiV0LgBFU5+zomjm+GWExZTt1grLk14wfvYR/OwyuiXCyP4B6T9UKVU3aXcQVBKh1lzErSJWUx//vwGSqE2ykoTDBVX+jTOe37WPXGGz8lzM+VTzBuit0M9cIPKA0yzRA8rVixRnWbMIR7EvaUrWlK1/zUlOVrO12bm1pbqBbGstyj0W7STTEYsPCNjFM3A1mfQq/8ROul+4FTlBdGtKfFMJsULLxODzhwpNwHYuMe9JJQIMSBqs/StPtUtgnbDwbiFKihVpgnDJ4yqqJs+/VlEobV5/Er0bkyHuzQU3/NDwFHCEPusvVdRXpUOSafZDoDMUtqn8r0sWofTxhOD4tKZIVw4MiMXQqwDzPhofccm05UnCD0TYK4rZLPb6orSFNqHrVB5FRMptnqCPeKvQx+srJMivOZHjjfom+JUlHjxVQ9UQgwQ18MHUegyygnaCFWHRbHYZsvSQ4ojgaI8yQkSjr/ZkwVraK3xPhL/ww4Cns2GyfRURJ5JN8QNN82bOyelkKeskO3R5FQSlwizGIn5F7inudJGCiIOaBgX1efsoJsl2Ph2lqc2ooWYsQKU3RG6rZJZlKF3fz5TUDuUOKVO25asRAh+CDdG4KHlt6xBaZd/AFYADbye1ITcYkYeIaQZ5/jH5jaRZk+LAJDFsv5F12l7ugkT3K5xp/8UeTx2FtibVoS6PR8OmOAYNVuiYucfSJbCQUG+M6H61wSw+ULX3lELvVXiDUYLPWakWUYFJpcZB6L129S6cmkOcJcfnYdTZ3W5RwIU8p2P2W86ExcsuDd8gwAKtrwzZPDprCJ/AopDW+7+w2x6Eu0K3+jPQ8V1/KGcx2VJmin9KynaJ08XOegm1cNSjfPRFNP8YQ+7aSP0+QCWSWjFjN6hKu/ezupCEqj0R7ojgorCX2gaL4uKknO3bIqen4uNRFiU5JMlVGuVCZ1wtqUr3B89W3GMWJ/XSBVOMnR0JejFhdVL7ssdj6fFWaoI9hb88nb/JrZuMwH79NAx5FuMTMNivn4bB1BKfjMF+/UQMPM2wIJjF0LB8MpY6mbkwnbhSWoTG4/LSJQ8ZFWSEPeClcsAq2oeKSzsKNrC24wmGkKELrf0FfhEIrpk/lgUY/MUVpgbdCizo9MoL5CG7xyeFzloUpmjkKI0TymYOlFqiRajUyE1b+juBU9uARNtu7ST1PcHZqSdfg93ePEAoDz3ykHGbwG9keOqx9lSE6D82Iy+uKWkKWGzwjlRzFcw96aQ6wmsosd72DU6/NLcJzn+5MlXcUZwbywbxe21/0S0Bs5AXjyemXqmzpVIM3M8rh5wy9L6vrPp6qSz8Vhr+X67AiN6Dk9guaFUREHlQ61209lXT7kU2QxY+ek8eVDV94kCTxOI2bsEvBGcvk4RH6D/NNsOplmJ4SFGWr7cCd2d8nCDrny3tWkNg997oL1dddaSW2k5vsVTt3VRrzZdyRhWHf2ZEUO5ZE08jSwV+rjQTu5AbKqIYEy1KW3WMqJqc6Yubo175j4EdUmtjMXfPBBqi4NCQ6RgztgHKDtWzSxcX9zv88M8r7FHSxvchrvNJ+6W5gfsXlLg/2ACJaHNZbvBw1Rprl6btmIls6mOcb6A+pb31N4y/rM4QZiy+caALmada0/8/Dw83R4k2JOGH5+FD1NF4hKH8jWKYp5ujvOwY0Qr8mbU8SvQf5j9pnBD07/a/WS47Og5IhaNmq9FzjM30xHVWDKBAWFtdWHFxadrO7YkkI1dl9cIFvLbHmDfX79cAcM3WPtz0bHA7fG1IzbrLK3Snumcp0Fi2y7PlEZ7RrSCLPH4tIQCHLlXwDxKdpS6rnTISO55Pr2WIWeQl0AtyTxiiRojxc6T2gue7vbtMcD52eCAFqScwGK1+GFfoSJQZD7qQOCUIS2RcQ7zh96Tj1NAa+NHGQRnwRzLDrGPlaK/y/lFRMs5eFEiLxMmdwNmewj1bEeG1vwrEeN03wkmU3thtyQedHr2VRNyflvjYojAl8GhToL0HyKTA42tD0DB1U7THmeAPx8oM/fLyWv8mMEH2r+X89EThd6E5KxmPmLKSf6PxUGguT23z+RfCiMCJ517VAXEpLic2fS7IeOd7fGZ1eRR6AHYhWLNWtGP66wFTvsachn3sA8ly09m+edXDUuT23cCJjL3EFZZ3p06ml7BJdFtJ4o/9j5fXlc1vM4S1Nje5In0LxlZhCb1RDcI5paOiSY61gdxa3TzoHG6LnKALbah8846kKX5Yv/vpG5vNEnF2T4RtmwyffN4zxhyi22t/xbnxonb4K3X7M8LQliZEFsmcrYsLL7KIp5kIXR+PcDBG+g+bLGw1j4xD+0ySAVHkVpe2OogT3yA2ubVbXC3KTmBFgjcqs3Et1xBj3vetS68iT9pbN9vhrLvYVyGARjjn1C4+q02GfXH0GdgVC6nnLcR0f9odTuVSDSlGdKorPdi7H4dFyqT3rcjp8rm5eTsB17JymoZpQjfaAYjcyTse07J4xmHZYxGv5wPkt4rdi7ZwSfATLVjJTYui9kBmIV8MYCH6Gc3mKm3Zd07mXWHv0JOt8ep7K0j4OJ6PTdfCPY1LGbqRwfrQfZMzwYRZhYyIuSUHzLoTbWZmtsxc+SdNDm888BQm7IzTdbbJGqIjOFOk1XoRjTLbJ9rqd+S47py+IcMdPmQv6z5rem7GVpWtBcklWflb4KNhr4LNT6MV/klAi2gAju6+rokZGGt78Ioz9tHnGBdeFo72JF4nnN/lHWGYATZgN4t1Sj2R6GkMulX/bwndrFOSriF+d6pNNfJAONfhvbzZQ+PEpyJ6VUO3SugpyCRVjd7oqxVvi9EZblX8NobCKvcb7dNqFQE9dPHp+hK9+vD395fo/Ye3P12idy/fvL+9RFyY/7q4p/j5arXqCzMfCN3t/dM3oagOON+GJLrYcuHUtHwOyMztZO0D5le90fCYH1jwHedUoI4ouihvHp6bKlAO96VJECyepKo9CWFBRRj9sOcJcSQuIQkAyqGbnLEqieIrVgwDIu+cEabWeuBeWUx6OX3l6AIRdPHdfzib6xJ9/x/FQH7/HwYmzOUf/sM4098mVCrCiOibQnfLF7htmwS8vHBDF9+BMLdUSIUokwqziFyi75FZZXpyTUqY5IizPrB6oDQi63nLKdwYqsADXfz88cP729fvXxnchcB/enn1V/fbQvRcIMyO5ovlthkse8rOdlHmEjN6EPHc3z9mOUiaYzemBEu1jvaYBQyCSUv0faXNBGiYShN3zRB9un7xn1qR6znW///iPz9dIyUwk1TVav55Mau94ErNcgi37aCB17cOQ4VQQ7GZVzEy4Qd4YNaiRKXNJIKVzrhTuNvyO/ozlJlP9W5ec7DPEkd0P830Oq2+JcLFAKGyhOF76R7layEwcmjRsh6WhNGCaAR5EVOZYRXtKduZM8ieCfYIAmMDCZJxAXUt2sePqpe0A3zVKagg7FtUQuudeDVbYsSbV+7kg9Sbby0kujWsKNvp6SUMb5JecBOuDjsNNXSG25urPM0TrJduZYbGBeAFUYIu0qrnfWtNl8iQ4vU1bmEMuQmjKVn533iciti96rA4kcseSaV5jFno1u+/+/0PnkJ53nVlPzb/oooJW2biProqK4YD2pAI3riYsyYXVB21iCIiOleY+fk30Dm3V9dFWc4KOYxSeFwfIxVlL6ykoOSj1v8iTzw5uVWyv9ze9tDdK1US1mcHFhltkg6KGHKp4jNcdhpG5ZLyOQstTe2vXGp+qsVyLPEDVZDyXOw7LCXdsUGbzgpi2ZtDczjzbUPsA+ARIdoF7ueAZreCZbBCNzwt2lBlXEq6SQiCZScRFqQn3KaXLcEiOSJFREqZyb6EMIEpD0kJU5doQ7ZcGEvOrdw91utb2zrhQOe/mWqoALVJNPgV82fQdOHEoOJjUQKlCIJHZfmFeywozyXa4EoptQao8N52w9Yng9mxYeMC1XSts3bOdKJVgVaZw/nGOFhrZrfBlvZS7bHHemwvP8kDNTDwAR9B7AOEV87qarH99D5QSo0weEpNBDxwsGtYiSM8peReUsUhXVoSA9WmCZh4iSpbOBlMbJwkjlg5SVmSS/CZK8aMERdi3L+BsJQ8ovB4Q+tghFGGhaJRnuAidnUh82iPsAHomO4x1MNjfgEYn6Uv0oUWSlIrfx4rN635U64tMAt8teLqVhxJcKbVmfnjaU+4T4ffzqQNDePR08VCEE0JR6+mDpjGMuOsVQdiBtv4LArMgC9sg2qRQVO8rqm/Y1x7K1NBJTCTWyIkwhsO6dxFx3SjHezbEmiIu7LKzn7U89ILQe8BbanAAWTVU7998m/oIKhyI0KcVQ5rm+OELg6cfaPQhpjiFyRuhmQ0xOcB8ltMk1wQhLMsAd2+pYnSw7bvUFsL4km4g8VMD/MHXcj49up6iFLuceNG36dVfz5a5MNcuZZL5aXZ72Zp5wpCUM84oEPRnkR3cBH7bEhKoFK+c+icqdTfPyyt7a3idNMDdsH3Dw8o4nGXY1oF+ftHAfn7cSD/8Cgg/zAO5A+PAvKHcSD/+Cgg/zgOJBw4jwDTHHQaqEQXmeCKRzwx55hPB3utkbGploONkeXCR6U14kq6uyuAR08Dr7ZBHwxpUuW1IWE2eMybCzD2AY1htZTPNI9LNCLZaohX5OZhvEPUOY7+V0CzjKMyhcBRW6eMHHyjGgh8xly3MV7dcNBeLQW21GAdNU9emTfXCPXkLAwUks07sjFVWIZ7ghO1NyNdoQ9QVbQ3svrp/V8N5v9EObtj/BCKTb55/8Z9kDKqKE7ob81ebBV4H67++vrjR/1p6wDBoRL49NsfPvzV0gb0KMNSmjrzCT4SgX64RIyjPNPzDr+RSBGptCtkbymDlG8/fLoFyobS9y9+6Inavv3h6sN71PhKJWqVCb5JSHoJzoq/NkP759lVSUCQbS5J/AxdqChDQqrnYPS/50jwXBHt1O25VM/QBY3SzO8TIvT2Tz0y+1Pwiw2R/Ald3Ny8fd4nlj99vLlGta9Rdo8TGpeO3gtUtyFCpP7cA/3PHV+8qn5RawBIy8BJcmyTqc0R+uG7H8Dq6Z2smEq9pl5w9uKH734IYmmI8c/oQptY3968u73uFeafG8L88wnCvLm9qZOqh1jqQgArsGoTh80vHo+uJDNAcb0FkH988WdgcInottJPdIDbb+vrLYDstgxTQHCdKqQ4v9P7cUsZlfuAqh3gmsPHV/qry5wGtyYIlCcqfCIMhtnZL26Wmlymkx7AGmLe4h1hqlt6Mz6BA3DLOh0wcLPIrCwOe5qQZnpQng3ZEP4jez60RUJcmQTnv2ivZuV6aVZu5EpSLoZZy9JFG6LPdj22S+1K7MHcbjU2tUOtJ/NWaYPmw9HeXXT12IjmetUGiL3G4ok5hzFWOBy1bl7v9vndjdpSaL7np8HV1kpB6xPNAPEgm4pLBCQOu+Z2TNKYIGxS1IZEhP3zNhPAoXPoblRrrZO8FO1lR6yPnNo9hTu+7XXykJF3l32baeCNO12jv7AgRa5oSjAzRXyhtRA56r96iZqT5ggJ4BFm7gbMk/KQcByjDU4wi4L7FzUeonljC+cRhWHf8X7Ar3hsCZ+Wkbe0hxpIREdnqBjYuna2Nqup27Qti6yWwhkw/aE8djRgBSw+KJJCQk6h7scMbHM03s0TmC8zGFjyDhWMB4ZcDgpdXF1/+vanv5u406A8C6f4Hn+MjWB52Tnbja83L7pa1LCOf8HtvNDh98kcyTCkcDW9KhLPQx00j6tjngVq+kO1a7iy33IzMXOJhupPJaILI7Nx3YsUP8C/nzcyC+wbDrWHtP5t0Dov0kgdIW3Kf4cu3KnO+PCd3JtdcJIEtLdre3lbEUzOOPf8h6uHaq7Ti2Kot7fXoUqoWlekrTK1uzFNxyqX9+2lOapobTtvfvSDXFTLT6qWPK18rKuG6T7cVtoUvx7nP926w8XQ7egZmxK15/P12i45G8LtMjzF8cxjv7I/jW2Gj2AA1wbckQY2faqtofL05tolxwUM51aMcg6xm4sbH3UbRv0RNQPDxbG/FziQmefHVFB8zxXa8rxVRGMkaA+AMy3S1kw5vv+QtdU0epHq77s6z6S6nobVAQgGTEYDGV3O254l/+AJv6O4cpz8l/lN4ESxfx3c4XLUUVOC8csgOH77RXhnhCmTbkqKVov3FBcfgpht8KiqIrcyusPbu6qE/qr/HZAP/G1s/0+fLBzTEZIIra6IM5mnRDSX0+hFFiI0pXT8RvC7uWKECP0E1LQBCgDRXzQJ9KZSEX2P74l5cANvaiCKc2G/Bt2lfTfGxhe2NAFWKzf3BMdnegjc4qaBBuJV/jiOPSWY0Twej8XR5OGd8MAT4QEKvjmrr7oZKZ5Rf93xAbxu9ZfrPqL/MMVC0eDT4r53z9fu272D4dtt/WAZzqRYuIaGdmx4idveY+jN0I0gJa0Ud8NfkYdOCyrKpeJpCUMTMiFqqUR1t3nZQoR5FbSixr8sB4VaoPm2FIR5mtSRElm/hJlLZb20bzVdNr6eCcgauSfMhZlDq+wEpTNwv18ZUG9eoQsjOHuGu5sgGj/v1z17fvqtsgVSIxVkmJJ0Q0S7cMxorpQpIpipo1zR/pZBddd2KYTRB6yPyJTDtUNrTFmpLgnC0i1yu3b0nrAS9NijkZFD+xk9muOGGAg7vece94ZgVsSWxMsA+gCE+wFNOGomzGd5+mht/CQMmhISHfIYLvF59nPgeAuEEY3RhTFQu7puyTACLARuOrRDIVBYKZo8onFHRy1BsoRGvudnp7+RB8p+MYTlweSRRes+WBvOE+LNlxiA7A2LaYShbtTWCcDU+ylvrPXeouyFBuM+oog+v9DFm5uPQ0YStD3QDMJ9XZgb5ozfElPKZ7A+APt2Nbt9BGS9xlCb+bzFzoba3GYpzldrqO1Febj5/acTRtvnMxVRB7rBrBZ2gF+E4g7wx7GBh6GBmQILOj0aIRWudbUcbSTZoQIdSNMQOXsB1yyNhmtoovUUJblURKzzfLrP2p73T5/K2lavEywVjSTBIto7fkhxZHoj2xHazG7p34nz7kHL0pVDbNxiVvnOK5UmX03dz/eeCKmVo7dEzukILPlWIzjUejWx4vdE4CSBlKj5p8BSB2aBKbAFMueyBy1jS9W3i9CQrr2tduHdoAYA0z/vqs3TXFjXbqPG4vE9mx/ybmtPcBZsEVcfSMdbx74kj4HjRUVNhrKBnAZYdpEzaTp/+1/d5S1gUHlXWs65R/Wy2RCPMj2aIYMRRNKYMLWWRK0l/S2ch3PuQcGFfzEwmeGIIB5FeUaNMZpi/T9mvM3meeiNKyqhJ+vS2ISS7FKoGQUVaBWupsf7REMeTKTiyUiktmH5Fl39+7+7vtJow3MG2XP/he/xDVAr/pZihnfhtV3ovmX8z7I88FDdUpyHptdlukRtknLLgH3jslebGruoJSZyBgkxes3RJKGtJpnIc0m/hiJUcx0mcO9qc6brZTas8h55rOD73UKyjSJTa5PELmXHZOXXUMvLonBUmXNHGcLojy/si1sY3IGymB/Cq0QfL4sPIzVPU2ceRiN9Z6GVYhJ6pq0RY5etoVhAUMTelI+BQv4rOb4wSWgZpqL6eKNMx4BMmHquvVHivopvVJmPw45ue9voEQo/FQnu7XGEwcVUOi/lDBDtTUmFaa3MXAfmylW4rauwrhTVnSme8L4JtMICpTgmLm/cvcR4z5VV6hvBD5IICU8OJGExSvNE0SwhSFL9n5gRDgutpKh4uW3yhCr4cFEHlGjnWCEOte3tMjzaFw0vtNlFpMKbhMp9rfxj4Kyw7fBm3fp/Jxt0Y+hO3Pdz1hWq/lSRQdJmlmDKFHlQgHyimxHayGi5inkHsnGP3KsrpzL1nbKdrY1y9aclXMIiccz0+aUx33wx0r0ZK97CZL/X+ifhPFvHJGndE0xWP/oQAtpI00ZAG0U4iax5AHV1ipvNDWHRPsXijrLdyhuly08K09kyEGbuTozIfY11zYrgS4p1+U+GySfPOxtBai1LNOC8GWQ9oDmqG5UdpaOu5tJNgAETvVtiAzG5wtl6rihEr6fG27qNRjSjwm4akCXnLqOnifccR0vL1K2CczdC+YYIRkyEprgVKn4ZuhkqPlDZS/35uf4LJO/lUBUWGpO4W83PtOEuu7S0CDIe16JCJR83XaErJpzR0zOqK3J7ef3GWdZtdTTlPLP7dNWRUTZJrdpkqZibt87ErxCaKASRPBfRjOrd6grof+Ch3QQg882SGELkWzAiHuiVdgoABGTRhb3luwSmECi+LKTzvBPXPRGb+WGBg9Ai3Vqh2rueyUANRRw6AWjTlUXHlcyb10tTYRTNUCzpS1eiw/ybmshYSiPBbfx0EMA5JeXmqEA4UWibXDsnXlDecJj55Xom2GhPpcI7gVNkgMiWprYPNk7T1OXBUNLrUtSdT3JQ3QYWah3sJhm3TeIeAd1Af7IWwUIaWT6XnXt1/al+ZzrS1PU1u+0G1EW1NkgeqLzRR7yPQZWJ1yqvs+mw2dBwuw2ZZ8920WmpX3FBrOgZZl4V0kKLGddiWdocNouCxD0MC1g8XqKrt39hjR6GFjCWCFd7Cbo6S+ag4TFBOEl4hBVkL19df+ocrykg+yUOOCZbyoo6qu6euVSGF/o3QaEgukU5g++S2G+KJHw3mwv+lu8kvOYdqZKKWnyLqKWncn0O0imGiiKc4YgqSJbwUy/0qv3kP790zEoeLpnW0/gq7n8aqYBiHy4UyjpvS0874duWcJ36XPGScp8Eh1PC2gqydMMig0ozGgIosC7nBwRLwwOokrrHxfCKQF8VNfKsQK8Qz2FQPy2BpJX0ry/Suqzlr40zMANLAH0JNuaQYZ9gZrqUz6ClWRWS6Hiv/s+wUz7e3HTvEwf4wOF6tv2WE/1TyePvZpjwRmuQXDK8I1ucJ4tkHZW3/Bn0p/fzKRP7/sHFmfAAryCqYvdwrrbDvbXeS89/Bb/iI+cKbWlC5FEqko52Mf41TB6/lKpG+L+6J+aXkLW/H88jO4On8cnjY9QSnn7XN6AORrd7Ur2PtSUyirpbKOJJYtJBzV+Kosc7wojAtrKte2lgs+RrHGxNb76t8Kl8YPglb9gJDki6U75XkP/vGh5HXMThDtKVFsQmC2yPJbxFEaIx+113HkBP4bS51MYeIIXXTYVUawuDtS54O+5SBiy9WwcWejdoTqjkpH/XXHlVZAk+EzAo99mNq/TEZcvwCd/1dsJ4Z0jZZVPp6mqqdoQQCIJlo9TERAAfgdJY/prZHNxvjxmp1ykJy1zhVh/f0HLvEbmh1OoPHgZx3s0YCYJ9fQhmW+rAgHLWLfmlEjvf47SY826ekH8xL2Pz9o8y+4bbqOADluUZ5LfWbQrI2iZlzgfqbzbLsyqQ7nyced+722YZMWGKbql5314C8eQfFNfuJNmuE8r8TfGmgfn4FgmSCSI1GpscFVIIlN3z5J7Eaw/GpfSC4+mTS5eGwBmdf+W8vH5T5Ajb1dMxXXe0VRj2RN6a4gDG8yoPVlEeHUyX26+O8gjRz1+gopt3NXZ7ij1fydiBSOHXZJ2vyTqBn7mTdeCVzJedp/P12s738/XarvEz37Xd13uZBuCv9zJ+4F/vZTruZRhRet3Mpq9FuNn/P8Pi+2h7NnTQKuLL0I1w4UP540OITxGt+eeekFuBmSz6xD2JObn1zkkRev56CWp+Bkrz56/3nyMF9PXqs/xpCedf4daztAFCOZZNUOdIji1RPY202Ep/9UBqbGHT5CwYwZmit2mqLcCF0pzDZ0I/gz4maOAOR0NDJEN2OhoXSnmTgsU7/tRAA08O9K8sxgFnCxqj7P4FReg/gQpntdaO8ZQYdsbjLzKE/dUjNT9fPdLy50uakC/OI/2XuDN6IrckLVhP9L3JmNfM/2ovmPXBWjwvkc33JcOeLs98S/b1QqgB+6nuq6/vuGbdbIMfc30ZpV0mJ860D+ICV6CRUKuUZlgSIdRVctm+3cW7bwDNQXRp6mI4wAhd2Gz5S3TAVMF/KCJSynD3Ez6CWx29S5Qn9QArEQITv3xrCVvaCwrHgChTZOftJjcSjOETiPB15FdXwZw0f383M4QuClRXkI+rJ+1KYLl/y3n2E47u+HZ7iV4LAX7zdZ4kl6j4T/v39tTqH60T7OxTzjSjNEuIIvFlKYkrzBhXH3N2aXqdXaIPH979lSYJiZ/b4QeKc4+wjvt2idHPIavw1KvfesUf4GI4dky7q6d2DkSiqH3n51eXUpf93IMrEyTSiuBHpETu00qjoRdgBgq0C/wAfEvJ/ayZW2YaQ6Zf5xD77MZRIrB2gTErem9+3Aw+Pu5y2srORP6YYUyyhB/TE5+zVayakuAsZs28KdF/9eJs8SizfzxB6K4DfxJ7w8V36pcLC5p+zlawyo/DcZlSyiomkjYf5VVBnmSSvKpMVVn52HAsUV/IjERh+63/Qn8ujOU9R2DeKr43Ox+sCq8BwLLY+65qdlCGTxvQE0/Mn9P/6fYsTrKfITe86lSgC202XJry19r4zdkd4wcW3jc5k9GexHn3Ij3J/wGUNT5dynBOo7oSA+gxZEMRj6HD08ZUNeLQbca6G+fFrOsCU3G3fb6s/IrMH8tSeh8KAA2tSfi4yC3a7rwE/60wmm3ulmrj1ZqbjHtesbQmZFE4EElsZsc83Wt36n9e3fr1cDNRI3tz7WW251Ktl+GoSYfYjjyExzG2h+W0i8gF45kNmDag+dEFNK8JiynbrVarqXHMOdGdZndYa6DDBp0Ta8HNh/eyjbbpmZG53GdL0L5QecL+cxVo0IFe0HGt8g970HM8Ejyh3WOtsE3hqWZEoI/mHzeeB1dDferHwtWtQeZDpbXHWGx8A21tlhKarXwB78ktJ9ekswQHF3uCJ4nHPy4CnHhDunTbXFLc5klydNx6pVk9W8k2T+ZTa47i09drNaRBxeavOxOcux72es6KQjNFiRx0QTIe7Z/DffaNhdVc/GfQtDWJFEtokrJdeHuW677YnbUlHxIiegSt24pfdgF04Er9s/Q8VzQdLZuaPa3pLia5AvZpTLOb3AHACp0Led5zqVuTNF5JfplD5/oSYNBpire8sgqq2q9lUFo/X8ugtH++VkDxkPua2/m12Ecb8NdiH37gX4t9NLg5NPc8ydO5rmENsSfoBP7NAAsaIl+rL9ifr9UXvlZf8H/ga/WF0wbtqznvg3KGEgc/D+z5db7eaBaM6x1/n1aaxt/dp4Fu8eQhI4KmhCmc/Pf//A5+d3efopTHeRLsAH/vPPH2svFiDjVuj3maklQqfFIg1UuluzB248NdjAdOhX2H4yUc3j4dR3UVU/gub+AiqaAL8SqsGZx4M6d71+toID5Owfc6nex7Wb/iKaasTbVT/t2yH8oTSNtdmfCdVFjuK1vzrf1VYH+6P5cbstmaQhKltLvyI/rvZ1Imz/4nsGkrvNHpO/fUxMPG94f326hnVsxn3v7CZceFxuzFn4t5/ZuHsuP6j3t/D/wJsbb/+ts79GZ84rJ/3H1jH4AHlQXrww6nRwmc7tldV6jW3rRqnSRPXdNroOLct9WJS9y0t5lrDbw2zXKa4wyBQDW7cYGZeMMinlK2c118wFYiYhVEwfNwSGY6jA+52vExMLY0UWSZ25GfLekWFnuApCSNcLQH3u4Eeed+FzhCir+XZ4jcc6HWEWdbuvvRZPF4ThbfKVIFgE4/Rk7ec00CU3ZZW89Mvam+gpY/CmWCR0RK9OaVe4JdToLC8q5cW15AeaZoSlaSRDPhKrnDlaBwHLphqL0guHVBMBVDGVGzdI3LavNDIiu5FlIryh6oEWeMRJq1XFlSs8PmGWFVRqa/CZUtzJd6f+VJjDYExiZ9xiUYv4gzhJPEfk+iOBdaETEuUpxohuZ2dMTgfXm+JwzdjFzmkZ6DbZ44XggrRdJMlUKw0yUpiwiiphnZhhBmLihJ3DOGHVGrPQ2cdafMWgX7sx1Rz1DE0xSzWKILmDSkuT63uAFrnl2imN7TGGavaYEht2KfRWm8BopmKhXXgzCL2REWWPVtMj3wlErZiiOcPvQtpgmJ7bDtm0c9KRHOJUGMq71ebAcskV2+pjIElfqsadF13X/NR82Y9XcV54gnffMbpfFq17pROX2MjTkVrmSXnU+7KM206iGbE1WPm4Jibo/zQASprhou9PcGDK99YTTD8GRteHo8NCqHZ8bVg00rW++DjCA8E6cMRDv7krVMCZFiBECinJet4KnpaGhq0ZndVOiPnqEcBFWKsMcejSQsdt2tJo2DKpIud1ABdXeiJnCfUIH2jd3ugyCOOk5OEXQTvVTcmsHC/TevDWOFbvU/qESMo2cpfqBpnsKXW7Rhyzs1vckVwtaujhFlkdD2ItghmtkRMXIAMo4tSI8Mkhm5p+YYPq/Eij6nJOW1PWbOIcVNGd48c/e8Ws+7YbbD1+6AKM0aQcz/U/WNRE7UlpYNP6ELqAKwTvEDjOV56bJwtuPxpuqw6N+8+inoroDr7Hq8uvHYLzlTadXvxezGRMdKlGi4V4MKVA1/P+Tu6DGd7PI4nlZAlIONpahUWmxdkYfBN8eFIOogJ0W6XmGFN1iam+NeS9YNaT7+V6WYBiCY9878iqcbVzuHb1HsRIFZXJ2+AbhAEa/AaQs865qQVw2Hmy3zBBl/oBkSHt1JrfZSGgmXJeav4GNQ+e64TsNUHrgaDEC0EZEeMemPe5FMfXkeEHnnEAcME9lGqoX0teA1vyHSb2EMXTLOlwRTQBswF6hhsJFzyhAYjhWiQbm8FEtwI5b0rzkRlMi5974WnC315lgM2/MOz5y7vhSRg0IeSJQPChukXIRW2EnCwfLOLSrNQtvTUm9SfhgoKIdtGUGZPvDYwcLyzjrwAFafNH0GPpNEqCUkZyhDIIscUMyjPIVg9iCpWVjLCM1hsVyGbUBThGUJQQFlLaeRMrKIFpaR4TJMRsb1WEJGMUnIFBlZRAvLCNANlJGL4iwhJaMuQUzOxiyCRoPEVYBbSGAtVG0FXzofJ7tIlgTKBL+nsdaTDPF7Iu4pOWg4GGVYKBrlCRbG9SsQ2riCm+EaWSpRyiW8YI2IYK6rN7T6Nnm70lAviJ3kheH73Zpv/rGW9Dd/LZieuEIzrNDjcvmpN0tZ+f1FrPCyMAd6pN7vbmlClkVHWUwezsBiCGW/W5una/KggtkE/RRskGnit6XiAu8WngUmgf463axS/3LpBworGRZMV8rPFG8S3hEMcy/CNCibRKMIUMISWG8FIeuEBtKnpgyO5e2w67ihBVdGgFAFm3eFBAvhTI63lZdJleI3p2n42dPK3jCpMIuIoxyyH8EEacV+p57zBVdD2FgcSUI7LY6ERziZ8+HqW03QhLEwFEDhQpUJBm4WqcXaY6xhqR0EuRJkp42E2Q0iS9fygXSCTPA4j0rEzZskH7wDFtqDnx2epXsqvFTODy2VJ8PKZeCR9im4NNFTgQmeJNpOnT8XoKA8BqIX6wZHd1p7sni9TXK5Dy2/CQmKr7QhjTc8N2kULovKbd1cEsg3MWE0sLoVRzGVd85o17+i7QOEs+RYeT205aJQAxKpPVaatNES715e33/vzBVE2I4y0gwc9h2GIJZF6lKily4j0MC2xrs0N9GN2BB0/nB+195TzdYMBsDGkIYEgpWFUIMDNGF/z9XhPOUhVOMOoHqWoItUPjeD1+Mz13ZupRCJ9vje/3hBZtpf1yOE20q6Iivk1u/zxmL6yd6AKnvD7K3cihDeSJ7kipib5UvtFkoaE5MnY/O7tuizXQ6f4dbnM74nYAmn8jNSzXRs82O9VrQhSs90xJkiD6rMzomxytPw7FgOy82PZWCOWiNXJ0knQ6jnAb80sZEw2gRLtSDUVG8Xtycum5bJZbmSNA6LuMi785JVnN/pYUa2FUb30NZbyqjcdyQLewydgQN8WSmGZNNMYRQOWdwcz/A8wlk1uiA7LGJYHZVMT2tHQ9NimwdeTa7ErC0yq8JpQtWx6G3kNJzvfB3w1Nibg4Nmr2fUyhttITdpDlFCIZQIB5qXrqVJWZTksVXzhUz3BLJJJdj+6MqnkLxEPxeno9ZKCMexvfSwusdlefaqnuWqBTYEmjNIH66+Cfasoqqc/VQjzJzC7Tnw1v6qZnOMzR7rEDxMEv9QLHe3eqpZUIPWSV0sWMFRaRMJo4TL3ru2f/BcMJwsZ++VDF4IksBgC9UFCkGfKuDta/8N/VcID6rW5LLGX5YRLKS9IAObodMCbFGsW4QABuRXYkaE6XUYj9ZAPE3bic9odg2kBGYS2wVgEyndYrKjcPnn7iTxUnWfhfm26CFKLO5xEt5C9mskbsfm5hpredgbR4ChlOywSdm8ePfT8+qo2yP2koXzdOKIwZpeK74uYoryCYwdThk3IjP9XqJABkA3V8VUeWizRJijaSEhVDggUBtVIyGw5jvx6o25pmxtptKTXDQH8qvCRDVD0EyNTuIRHOwxOuxpQhCuJ5BItCdJS904moYMZfVvURbTCCtNy3nVzLSX0GYCRnuC74/mC/79wHFsstf0OaW16TYXak8EiineMS5pR5oNwSI5rs+m78AJdqMsWz5ht2I3ZKtNHDhMO6ppT9Z4ACA4zFCpjUHvJsvTrRItKc9Gt5gaJ12fsrvHgvJcmrrpYJlXTjebBh1UAF6KYSENqykSB1xDNGf1jJabCFfFes9F+2ayrba/9sSurXqSTfPnkwsgwEC11nF+fc2oJojD/jEkzWfBVPdspKpoMkGydcJ3602+3RLxKHIyvr9GgoV1/o2u6VOx7ucmxUlChB1wqZ1s5MOts6rZ1ymU4sh1nB9PKjhSOU6SYxFyasgEKvgEydrSPjIjJDamb0zuaUTMjtpibbZqzwVvtyRSEwRUtUkeTUYV0VTMDbytzD1lu/Dy0SJcTFSCpDhbZ4LeY0XW95QcHlFSACYzLmF2fMHZC7PR7CMM/cdg9SWENHi5mn232ZP8EcWiDRCHYgjUui33NIB3mXpBwgET0Ou3kwcl8NrTtXCy336dYKWXiB5MRLc08h6FfY7vnuBsDSUnH61dVHnbIOlvZVk5PVkaHZIZjkjtnXoRtGu9S6/+fKhfOHGGPjH68O1byvKHsMGY4R1ZL1bR0nezUqlqaZahNpOpICaGXwZfVug61KjefluQrTZieDViU6Poi3gG7j8wvL21dzKaBpXsG1Uv/4cjRe+d/ut702OeaD6t1U/9r1jRmVZ9qZXcA1Yl8HZLo8tiF1yWr3bd41ZfXmN9WDx/vAa/g8clQQWbV5KDRuUez59pWxZv9esTMPCCnmf2jni2W5yX9ezZYhtX9roGeMxGX5WbPPwzidUm/VdQN8oFlD5zwJu1fjQ4wa26Fs2x/ZqTVq3ypYbmns0EB1QH76XbOyDzIOBMI7KvD841WSaR/0xjs68GzjU2+xDpTIOz3M42Ovui4EyjK19VSJmXt3GlZTPDCHu0+tr2xAk1WJpRwTtOcI/2ZSn7UkiD9L6Xrk91Pi29Xxll7xEwx2Y76xFQGdyQ02DGKTzraVAZ5pCDYcZhnvdgqIxz0Bkx40DPe0ZUBjrouPASDpluA4+LkZ1yxiVquHSjatuQxp3TtGyszTIXg68pXLH86QfEBfrD7y9RTDLTCxhxZi96FBY7ohAW0Z4qEqlcmPJm1skPRFcrV+N24BFPM5rYpmahGFHpV0oaE6bOkRfw8eW7y3ZewGWlTpQvzuUl3DuueypUjpNFhlWOyjscvnXcy+VZDit8EvaOycTYzzFThpOF7x2kb6b8kUiXylzLoTeUX1g+cOtyaUIhJkmQSpTQO5Ictb7aBPST/gsSPN/tkyMiv+b0HidaKVgVVwmr8i068lxU4ga+N2yo+HvvJKwPVO3LO76nMCMmza7QBT7ta35g6rY8fMFVv6rb4OhOrn/NSR6w9jecJ6SVoN73ZlzkBB32BO70BUG4fhZDaAybzSLL48egsKVqlDgGobvXnvb5xLw1lV4iqazShfByJoiEsgDwBgKnxUlUJhr7H3P4pU4FideK7gIvhCYcnjdlca7yCP275nOr2Zz42CTizA50Xc3wC26JE/JOvAOppRXWag5mgu9E4IpkSPKHqcrjr/mNZryke19N0naLxuYxlIPrG1ETd1cq9LnQ0+iOKFlenAzBbVKd7VfPht2cFjXYfbfzOH6stQHFsCYtDUD9qCvDYB+3MEwdtEdcF1XQHU4ejrxO4zJ6z9TWhKR0UN6u9Gej+uZU5WerbAbv0tAQcc/Yb+ydrfpphg2P9TvxazPnyYC/qVzu11KCa+dVcL4qcSEq1PFJDksW49IQiyTwznVYzzyQK73NzrazgaXZ2ZRZn2Ew0q7kmKWg1hLoR6EF3bB4c7wmXsu1F29Zj8EHYBnlaQ56vDdVJXeFP1taxVP1ZmcZEXTmDWqKmeoB1tKLhphhT2UI7xulz90uKPZswgMJmpWTbN1dgekxxuXOsy2kkPYeZ+En/YOAjxZ24+HukCVzPnBm9w4FJyMc7HQ/PzbNbTi0I4vOCO3Ioho0VyA9Z9BeqyiPrv89ol0nfN4847FFifTHuFAQwiiKElW/GiqCbpEgr+IPDhi+Bq8aMGWyBsLqdWw/AyDxrnxw3S6U7sfrRHWUvyZVUR1v/vfbUB15/Td/0aZWbXn90aEV5b2Cs7hGCe4zfOtzKTgTOTQIIbgFrUj4Rv+1BrUgAVfNfUXndzghAq8HFsIKrZcBy/5zjdPwgbnkNjNHetZgXIgz9BegWN3FnQUTsyyZ7c7rpSbmQBmuY2NznPOwQxrz3B8DGKBYfuEHxLf6HNZDpq7FDYmNbn4hiTLCgCuuXL3g2xdcxESgiwwLnCQkob+ZOyqy3dKIEhYdnw+o5805b7YDmXtE5Qjg+o0jmfADFCWACTHrp/wMVXu0p7u9lgH5lfFvpFldRjAxPDqkfnsSob+ZlxDw/B2yl78rE5kx2sGLe4F2OEMbog7QzUqD0V7/FssKjkG10CmL+WER6b20FVliakP1Di5IRipAnPADscVLC7fXSQlE11cepJ28M3lzXRGh6NalFp20yWKSybUb+KNLFwTpOoJBiSbM0IagjEtJNxWJU4bcVkQXGVeEKYoTFJOdIMR4cbWNOmR3lmVIg3KY63UtYcqVjAffsjafgGMQXvM8dNFZC1RAKPJN3IObakC3yODoremc5FLNd1V0ZcidtiG0+bJepHVuszmHHT1Kif6N3NMMRXvMdlCHK8sIC6apoIbLvgBY14uzUkfMwCzWrEE/BGHTdKpjPKkJ8k1RBgku4J1II55mnBGmVujWPIG5RIc9MU+F9U7UljSVUMfa1Jy+/vjm3cuP/wdxgd5/eL92/ywJ9axk3yvu6QvZPJJ/8tZTbddDJ0QADqVnchAsmE2nn+4n1AaaeraXQxl0upvyQIEsg2nFaLeVwlNUog8//3xZLt49ltCQ8UhUyRwML1YU92rtBo9DD5UfU3zUp2xs+nCmVBofLrd1z9DVnkR3QJIIAT2OTGePTGiH3BWvULWCvl4xkfvZXtWg1/cS/Txpa0Bsdxl99JZKm0vx6dObV99IV5NKz5kvqNxUovUBmk+b70aY6fkW5B+8roFRzhRN0JHnSBBwZPRfqTBudaW640BVHdYap2nqPT8YyYDdwnBiuLnF+vpvN+hacMUjnvSsom3CD+tI+TsrTlhKP2uv5IozJXgyUdtmOJddVQpP0LfactwKq2SLd9BFdjpktf789tPNL+jm9uXtpxuXNVtk+BRvELSGNkDdVteShECD4IE6E2+YrbChZ15eoj0/oDSP9ibmkOB7jWCn9ZP27UynkcNYC8GAWnfk3cyRYlx5QA6FfawozCpMCZa5bVjJMGu3+wiCFyS6XwD3R6JywZq1aX++Wl+//HTz2nW4r50Hziiv59NxW5qt+Jj0VhTVP59YQu+I6dJhjY97LCje2BRHUtTPLaqpckZQzIk5jASRRNlGoCBtUEq5WQ61aFuXDlqmoOQEeT5BQdWKoxYmilcRTuiFA29kf82J1i1GRpfaIAYD6LJZJNVaRxUTsA8zjwLdcCfo7Pd6koon5LN4fpvtGm+4WOadcrsxo9ZIVZe6DO0CChPZNRq2XnwQPG7KXNeioNxRI/q03mKa5GKR0tpDx2ebqtcDHorIkH+FzlPqsR99seBPPRFOSAaor3nNJbDS0cDrfkhJ9n5ivhs8F0i4MInQCjPCc/kcJYTt1N4pFRgMwOmQbwv6Gt+H0PXYXSMG8LGA5jDbCt6xqXTmwnBDbLJwMSYXS7c1h/EmOaIEi52pVc/Qd6vvtI3CypLbcExZr8AE98t4OsISQuxBdhiOuiOkrhexPG00HmiSoB1hRJg6hwlX1UdZsF33gitVT70fMFcpflh4qenzy/XXDi2vcbM0ZFjUX+h85mFRtuSwSs2VJfh4DhXbjBfjo3ROCZbH1Nx3mkJNO4FZnmBB1UDzMeyHzaZ8TQ2UfxLlq0X2RJXvTQHNr3yHOsOnKd6i1ptfDWobuaiXs4dHXVmuzKPVL0ZFlovgn0pFzjasM4TI3rjAmMnbKLyan2/e2SiF0Z89fpYgOPbncUyKQ/+9cm9i84GoST2GB444ikimir7WfdCMqTGXF/h3sHhuiHKUT737W6aHeev0q1hqhfUFQWETa4OI74C1OKlU2ODD2r0+PQFs1a6Ya84/VnTwaakPWOH1eUQYm0YurrDBgKm9I2cxwzSb8cDOJLXx4GBFngmdWf0bqkZiXErJdOqYoqTGhbSvzCubd0hyzCOomrZMgxkFfmXSlWw5U5ZlVedMaFFtAn1zacaXNm542hloWigtMdXhlk7t0GfRQ45YRCimtmM4zxXkHBYtsQpK9kI6GeIn2m8tP1Ab8sRKkTRT0jQ/A96u2EM117rnIN1Q1n5pNHHB9K4EePEUU3m3zr2lTKbIqYfbQoy6tNjk7fYTPOmBVvljN1nADkYDXunMuzjNs6S6WYeTpGikNsAfmnBdN1O12uYw3NHWP4Ciyche+zGzrYhbQ27amoANsFSRrYreBTZu5EMU5WJ92xrAXIe24cgCSVcLYCszrAajEznzNJeeH5vl04OsIbNgl8rht8Z+8t7FstABpdLMHE8KLt6XPqE0O6j2dA5Gyw2pUqURH881VZA3uLjgTKnStV+rz84t+G50timCd6xrVwVxif2a4oc15F4trBd4Rpox4IVW2ll2qFSC4NnaLocVweJKgMMzA78CnedA8NYOXWjuFy08W564r16/fX37uigZbO4VIPM2zwa921mwkHOJ8s37m9cfbyejlCQhHVnSc6G8ef329dV0lItWVC5Rfrp+9TI84/Z5NdtR9lB5Xv1e/zvwvBr+Nux5tesrmPI4T0ykfchDa0mUomwnf0T//UzK5Nn/BB5fO9Ro1ONr+FZv9ExGAmduHPCVvtfWUuWbWaJ7jsw4jJBXs3tY75XK1pqIfY29NsJ3M5XhHTkt8rfnUs1b2NGsKEfXX1nStP05Uc27n9tKkchyp9jOQjZmVw3ylTnJf8emcV3lryG8EclaIbpTADeLTRsOJPYA9kPaYxa3O53OCclyGIwoFtzTvm5ORJbDYESBfj9zQrJQHCc/Drs6F13vg4BodyTU+H02IJWtdoCytEYj2Lt6Fyy3QNGe4Lj58Kjq2Dwi3KKvJcCVGWeSoA2O7ly83Mg8gB0vj53GiVfDWd6Q84+dpAvzINtn622WVgyE61+u1z9fvwuYCBuisCtSc/3L9Yufr98NMxjshwcYCprFCFOhHAEaZSzY742s1VKMuW4OQL3ICCdJnymR1YttjDciNIGRmPVnHG777q5GU5P0Gg52JtxPl+kwr9lw2yj73ERYkacZzzrFDIfqO0+CADXuoksUHxlOaYS4QJzFpJ22NzSGOenFdXGHaDKtykzPogLfsIB+3XbxxKY7PJNev6TulVAW8VQrnKLjXZEc3lAYeywLQP+Xhy4UM8fVm1RafgFRZU6RlN9XF3pCpSKsmThal4K39PrpMug+T0AKe3xP0IZAsT2qKFYkvkSbXCHGfV7tkahiwCvz9rpa0J9x9uI3IriWhTpmNILm1CnBjh1OvHU49qTSeNNORvEgF7Lvyxfnm1weL5F5uenKyjNfj88KgYK24oa8cWHIQ2GSrNBHTKX/IuJzlq5S/LCO9jSJBWGf0YXtsh5X0/0izKxViqh6rg+VPInRniS+VOo7QjIjPDs5CT+szDNzczuvjmjLk4QfKsV+tzhSIEcPQbeUzXKT6J5ihJHk0R1R6OL26lorDChEuMGSxM+dCHPtcuyJ8D8ZkrxS6n6PBY4UEbbSJt9a8q0tXw2bGjxrfxr3qQvc5eh6ulrS4pVgbirdmF4sHkLVPWFCFlqO8LLR3/KneKlXGdo6aUVuTx+ey/eBRWZmsjmefjej2AZzHQLXhuBcJ4A2ExfU/mZzFuvhs7M+FXeS+WxHckFXZBXQe6X60fT09zGYWM/tnjUa0G75LU6SooCGv8cUqBTK1jLDgqwtxs+wJZ22afzJ9lN3/TTC+g5Zy0Pr48/WWPgcWsLeUMcS4ndHkQVZShC9MCajTUvXoL//7CF7ITm8PkZcH8HbXB8s4GEYDpfOD8oTZV5nbYh9Q4xj9Pm7z89DIgCfeUnzQ4P8dxfx8ZSZqMPRU7/QrLS1ZRPUOP1XPRPXgvgTM04BXSnRT1P3ZNwt84SmVAFMMF8s/8uQ2ZalyBQT0yYAlP+A5nAOP7o4cHEnEWeJPnh9vYOyFH1j99M3sFO/cfb3N8/9qlcm/LBeIMzD6nIpvejysbN58qOlQx4iQmLPzHy2X1prmAnfrfVXeK4+Bwajhbb29ZKbOpRK1VpTRmLI8qvD0ZC9aDz3HS6dimQ82q8Ny/GyhxaRYDppAbeguigGl2onSL2Q7LX5ZUc12UCkovieU6enlJGtQUNjIhQVHNbD7wsugH6h6nhKgOEDVISI8hSOD6jAWfUPLrUgoKIKZWaGzVvJBKuyFaIvxOmwGQMLqwrBPNoj7AwcPdfu9DLJzOiqmJ9N/QUR/F1jyXZwJbJ2TE67Bim6r/FWxb2pe+/Dm1fVJhXQMQ3ckQ2O7giL9UFcLZgVCKo7YDNf0lQiLSegy2aTljN5ndBKJH7OuSRitcRcacIo4bsdKTpaDMLimZ8RczCBK1QgNc+P1qcxr1Ay+7Qx9wPA2Eg4jmPRDDX215e7RvZ7Zb24akh7JIbAjWYPiF+4VLX4Y8nc0L1EUNgoKyqiaJNAnxQEvXp/gxLO7/KsvIhZ6yF14tSU5rJYrq6RJufMliL6ZgVJJcqluxCIeJrmrCjFRdUeZNsiamUNhXdefI/oFmH0idEH5ycD0ZDtYL+8hlN7qPnQN0ptDljvzARxQGMcSuPgEmkH87Jw4XwLqW0+F/El/1AqBQLOMJxvipOwWdKy01aDY3ExeNXgoHVoTGn3muy50IvEHOkQqWy7+ebLlQmCB9AtWkF7VJG1qUy7yCANdI3DlJYCTgEwXdd703t50m37EC4k7+Iq4J4nPLrrENM43q46A78nAie1eogVpautU0k3CXGREixIaU153Ll/s/P9I5j1lTFZHwoiFK3Xa+W3tV/f+m79bpORQ7nJgwUWDCkIUJWbqkWZNgrJmih9YCWjWshqxIAaKNCFfWn2/EcT5yr2j6QpTTDUsLff84KoAdaeaKagxJsLampyKZSUs/G5KvMoVC0SIcxMrrR/JFssVYbVHm1z5kglSedE66+8qH3HTzqmEm8SEjflUZy9FIq2RHfO9If65bL4nhlnn7EAszRyh5IH1dwU30hTe0+QqOK9vKmoQasv4UvggbToyqIgqW9BOZIMXhOZx7JAXF4iqsovt8hWVKu5JcZuPryvg4uTewfp5OIUh9LbLExLTNNgtrtF4V9+IwtPser45e5dZY20c/sczDlev0Z7Et1lnDIlVzLakzifL7Gq2tLIUq7ya14RZkRoFzt06lSR2tjSAkgLyjMhhRCaafa3auWqG7jbhLfu3Pq2I2Rilc29IVpkQdqIZVFj1SQUCGUr15bgWlQr0XOTDQRp/HAF6nqmKa51zZ3pH06ThLZKtHYLQh5Z9CXLQePfC87ob8YzGyGMTb7dEiFXFaHMvnotj2K64hzajFfnoRubx3abH5V9xt9SigOwrbd5647/dIAmzu1X1FKZvEuMAIAWpzQNUczj+FbDAYT2OK5sGI5SzI7FMDrHaE/W5dcFFSSCdAfty3caCw1o663eAgvNQAEFRKi4O7MRVRLxA0PAHMwtdMG4SHHSapaFAvNociekrcUMd32F8+O4Qmlgy6tFFug875QRThIeBZ9ezjGBBYew/yPXUNh4Ti9RW1B7auqNS1K5izfpd2BtAdN2lRAXYD3FpPrACBL8AOF5R68MzLvfvDjQuIqtHkgvgudei8qDcrwp9dTC508yam6idGu+XduvLXAIWsKo2kekGU0t7hb64l5y1dFW5iSVV61s7Py2imRrFqen8nEQr+BJomXwuIg1Cr3zcChWs0l4dOft2H06Um2WWQauP/eQabeQ9kvMNhxwVVygOrdwROHEVPKzVqpR9qZIxCWSvrAtVhCD14aG7UHDiLZZsTiiC1vqHlrCR0keE4n2tAyClBetLcJ1zpqs/oJt+Kotn6NUJP1G2p7D8C/z6UCOgpWoHj3MdMj2nxD3LxtJuKcVUODNJCEaEW+OpTJoroBLX1BpgBVfGVCnV3fSiNzri3OMSPCD3oUqF2wJf5of9BY01N05XHTd692RAG5LlCf5ZyZslvhEaOYZ8VLYHPWJ4My73IWwWeIToZlH4gtBs8THQ4s42ya0XY/sdFwOR4RZRJKy90/B0VxGChJx6Edi8bYo9pgtJM24wOLoLZEywyHm6NuIiKsW1CVo9NKTlN8kBDn40KwlvkSC7LDQvhrciR/2JlpQ/4o+9lpUHZwLstqt9MEplC0MvcdyT9nOpqXXGcBVHN+tNYO1v3CFfZvVJ/RwYbMJh0EjsgUnQSUK15RgewrCa0dPyYQp6JlF03vQTMESco4JjuEQnN9adJRRTJRxE4bpi6fjbrf87uLu61THu5YcZ65U9H9B0o7fIfdkytWoUnbPbQaGS44DumVqXJTlKJd4Z1Mhi8ZhY3Ljysu/U9/6nTPdqoxFmcZx2NuNCj1G9l4170HkDDXvMGu3i/PJq8RSzGgXX0UeRt4h/G9zTdj8Xp1shJNkgfO0iDsb0Zbp5nmncLWVM+s5w7rt9cDSgy3pe+AwF5iq8+J8PVtorw9Wu93BVFDv7NuReWC1mktMhtV6bnEKrPmufd4RzOYBJVUck2YPr8k5tjzLk6JePYuxiFFM7ml5DlXiCVWAA2/3UpJycVzJPRYknjGC1NwShoEJB5jIi4nt2Du1DpnWEc4YdhsAESJVYyHGVCg6X02VfpSW4Wig1iw/H9DGRWo/UOilt+CqNL36pi9Kg2/BNdkGOG5JGoDLrsg2xtEL0sBcdj22YY5ejtoFXHK2Nf0TJhvgLSvEFkK/DN17L8FTovYEKrAU772KXwbee91o77T12qv41gKlaaow0fC3X+33XX43reZ2n+LXGsmU6XmlUDzZ8JPKw/Cys+psL+PfV4hOq25e1BLYqX3rQ6eXa7wq37EVreLaea7dJdPmwPG+VTTNIDLtpXvqGKx4Rth6u8C9tCZsImXuKzyUDyQVF3hHVtE+Z3dyrfg6I0LSVi/R00EZlYcMI3uxKMzb9iOBoI9mWya7FTpJ4M2GqvTXikb6CL96978D+sj92RbRPEHRVHijU9RMs5LRKTrFS+XplZaqVBeCGwfG2YuXN1dv3pQFWCQiMoJynBiCyVf+NXq/54H1OAno36hQOU6geKZBfCK+XM5ZH+uTJAKFi3oyHs+Za8Nj0sEs2mPGyGzxqEaXBUsccdZYMJ1gPG0zT8HTLiZR4MJJwg8kHopvK3Dqa+p5atwlIyKl9k2Qq6SDDTd0QZnphvJcq01GdhxqX5kV3WqKYn7C7ViKoMgxm1MxHDOPUgjUW511p9/Ycmj2rWpZve+e1t6Vmld1SlYfydJt7eWpbevEBUSl3SuYwAlPiFjNO5Jrssg49OFLWNdQ5ns+aydDU+wQ24wMQWYd7HB0R7RLkjO18rQ1Ot3iMRxso6KBSqSGqrN/6hzIik5QU9D5K5HNB85VBhuIjUdq2ekEBuNms4ppscm0uIbMpcNFHloPfEeboR4aT88INe7YP7n9GecCt1uvn/BK2vWA5qLIzLQ9tXNxT++JC14gQeAteaiee6742tukYwZs1dk1VdJcMpZmm2Jli3bC0wvGYYeZbILAUUdtO+5loLrdYp5AG06mkAKKMNNS3pDysUyWbxIq98YZhpczXUWwF/A/Dnte6dBWwvfkgaBaWFNKvCNyZQewpmzla4A7VemhK5el5DhVRPWMsmfQD5AVcK2EYRHjO3ghHUWOhOB5OAfIN5KYKEwTuRLtZJvJ7woR+oUf0P/H3vc/t5Ebe/6+fwXKVynLdxLX2iT78vybba0T3VvbepZ9m7p3KQqcAUlEM8AYwJCSr+5/v0IDmK8YzgyJoejU6odkLZHoTzeARqPRX9LcxOCUy8SSvaDMxErBi72tlWCrR0WcxS7SupoeLXGaJSY8RhGxwR0Fnlsc8lwdcbJ4rp7BTaY1W4fOlObjKaYKGtWGm6uOC//oc7rx/X3OaHDHLQUhQQMPr6i8R3pUJDMcQckGGH78fbXEB8UUg6K84ZSpWqCcya3ACRapOXtWHPHlcjzsZRw0puVdw+Fblovu8FfEM09din2pf5EkHuhzXkUzlqdBdU1pDf/1rcsi6awkvIq0MZ5gmpI46Fr569uyw64dfvSioBxCqucmi9S8Edhm0jO8WYVLAoHlYut8w4MB3qxQqw7lEFghJ7KNyjbS7kIFuT6TCQaec/sEAxCCakascJFN5ht40DICWCHnpoRV7rBu4nr2piAPq6IfgCTkPuy6APp62N4FAbSDsw6kBzD+yKIpGH9kUT/jmnZ4xjXpfsZNklx4zmHcXtYN9eBawBA/RA0YYMEnxQDrmZWUpMcxyezjcgCjTEMGJ0FIxO8NPD1uh5lbkGdEUgx9rmfqYSIb6T0QqWdZG1l6Kg/Z/ADyNaeC2CIXsnyk38GEwOlJ8RDT2JbSB16GsSJXM6m4IPPgx2k1NMLej5sMwGFbtE2xH4OYjQ6bvoQbftsPwFtNGxsGOHDpCPec7aWVCR4FvXG1I+N/EQlmq67uCDUgAe9eHzrpa22TdyWV2U+1O7UfjiPiglSS3DCLUQ5PpmjxaEF2pp3kZEZZTB5m/+S5YDiZdCkLEnERy+bKNZ5lgIEsjH68E2oIB7OuECoo+9E9rRQ7MrRzNvN1VNoX0esNEVrhdG9IVOmb05n7ZGovH8k5AzVWc0mgUr+vD1UDVUC90QIFBkofjrDRIaCy9fc73jayztYYeyxYTcuM2PazNtfhaEdrc4DfX0OHYPz9NfQkX0PJQ5Tksqt9eCCsULvY0rFty9YYauIRMc9o3FHq56ghkL5C3wduyUrhbyuJGfpgawyi5zYn8LkpjJ3iRz2bz/6vfGQRZatz9F6u4GHt/z0zhcwrwixqhkrKVjP0n/r3zkjHgiBb0Q9xhrTUFREgy0o0dlnILOZbViwmuTb/UmuEXTtivkTP9Yeedyx3scpNUnyKH+aZoFzUG+igoIa3I4ASsiGJhEO1lI3iSOZZdyxYxJnMU6j9OYl9VI7fQz5XNKESPCqzLBoMxLk1MiIiwhRule7vMwSELVVuFyWkqJ651n8vZy/Bgr+cvXxRdr0oVp1rSErTlMQUK6JXD0moVonFTdFUoLFcmprjprYpgqodao2ZHl8v6eJzZs3SlNrKL4yoLRf3+gMrIg1egTJBoLKSeXvteSMGky7oJN/mqbGAcfxo7jkMR/eMbxMSr0hcSuDMCCwmmVp3KLYGzCkesWtP2BVEE8YXgGim9kQY+Stujz69+Ez0jDcIugPj5AKPWhERBvd0wq+vxqlnwSd514XZ9lyugBmF/Hhz07WBJ4zAsblPLOxbajMVtCRTMlVrL3wG5z1OtvhR6o300hyjAjNJi3Q72am8IKV1lNu82x3fy9wbeGiv5JWZU6NIvq1f/BGWkkfQFtw1Y7JMn9vSlVB0UuHo/hytCc5AlbtAPSSVyCOViy6HHviP9VYOa0C0cnmhiktlQbb9xKbu56OpKWWvKdCMkqrdfX+ABeMRfxoeGoX/e5lw2YEkptVk5U/63115gfpvrudjM18Z/jgb1HrS0UTDUwKhTWlM5Z1eqApTZqrxVCtY6RVXqcBVB4V2pBXqQQ5xXNzpAYYDq9bsgVbU1x/efbzzdQbao0mIOTO8a2+PRGYz4bZ10V6JzEU959YnQmYP1zuowVvWGdyMm63RzaqQCd7U9HAn/MSYynOeqyxX0MR+AkZ+NVSQoQL95BFOuYZuE7XbDA4Av6ArAE+Zxr7IlxNAf2NoIKDhqhKHwJ7w6P4oq6aWKIMNYVg10Lvgza83H2/O0ZtP5f/9evPl9m9di6fciOAfCL0RjdOholzG7kebrdYpV79naqBor1lMI6ycQ0QrtwZw2U6X84svy8OK7u3Nl1Y1iiHyAg+ffGxXwHSIZIQTEs991vNAqd2a4twaYdMIM9iblS56wRbd2CdEDWkOoTB7MjBCYt0h4Ur7Ec+jcz/qJxX1CPD1W0bYvWVvEHvZByBI6NQYXNXvuhyZH4i5tveugXMuWn2De4H24Ri2AhxQJOTgBZoR3OwtcWy0GsJQuEmOnxhtkuMBYFP8sN+SDYDWRsKZoMBhUDOe0KjdfGn3M0wTjhfMLxtq3N6GhL565tK2qk0rQE1jTBytO8/9KmbbOYl3nwjDIO+WYEGlR2EWTp/I7zY73CIZqzITjj1542ikCdc/DyJedNLwcd1JoZ+1GntYqrnEGzIzzkI5B9+F9zs9+204z1UAixVQp2yeCb7ydIqv0+4W937kS/49kRvTs23IwxPlTtrde/Bw8qaoLGk2r5ueeXtlPRKAQuHx7pv5hBut+yqIJlvcgpgwuqfaXI5+VwPd41B/okXuyB93laPaNquJ4AnUzHGpl5LPElsPMpwR0TVkn/0geCu6awjH43Ra4fedG2frIbe7IWauVNCrcNlu8BGYlL5zJ3w1Mx3Tj0NL0m9HorSkQqq5vp8cVZhrKlWyw4eyN7EiCg3cUaH2ni3F1Xg3QgP23kbfJlo7FgXffiuq5nKNL49CKKaiFZkWntIip0k8b3UrCU8obYdHhifCuzViKBJYROv5grZc3uEppXmiaJaQB8pWc5zR6VddFM2PtZWsZ3XXyguiC0XOjrG6VZTNPUUCAzPjTTsITGP9bdrxE5HPo4S32vMGJmNqukOftUkmvxqIHTgw4JCIANMA2V/TD+0l4epPM2qmGgLgiA5wRdax/vPgQIY9sBqig7BC/Iicu6egYyA1JFEmiKU5ACgjagbhAt5Yt2AobbCzCUxoJ43vhGcCMY6Cz8Z8jABImVSYKcwIz+WMZ3KeETH33+MD6qk6WRNTcr/IgryMj2bahOMcjzwU5ljmngapQWUMZDIsFMXJjE988NSIEdH93BKE2j15lDPykFERSDH1UNrQYMp6J6UMR2S23mVlhyWVUimndqdk+ULmi1lH9fppiGVYKSJaPVgCE0uwIlLNl1zcz/PJVWZKVwIrMofGQfHcZgWHpdlcID80Rx0TyOoG2RXMWvTicR+eNqK1oz3pXsmD/2ERIxoTpuiSdkYoFXfozWquVKgkdpder1TSQ1fLNhDRMt5RD+oSFgp9shuHUdj7QrEh5hLCryox5iYeq6sZlgnWslmSNtj8HCX0nsCbOWZFuAZ0Hj6vZF/WI9I1n7bAEltZFO1eWkrkZFDUesEGGhW2br5W2VGmLZv5teOvL0Q94uKwnW3IXehxKlC0PF04/5ILhJGkbJUQoGf6ZIBvB75XkaD7Cbadxy9rDf2tRmWuIx3r+L+hmyKl01+vCnpGd6WK7rAhGymj48B/XpNKrqkWtGan0tjUlJ0RaMgeBQ4UDdZvXYMr29kfAMyul1MU7j0RjCRjuAgo4F4Jj0DHaEROT8KcoYRvL4qk8qHRqcDN0SS9L0oaJycoc0A1APjxFvIAQHyLqTpBWTKoc4TOOINkur5sD8vHMXXEOHzi6+kJWRKxoRGUqmexKRis/7HGIt5qaw6yR0Weqd79KL4eT/TBUEu+VN/TvGi8+3H41HOzB3JFcHJ6M0MZomzDk5wpLB6NCrBX7o0tA6W/sV3ThMBv14+ZFon0xFJvsazJi0NtoaKkYbsb7Oui4BpnyaM+PL8w+jBIkMfUi6crIH9u2/irXJTlrdukN5h8j/Rhvv9l3zdR5VORSV8SBN6Kqi3A1lyqmfkwZxcMyjjRbx7PbbkzpKmrBKnvuGhACRkZmtTd5cuXf0D/3ZC7g7Fbg5V0auPixNZBwffEZM+bUSlTvGioYnSLJ/bLg0VD+Ze+mqKPrO0ikOetYR95DgWLYNKqIi+cNytolyRsKSMtN/SOC0QecJol5BzRJfpja1izpPTXsUI/v/yDhnau15VZXNbtMYuyfOakeVdU5br8S+fk/GtdYf+1Lonf7/XrX+W28x1Zrb/b5R4Of7duw1i3pszcKQpS21JaI5lamZ0WyIfSDBpkjGiz6ST5HeuTPllGxp7qp8nIQUf7abI0/Hw/Ufx7HPKnyUnwk/67YnPf4/40mfxez/yTlWbvwd+wAD63ejTUGfXVuTjEI1R4RjT03HS3gdKEUJcQGktoLs2kDYDf8ix+L6/ip/ye/H28wJ7gQ+ZJPwA+9TPM/gf0UyPf98z9/d2jKhO9TulhhVb1EJW3D6hze/2xqyJtV/yf+xn/PsLGtZexvutXSMatVNwB0w3ssVpnDf9iI4LiZG4eW0bAGwjhubQUXKidaT+Q4kcoS76A43pDYxP/i5OkFHprTPs+0MNQ8EZgmhXVSF6CctMo4nqG9JKReaRX+DJPkq5qcPUiElMDtO0V90I4vqXyAaXEfeBdH2/cgI0+MvQrZfmDeV6j7Wh4VXs3lCSCzlowks0zpnalMYSlqYdoPoUk/Qa25Z8vfxo0g08vIFe0O4iM3GADxdQatV9ssKwCNhTzCSalSUJNbwBpjzerVkyB+CET+2QQbQH4PmNxaoB+jDHX5+D1jx/7Aerbo+nHKMjXnEg1S4lYka5UQ4N9jw4SzTAB2OaWpERAs9YsAl6Lt0TY5gOx65QYkw3tvdtYtswSOS5fptvzxIzV5uuoE1Wip1K20Ff43GOCjjszYTmBGbEM7DhtArDxpjxvC9u3hbmVqu890vqn5ogcmemZkiW3zvBmNfcUWjqQH2xTvuDMPaPMHdYvXKuwgStvmAYwzfCm5cT0E0kIW6n1JExgfX2dBnvlyrzkooTt3eumGRZUjuorV2+Rm2szmXee7ocvI0PBNpijrHbMvwCmrn/8GHY+Frn0Fwzfi5sbvwM7zoU2TkyvxRoL3cr4bIFZvKWxWiPo+/fNZKi61oXmUy9m6Mp8XGKVC/MRHkW5NphNnFgZ5idRlHAJU1+P3HMiWdKE1PIA0V5+jHKYViRn+acQAZ1Fl+Qj3XLAZWFybMsGzYrrS0jOMkE3NCHa8gFvebvmRRW6mb75SJfLKLdKNcDwFbr7MSabH/VfL++8iFTQxs0FFD1GEwp5UH/ygwAX4DzjtMP3sDcWGFjvQRi7JRs/GlitE15k9Pi2x6pNXIbftH15FUiCPOlq372qNbp5aKlV5CUI2Udoo1q1B/GEVGS3W2LQGuCYnhpo4j4O3tO/BDdA73o5LZai1AfMQeeYXVJmpMpRVjnEnG8er1aCrHDhnMdJYlROI9S//OrBuQz7umc/1NWPRYOWPG/eN2rb54Bt3SysBSPtIuUx73et+oF13j4QCfNTco1iHo2u8ObRwDtF0Ye+hdPf2MEIETRgYw80AeZ7FEcLBhB2ag9Anzo+HkKj9s4AaJbkEmT6om0MJxzHh6gPbfzrMdzt5sAN/+zy2VglrP9E2Wq+xPpS/kob/eMU8a8V+MXFI8FSoZSyXHX0xH/251NC+meLtUPhPLs8KbSXHrh+3BCj9VRrwrMWUEyLV9L6Aw5kMQ1i56mmwr9gQnD0ZKurY1UdyBN8yM/RtCmULe3c6vQ23rwzQ7RcFF393sar7KNdO+Bc29np7UmuG/0N6J7gVmvuZ2WsEVhUds6Lu5CJATFus5gTCaEgphM48bUUt+YkVMKTCLO2/WV6x0p0JklxV7WiwZHKcTJrmCEnfx0bNLGGt/3sdU+FORitrI9GYohk05Lrs+J3Wsv7lcINYJFahiryrKzBa4UEscrQVCqMqV5EhEUELYjaEpsHbJc0vLNWfTV2hrwp4vqn+UkUk4ywWDrN+/HW+MlSLgiKicI0kecoAzWIojWJ7os7cmUN3w0o8vtEdygrbv+Wv4ZGfhFOojyBi/wC62mpyKIIXKHQ71lSqaR7I6qM6SUNN41SPzh9AIN+vP07Mm0EMZJ52tRKbmIpM11Zinn9yNBvlMV8K8/t98nX9m6zouXFXNmvD52rDp2DhpYi3q17Bs5cWwfh1tbpiyPc4qa66VZEmSBL+vAKPfsvYOsfTZun7t/QhwWMUtoStY74Zj3Z5x2No1bi0S0xnwez3x3xxJfpkpmhS+mpdC1YI+PwPpWaKvTyHuI9vZ2aDxO842Kdr0jWStR9gs2qgSBA8uT71Bv83GLNPyGlv7fCkH05yTjvqtWLTmXfvq9Ye5S5zrYkrrATYm/0MHDQnqhHBdTW1aCeEofooTBLpzQV915E2pAVe3RDCcuIQ4EWuYJbnW89jeRM5kKbd0/LGN8QEfE0paO3RkyWOE+U79VlMA8H7O8rQ97EkC258IIvUlRMX5EfmvDG+H3sGBXHj+tWUkm2qdWLLrutKCKWjbeN4+XZELUe6QoEF1sT/JCkG97RH2Yqr0wzc0Dfefvit9iTIuzps1QVZIZ9nRHCuE3t2AMFNh0SUSAZKBjKZkQILqYRixnapgQaRJStBszVsTBJwuJ+RJTNYsGzrHVqhkFEWcRTCIqyc1cGVFqyAyQ2JUCeqxXfDbDqqqUS4WSLW80lEHqpjfcrLLbagmQxenN7hRYkwrkk1nWibQFBMi5U+TrSnV7pBGATRw86j+wYlfPI/kYfRjjGCp9XWxmcV3tENBosoGOcR0PcxZaB+kmDainEWE1E1NSGqEf4PRM5Y5StnvnRZMEaN1SBZLQjoCabiB4WhKkdZFeTkDWX6S6iURonlAWe6mWeJK4Bz4Ue3lwPFTeFNqpVNs7tu40tvtEaDotVnoKHXZIMC2y3vyeEpVp7I/yWcaM6hzLEEIO6i6B0aFwrHYKuy095sCAUYWbTl2OiiEgpI/G5jZYkSWyqhFqFU4z0vK04WZ4SQaNKTyF09uX66kXd+wxR5mZg+0omdw0a8xRbRUylNcw0h1iiO/O3/+MYu+tYVduAjZO0+KNcwObRprJeKjEVkMry6OajkPznCq8SigK011SlZoB5MvBzQdjGywVf/JO0XBXml/MD+SRsQwVnesWjDRZUo5Tdu8fULtZnkC9Rt8bnO0HIm9urc8OwOaU+3qK/d0xgrUw0Cuffe3vz5UJmJKJLGlUde1lZ5mGs666z2A7qux4P9Jd6Kl+o6oG2qwpPE2x3YaNQaPcscuQHenru6kbxEWsKFnMBnBaRNXkWg7FxrSo2qKQpTbCwDz5esn/QVApBVgnEVGYJfiyNUMUzd9S56iPtQhN+4XbU8fquJEw2tZttfeSq5V8pet4KbiqDi+DMUUhg1n5hsEwLnqKX7SSppoh3VLpCR9YL/gpYTcBmTUyJ1wQi7JzeHfLU2sOXXFiii9t3hjHoNKatK57uhAgFgTRp0mHAeh/1B4awmLeLsedR33nXd149kSO3XAGuKpO9pFbFvcY7loCQ8smemTT6T0SCnYtuiUK39BuZNbahhyEeRXlGzdsUWLX2M2efXr9/sZvV09PM4fiTayyeahEC7djHTC47M9f894k9gtTe0YQUn+HCWkjOUWMOLUnscjKPDVRWTOmlp2qZCTvSZ5e1skOrDJ4RdtCh0EjUq8tAwviDT4KEplTNJF+Ofq0dukD4Uhkq7k2/B3phU3iHrN2VKmNHmOkLeLTWxkbctHOwQpg9wqnUJ4o1bl31QolCDz2VKCpja1FA/bwFQQJTaUYRnKuO66Fv4+29Jd+7LD1m8ciy5oahBLVSIDsfTG4s7004Xkrq7Vfdj/1Wkf4nSOk8bpkYayztQHJNMwhiaPtZOLvQ4rAjgwAlqREA+fW5Fvq3essHiHq8JwMEjOxqur6Cq4peSRxyIA03EmEpeUTBjbWlam0cRlrMfsveeLegMgJ7rhB2o15fGVeFrUflRq+4n2z3G++oeLHjlawqogyr9XRC0qO7YEC7jiDqiG5I49cyX5hbxnNpsklN8vookQG1Ywit7dFBO/fsCIlFWV7KAsloTeI8IabBM4bScibfBcv7InbD7iPvmK/Nd5x+5kwJniRWs2154QkuSAl5jt6+uwUF8umzf1D9d6kwiw0YV9gweURLTEU5lNUzmeBaX1DOcOJxIYJ0IFfHeFKLS5UL/HbTWEQpbwldrdUMffpcgeEdVxCc2BtaA5QkSlYafXnvn157FJXFjesTAEK2qRKuDApGK7ohTNuelO+Kf+pWZqhPoaEB+xU1V+D1lfPGNFfPTgAd6mIvCP5NoH9u9lEbnaP51MlOJqOlnNkJ84Y6oT6DZAyrQAfmQq85KAQUCe7q/UGQEN8iQVZ5goU+FTuHMiJ5Lp2eUBzWsiCS5yIiEsk1z5MY7BJSxIKNkMnXnCs8vUg+N9KWOgVjNjJO/GkAAMmpSVzdoyJnbn9yRuzeRGdYopgsqTH7uqVcXRxdSUw+6cFVbWrZvWYQ/LQiwnoL4VnNOmWIVnjFRgI8VYXXOWitAJAzGmtinVW85Y5YbLVjtySz3ArFmN9pLuEV7yekFz1dravW6E7xCnXC+7XYl93y7divVO6xUYWaiZzBVesUhAHObc5WREIikaIs57m0e65zYMoaV5T6JjYNQ/1SGygmk/NqYEwtpjJy1aoaiE/c4ESC0qltGL0p6iqmW7nprQ2iIAnOdodXt1lXa8GVSkh8dCHotSK7ZnVhMv0sNnQGTFJPH1L34wKbt+ZZV+t2F+2k1uTRCuhhjXMoiQJVzZc79VJF3elVXZsh4w+gAsFZOFT9NyXOJj9CC/+0q8lnyuWdUYYYZrxWZ9DutGI+egwM3zwNuzPhaIcXeNC9yd6CXIEzT0iY+/ndmi5+ntiatu+zx7Eai8tbfaHXMti1Cqjen3vW+6g9bporhuG14KUKvgAOARIpj7vC2/34XNfEoyE8Mw+2L8ZAzYjwe1jQ7rAh91MLHzp8ZRVctrRnwTZniOBoDR9trLAdxzeV/Uts59MsGqc9bXqZdQub0NrfFehECnS8okxJOoMXtM6HYTRkh/a9LI5gvFptxT7uLR473V9nrsDAULOoZDjFD6fD9JoUXsFq+Y3QnJv3rlPkunS9mEOmXj5Cc+uijPW9vfv4xNGavDDXFI+/2jT7Ly33XA49H7T0lpgm+fT+lPpbr725AEPromiFefY7a8zpC7TF3VaU0MfF4BtbSlK5PTXdsCaugocLKK4pCqgCAqnwpgqh3UOd44XcW4WwTlWvtMJs9GHcFlZNKDsMiUOFdfKqyHmS7IJrCg0me7efJLQCkttTUkHNzQYT2jniWWvWQVmNVEr3p2qv2BDRycyW+9O3W5oi6DVfOkcdL5mTVyZ82ZDPLgXR7SXcR3Hcn6bp0py3kLaLHnuuouwkVUVNR+hD5vPbm6J+Ybtc/BhGT1U1VHVCk2OPjuhxju2nPUFM34OesMJqyqmlMPqktLelUUjrNJVGcyK7H6vG2xfGYWnqAM4x4/4aGIMFEHCtvGacPaY8l6UFCnddxBmydQsTgqW6ECQiTCWPF7Dbzn799KVbQAmVqpbAm2ZLic7kOiXpi/OxyqgmPH1LP7Lw3tGEXCxwdF8Gp5fC+fXTl4LdPbgCWR+Znxt9QADh0HO0pkRgEa1phJO5EdX8tFRj1W1c3MQcbGs9FfUcKnrC6L7ul9sg4pLb05RWeSMbLLfOIevy3E9urqLq96NJixqwVXVR23ndF9zmjtxLUk+gNrsl5VeoXhntsTpSnGUkPi2Ob20PcMPthYGI7P9BX51uVRxW52R4ReZQue3oQTJaR+Aiu6J+O1WCrlZEkFh/YpcDDKCPXA//5GL+HfANQHsYR8/e6089M/+UaK2XECtzV6wzwFRZTh4hh0XxXddfU6AESkVAck1Mq9kdA1eUnHe6XSYIPINaj/p/IfqMVwqmU5OUZ9psDQ65rPLB8y5f47SM8LxySTuUlV0JuYNYOcaxeFaWnBGYSVsFqSgj/OIcMd7t9w1ruAop55ryyUjtQ6NsIV8iXAjSK69xoTNbnJ0Mr7fFs8ees5czsqGRwosTOvHfV9yxZVEnQaIE05TEgzh1XC6Se+rT4SPCZd4kPKoWSv09SiZ0lMweQTImmvBUVmyz3aNRPKBrlkQI4+0zfVtsp8wFLCrTErn7AtP9WDNKTJQfJ+qyFMD1jx9dKUnOIMxfS9tEyGn292cc4rBJmVpvY49Nn+OERo+dFStnMk9TXO+gRVVCXqEba1/etj8wtrSlHaJWVLmSGE0ksmUZ/b2+Ju+5NaivVqXWbgGb28bqTbyVjBPDWCAklfrlVmBjsNB4eIf0wUD0oKNQyISQbAqRuIHHoVEhq9ZWwJhxR2H5xtMFDT9DZthRSHJ2z/i2eQM7HEqJoZJbsSamVKu+mSQxe24NGyUo2WjlKPS9xSJq6zGB6UHtWRvfLzTNgqinqZv7oVL805wI/jkC5xZVj/PAJXTduBdmUgYg0Td8954SaMlUW04YJ54hsoP+lBofKFTkUG375ccEpkxYUJUrHAxexbPmSdwhHYtEPrJoAj1nodhz26IxHioBiSaabnvXSh7dk4O6sn9+e2NHkSU9s1a8lsOI/WxqvlLu1389zRlcLfVxAv0b3xpFCBzBgzBlVEGllBm64VLSRWKTiKUVraFzXhRHbzt2uQC/N2H9FeaXOKWt8hPDGM42fxrH7Os4FlCrA2j2AINmrDPqrwHU+nWB6vLff5q9nP00u9RC+Only8tXL6/e/OXV6ze/XL36y5//+POrV5fjQP8KTWGvbxA26K1LzdYOwQxd32z+pIld32x+Lj40hLeMi8Ed/Av+fvppH/iaVA8mQVKuyAkI/BMACSxxy91RRG4ZGC5zbY/tswP/7eeLny4vLy4v/+3ijz/P2HZm/zKLeKs9WQ/mm8+fkCARF7GnVBOxQNH1jWuTyRcKQ1GIDcVIkA0Rsv3Ucn2DEs7vO+/nDTEQlcTzLMnlnI+qF1/2x9mXfSiMvVySyPplsouEbEji6pSfkc+/Xr1wFpGVhZ4086DNGYEWqc1RE7wgSa0PgSnArkf7H5dgCT9bcj5bYDFb8QSz1YyL1eyZlu+z6i9aPraiJrcew9V3d4WX9fAo4imxRc4wQyRdkDgmMYp4VhQ01wM0B4YvrJXKXv34Y5YvEhrJfLmkD4Bj8FqeQ6eTcJbpL3o4+6GFY9NksxdzAivQLjdk48J6EDtPSLhmDKUr0j3SgYViy+aV5/xAYLbq8zRXDFdS+gxCMYxT7qeXKFpjE/Nomt72NaQuoIbq8rCTCnkIeN95vZA8yVW9Hht5IFFuHgB2Q4Kc5mAL50u5ciC7zHl5vOUyu/FMdyHtR1UAyRplc8Y3xDFD3NXjp5q9eCwh61s8zGnoSkHM0tHdxNxXG3+mLMvV3H0opUlCbYL0yAsp7ELHK9SSKYea/XChZ/YVUgKTJb3/ofDhPrO/efaDl8Jn89dCbWaCPzyiH1HCcYwWOMEsghRH8Nr+UJdd4WgtaPonuYOxsaR9U+cgrAlOao84o5eaKwxamDNwAFqMz6WlgF7fXCPCYniSGbikzIzNJIlCqQizBPiyECFlUmlxwW3bs7jKk1lmnLXss72rqX6y4zVmaZdUqnAgDqH118Or2dZ6fALA9otK4UPbrObd1aAORfJ6QwRekQKHtxBUJzapsMrlPOJxd/3szkoPQ6o87CdLKFhvsCHAZnVPvpUrWtE88O8OvQN/QymPc3iQaPpofGrGDY+GK5kudWHA96qLLs/RDrEByJkVjt0VRFkgAxWGeZwU5GtOZLgOjeDPdIOiNWZx0nAG1umTh4jAaGERdAxbp70VVJF52AaMdf6BAvJQaE4CjqfBgeN+6uGuI+4ll/pnfMvFfUgj9jcYr4daOO4suWwQkziCBRjs9fHWvZGY8c/RJaJLJBVNElTQQoxsy8XH1ZqILZUEvdyFNLAGqGpyC8Q1wH40r4GG7i5IMUkUnj8RMISXigj3D6j+qG1FV2fdpk+h96//Pv/0y39++eX28+0uXoIruF+KAW1h+13U11jgeyro3GcE7YvgynRCLeW4MF0FmhGoDSySrhhOgokhpdDCz47qsfK85Odfc9JqVBbgFd6i2GJqGpJxtCA7jz+HqmkjoMPu0FZJWdPgLFoTnJ2jDOeSnGuU52iRy8dziKZ4sVMtyICoPH1uXDqNqVqSlPnxuOzpQJe2vS76RgRHSjyiu4sLm4pg2h/cIQ5UoU5OxXTz8rSR3wLN/P+yDYda/EBTeSz1erBxZ9OxY90jvhZWh57gheelOXTr8JAZ3rKg6uWTGbN/R6uHUNaSwEwW+uTbTo71TW74m06fS9B3cfNSj7gg4Swne7hdX3XTMh+ZBzQOcdHvlAh0s4u2O1gmimpQdSPdWAED0EAztVDulWoElx7WVN8GLH5jvY5F8FwFi7L4BIMhr8HlJ8+XS2MUBULw0Y03AMQE17ZyMpaYJtrU0zR2CiL0ja0FQZOQzumxkdmawIufc3tsbuE3HY4P+9dxro+SCDrc+RFjhaWqv1KOdpf6Bnn6wLkrh6o9bhHlIvX44Ui+owmxzxCtgYuFiTMcUfU4647OP8ydUCT0uNfc5tSgnXH9LZxLQfxpL/vCfCcICY5S26VBUX4xhu4EKNv9HQ/CaFs1DkXZbA3ZUgmNsJPR2qDx/adXBH/jUnXrgCjLzbSk61DXDpiWtzdfEGXofWPUKlmjAcLRLct69xCGLR2OLmzoHrI28XSabfq+XnV19P604KbSyIHgTaOIDwXHiNKXhbn+V0BfxAczLKoPW9hA5mKf4mhdDy8Zra06R9pHb42M2DtIb4XVkc5T8t7I4eTUZVV9rPTNYzIlwpfor5rAwdsVsEJOzYRQYY2E0XvhxVrTfsHkCmowPNiqMjwca5RLxdN566kX7X6rr73T77WR3wLh9hvzkRW2vRBvKYv5VlYuxL+Z33RciLWu/a9/wH++hzsxhLL+Vowi11yoecTZkq5eoSVO5NBbc4kEHXJr9p8KRSgBERsaHRblZsdohLnZl4KKNBwxeWh6S4frsCeoev3bHz/8z3fR5euRUUKvUc7o1xx6AheVqg0nLogcozWWa3efsSfzc4n++uX6ChLEffW/7BjAU09M5MiTs2D5NxLJTdOxOCBQbwS0mMoswY/zvSHatfHLRt8I3/IkIZFqxVwPwGyBACw3E26adrMgFRZGg4XTLZ/NDhAqz2CYJiLTP9mTFXX3Olc8xYpGd+10qLs3nKu7c3R3RSVeJCTW//0esxwnd+ew0O5uwZlz189yyIxLzYwpsIRqOZf93L41TQMpW/nYvcG5hD+Z/zT8fjJPSPo/b7WEi//mWWb+2wjC5C/3SYI8UOULUTvEp8ZFSb5QeiYUgBrlCB5eiD6zLTzthjOPde2QOogQkJZbpLjJzqZsZVOKbN9rGHtFGBE0amrd1pgVDDlLTIx/ufUzwU3PZux+dWH75EWVb/YF1Q9/5CnTsF7++8g0JZC3WxV+eVdSgVyYzc31VV8kuol8PclQasvlc+kiqmttJr2x1d84vyckgwgZZ9v8b87/A37XYd0Ufy8qX0RGQxfNEtGS5+IiIUpBwzJGFYfWuzYrA876Hhto1WUBVRGjMbHZd8U375q1Sw0XZp8ZJgoei69XsaMdTxEpU+Igy0kPMABhU8zme7WhLOTDsgf01S/sJb1cP27sjlIAWSb4A02xIvMYKzxvvZYf8BZejm2iKPiygktT82NKsCIsepzhTahYO/cqb0cuOuATJkmqT0YtJNnewD50JFuTlAicyKAxEuVrYUEAfWM8Jh0wlhzqnk/xWulGrtUFcs2Iuit/pPgBKp3OHSUugkrovS0jX9ZWgAf2kposasG720K52lrJRsiz4FIcKv7EYXULbtDKKmC0CljuDYOy8TBYns5xQjdEHxzMlDMIv8oqY2uzqpypoiJDGUgGaPxgeUbYpKvuQ/dq07Td9hi40niupMIspmw1XTRshUgZEwNiZcSEsC3Kmj7FORcluawV90S1UndQLmMmSERoM7YmBOZSftbn5EgiR3I3MEkmmPFuUJpcByBiZlc+slZeU4AqSGZ0KI0C+ybCQjxCxdbaJioOtkKZd9SwImJDROg6QJ94QlyVuTamDiRQZGY+3bFmCFROt8LQgzseRvqwrQlE32ESguOuTbEhQo4r9TLYaLNDw4V6kdMkRlIJs58NaD+iLVbReiL1B2MTWVHLkihXvQfKkQxVgmDWTITSmEwtI74T3/8PAAD//614dWc=" } diff --git a/metricbeat/include/list.go b/metricbeat/include/list.go index 183ec52f14d..7c99c6469a0 100644 --- a/metricbeat/include/list.go +++ b/metricbeat/include/list.go @@ -148,6 +148,8 @@ import ( _ "github.com/elastic/beats/metricbeat/module/system/raid" _ "github.com/elastic/beats/metricbeat/module/system/socket" _ "github.com/elastic/beats/metricbeat/module/system/uptime" + _ "github.com/elastic/beats/metricbeat/module/traefik" + _ "github.com/elastic/beats/metricbeat/module/traefik/health" _ "github.com/elastic/beats/metricbeat/module/uwsgi" _ "github.com/elastic/beats/metricbeat/module/uwsgi/status" _ "github.com/elastic/beats/metricbeat/module/vsphere" diff --git a/metricbeat/metricbeat.reference.yml b/metricbeat/metricbeat.reference.yml index 605d8e0b611..8ffdd466f63 100644 --- a/metricbeat/metricbeat.reference.yml +++ b/metricbeat/metricbeat.reference.yml @@ -587,6 +587,12 @@ metricbeat.modules: # Redis AUTH password. Empty by default. #password: foobared +#------------------------------- traefik Module ------------------------------ +- module: traefik + metricsets: ["health"] + period: 10s + hosts: ["localhost:8080"] + #-------------------------------- uwsgi Module ------------------------------- - module: uwsgi metricsets: ["status"] diff --git a/metricbeat/module/traefik/_meta/Dockerfile b/metricbeat/module/traefik/_meta/Dockerfile new file mode 100644 index 00000000000..a36e1f097d7 --- /dev/null +++ b/metricbeat/module/traefik/_meta/Dockerfile @@ -0,0 +1,6 @@ +FROM traefik:1.6-alpine + +COPY ./traefik.toml /etc/traefik/traefik.toml + +RUN apk add --no-cache curl +HEALTHCHECK --interval=1s --retries=90 CMD curl -f http://localhost:8080/health diff --git a/metricbeat/module/traefik/_meta/config.yml b/metricbeat/module/traefik/_meta/config.yml new file mode 100644 index 00000000000..41f2bd100ba --- /dev/null +++ b/metricbeat/module/traefik/_meta/config.yml @@ -0,0 +1,4 @@ +- module: traefik + metricsets: ["health"] + period: 10s + hosts: ["localhost:8080"] diff --git a/metricbeat/module/traefik/_meta/docs.asciidoc b/metricbeat/module/traefik/_meta/docs.asciidoc new file mode 100644 index 00000000000..ec3e4ac7b52 --- /dev/null +++ b/metricbeat/module/traefik/_meta/docs.asciidoc @@ -0,0 +1,6 @@ +This module periodically fetches metrics from a https://traefik.io/[Traefik] +instance. The Traefik instance must be configured to expose it's HTTP API. + +=== Compatibility + +The Traefik metricsets were tested with Traefik 1.6. diff --git a/metricbeat/module/traefik/_meta/env b/metricbeat/module/traefik/_meta/env new file mode 100644 index 00000000000..d8aa826efe6 --- /dev/null +++ b/metricbeat/module/traefik/_meta/env @@ -0,0 +1,2 @@ +TRAEFIK_HOST=traefik +TRAEFIK_API_PORT=8080 diff --git a/metricbeat/module/traefik/_meta/fields.yml b/metricbeat/module/traefik/_meta/fields.yml new file mode 100644 index 00000000000..80e38036c79 --- /dev/null +++ b/metricbeat/module/traefik/_meta/fields.yml @@ -0,0 +1,10 @@ +- key: traefik + title: "traefik" + description: > + Traefik reverse proxy / load balancer metrics + fields: + - name: traefik + type: group + description: > + Traefik reverse proxy / load balancer metrics + fields: diff --git a/metricbeat/module/traefik/_meta/traefik.toml b/metricbeat/module/traefik/_meta/traefik.toml new file mode 100644 index 00000000000..458075b2fb5 --- /dev/null +++ b/metricbeat/module/traefik/_meta/traefik.toml @@ -0,0 +1 @@ +[api] diff --git a/metricbeat/module/traefik/doc.go b/metricbeat/module/traefik/doc.go new file mode 100644 index 00000000000..d6cebf633c2 --- /dev/null +++ b/metricbeat/module/traefik/doc.go @@ -0,0 +1,19 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// Package traefik is a Metricbeat module that contains MetricSets. +package traefik diff --git a/metricbeat/module/traefik/health/_meta/data.json b/metricbeat/module/traefik/health/_meta/data.json new file mode 100644 index 00000000000..4ec5ad9edea --- /dev/null +++ b/metricbeat/module/traefik/health/_meta/data.json @@ -0,0 +1,29 @@ +{ + "@timestamp": "2017-10-12T08:05:34.853Z", + "beat": { + "hostname": "host.example.com", + "name": "host.example.com" + }, + "metricset": { + "host": "127.0.0.1:8080", + "module": "traefik", + "name": "health", + "rtt": 115 + }, + "traefik": { + "health": { + "response": { + "avg_time": { + "us": 32 + }, + "count": 15, + "status_codes": { + "404": 15 + } + }, + "uptime": { + "sec": 1944 + } + } + } +} \ No newline at end of file diff --git a/metricbeat/module/traefik/health/_meta/docs.asciidoc b/metricbeat/module/traefik/health/_meta/docs.asciidoc new file mode 100644 index 00000000000..e94ed71f3fb --- /dev/null +++ b/metricbeat/module/traefik/health/_meta/docs.asciidoc @@ -0,0 +1,3 @@ +=== traefik health MetricSet + +This is the health metricset of the module traefik. diff --git a/metricbeat/module/traefik/health/_meta/fields.yml b/metricbeat/module/traefik/health/_meta/fields.yml new file mode 100644 index 00000000000..38424ce9ddb --- /dev/null +++ b/metricbeat/module/traefik/health/_meta/fields.yml @@ -0,0 +1,27 @@ +- name: health + type: group + description: > + Metrics obtained from Traefik's health API endpoint + fields: + - name: uptime.sec + type: long + description: > + Uptime of Traefik instance in seconds + - name: response + type: group + description: > + Response metrics + fields: + - name: count + type: long + description: > + Number of responses + - name: avg_time.us + type: long + description: > + Average response time in microseconds + - name: status_code + type: object + object_type: long + description: > + Number of responses per status code diff --git a/metricbeat/module/traefik/health/_meta/test/simple.json b/metricbeat/module/traefik/health/_meta/test/simple.json new file mode 100644 index 00000000000..a5073cfded7 --- /dev/null +++ b/metricbeat/module/traefik/health/_meta/test/simple.json @@ -0,0 +1,18 @@ +{ + "pid": 1, + "uptime": "17h51m23.252891567s", + "uptime_sec": 64283.252891567, + "time": "2018-06-27 22:07:28.966768969 +0000 UTC m=+64283.314491879", + "unixtime": 1530137248, + "status_code_count": {}, + "total_status_code_count": { + "200": 17, + "404": 1 + }, + "count": 0, + "total_count": 18, + "total_response_time": "272.119µs", + "total_response_time_sec": 0.000272119, + "average_response_time": "15.117µs", + "average_response_time_sec": 1.5117e-05 +} diff --git a/metricbeat/module/traefik/health/data.go b/metricbeat/module/traefik/health/data.go new file mode 100644 index 00000000000..0f3767b4172 --- /dev/null +++ b/metricbeat/module/traefik/health/data.go @@ -0,0 +1,59 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package health + +import ( + "github.com/elastic/beats/libbeat/common" + s "github.com/elastic/beats/libbeat/common/schema" + c "github.com/elastic/beats/libbeat/common/schema/mapstriface" +) + +var ( + schema = s.Schema{ + "uptime": s.Object{ + "sec": c.Int("uptime_sec"), + }, + "response": s.Object{ + "count": c.Int("total_count"), + "avg_time": s.Object{ + "us": c.Int("average_response_time_us"), + }, + }, + } +) + +func eventMapping(health map[string]interface{}) (common.MapStr, *s.Errors) { + if averageResponseTimeSec, ok := health["average_response_time_sec"]; ok { + if averageResponseTimeSec, ok := averageResponseTimeSec.(float64); ok { + health["average_response_time_us"] = averageResponseTimeSec * 1000 * 1000 + } + } + + event, _ := schema.Apply(health) + + statusCodeCountMap, ok := health["total_status_code_count"].(map[string]interface{}) + if !ok { + return event, nil + } + + for code, count := range statusCodeCountMap { + event.Put("response.status_codes."+code, count) + } + + return event, nil +} diff --git a/metricbeat/module/traefik/health/data_test.go b/metricbeat/module/traefik/health/data_test.go new file mode 100644 index 00000000000..1b0d2731ad1 --- /dev/null +++ b/metricbeat/module/traefik/health/data_test.go @@ -0,0 +1,66 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// +build !integration + +package health + +import ( + "testing" + + "github.com/elastic/beats/libbeat/common" + + "github.com/stretchr/testify/assert" +) + +func TestEventMapping(t *testing.T) { + // Taken from actual response from a Traefik instance's health API endpoint + input := map[string]interface{}{ + "pid": 1, + "uptime": "16h43m51.452460402s", + "uptime_sec": 60231.452460402, + "time": "2018-06-27 20:59:57.166337808 +0000 UTC m=+60231.514060714", + "unixtime": 1530133197, + "status_code_count": map[string]interface{}{}, + "total_status_code_count": map[string]interface{}{ + "200": 17, + "404": 1, + }, + "count": 0, + "total_count": 18, + "total_response_time": "272.119µs", + "total_response_time_sec": 0.000272119, + "average_response_time": "15.117µs", + "average_response_time_sec": 1.5117e-05, + } + + event, errors := eventMapping(input) + assert.Nil(t, errors, "Errors while mapping input to event") + + uptime := event["uptime"].(common.MapStr) + assert.EqualValues(t, 60231, uptime["sec"]) + + response := event["response"].(common.MapStr) + assert.EqualValues(t, 18, response["count"]) + + avgTime := response["avg_time"].(common.MapStr) + assert.EqualValues(t, 15, avgTime["us"]) + + statusCodes := response["status_codes"].(common.MapStr) + assert.EqualValues(t, 17, statusCodes["200"]) + assert.EqualValues(t, 1, statusCodes["404"]) +} diff --git a/metricbeat/module/traefik/health/health.go b/metricbeat/module/traefik/health/health.go new file mode 100644 index 00000000000..1bd1d7b89f6 --- /dev/null +++ b/metricbeat/module/traefik/health/health.go @@ -0,0 +1,83 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package health + +import ( + "github.com/pkg/errors" + + "github.com/elastic/beats/libbeat/common" + "github.com/elastic/beats/libbeat/common/cfgwarn" + "github.com/elastic/beats/metricbeat/helper" + "github.com/elastic/beats/metricbeat/mb" + "github.com/elastic/beats/metricbeat/mb/parse" +) + +// init registers the MetricSet with the central registry. +// The New method will be called after the setup of the module and before starting to fetch data +func init() { + mb.Registry.MustAddMetricSet("traefik", "health", New, + mb.WithHostParser(hostParser), + mb.DefaultMetricSet(), + ) +} + +var ( + hostParser = parse.URLHostParserBuilder{ + DefaultScheme: "http", + DefaultPath: "health", + }.Build() +) + +// MetricSet type defines all fields of the MetricSet +type MetricSet struct { + mb.BaseMetricSet + http *helper.HTTP +} + +// New creates a new instance of the MetricSet. +func New(base mb.BaseMetricSet) (mb.MetricSet, error) { + cfgwarn.Experimental("The traefik health metricset is experimental.") + http, err := helper.NewHTTP(base) + if err != nil { + return nil, err + } + + return &MetricSet{ + base, + http, + }, nil +} + +// Fetch methods gather data, convert it to the right format, and publish it. +// If there are errors, those are published instead. +func (m *MetricSet) Fetch(report mb.ReporterV2) { + data, err := m.http.FetchJSON() + if err != nil { + report.Error(errors.Wrap(err, "failed to sample health")) + return + } + + metricSetFields, _ := eventMapping(data) + event := mb.Event{ + MetricSetFields: metricSetFields, + RootFields: common.MapStr{}, + } + event.RootFields.Put("service.name", "traefik") + + report.Event(event) +} diff --git a/metricbeat/module/traefik/health/health_integration_test.go b/metricbeat/module/traefik/health/health_integration_test.go new file mode 100644 index 00000000000..388921bdd3d --- /dev/null +++ b/metricbeat/module/traefik/health/health_integration_test.go @@ -0,0 +1,76 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// +build integration + +package health + +import ( + "net/http" + "testing" + + "github.com/elastic/beats/libbeat/tests/compose" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" + "github.com/elastic/beats/metricbeat/module/traefik/mtest" + + "github.com/stretchr/testify/assert" +) + +func makeBadRequest(config map[string]interface{}) error { + host := config["hosts"].([]string)[0] + + resp, err := http.Get("http://" + host + "/foobar") + if err != nil { + return err + } + resp.Body.Close() + return nil +} + +func TestFetch(t *testing.T) { + compose.EnsureUp(t, "traefik") + + config := mtest.GetConfig("health") + + makeBadRequest(config) + + ms := mbtest.NewReportingMetricSetV2(t, config) + reporter := &mbtest.CapturingReporterV2{} + + ms.Fetch(reporter) + assert.Nil(t, reporter.GetErrors(), "Errors while fetching metrics") + + event := reporter.GetEvents()[0] + assert.NotNil(t, event) + t.Logf("%s/%s event: %+v", ms.Module().Name(), ms.Name(), event) + + responseCount, _ := event.MetricSetFields.GetValue("response.count") + assert.True(t, responseCount.(int64) >= 1) + + badResponseCount, _ := event.MetricSetFields.GetValue("response.status_codes.404") + assert.True(t, badResponseCount.(float64) >= 1) +} + +func TestData(t *testing.T) { + compose.EnsureUp(t, "traefik") + + ms := mbtest.NewReportingMetricSetV2(t, mtest.GetConfig("health")) + err := mbtest.WriteEventsReporterV2(ms, t, "") + if err != nil { + t.Fatal("write", err) + } +} diff --git a/metricbeat/module/traefik/health/health_test.go b/metricbeat/module/traefik/health/health_test.go new file mode 100644 index 00000000000..0671f2cece9 --- /dev/null +++ b/metricbeat/module/traefik/health/health_test.go @@ -0,0 +1,74 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +// +build !integration + +package health + +import ( + "fmt" + "io/ioutil" + "net/http" + "net/http/httptest" + "testing" + + "github.com/stretchr/testify/assert" + + "github.com/elastic/beats/libbeat/common" + mbtest "github.com/elastic/beats/metricbeat/mb/testing" +) + +func TestFetchEventContents(t *testing.T) { + mockResponse, err := ioutil.ReadFile("./_meta/test/simple.json") + assert.NoError(t, err) + + server := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) { + w.WriteHeader(200) + w.Header().Set("Content-Type", "application/json; charset=UTF-8") + w.Write([]byte(mockResponse)) + })) + defer server.Close() + + config := map[string]interface{}{ + "module": "traefik", + "metricsets": []string{"health"}, + "hosts": []string{server.URL}, + } + + fetcher := mbtest.NewReportingMetricSetV2(t, config) + reporter := &mbtest.CapturingReporterV2{} + + fetcher.Fetch(reporter) + assert.Nil(t, reporter.GetErrors(), "Errors while fetching metrics") + + event := reporter.GetEvents()[0] + fmt.Println(event.MetricSetFields) + metricSetFields := event.MetricSetFields + + uptime := metricSetFields["uptime"].(common.MapStr) + assert.EqualValues(t, 64283, uptime["sec"]) + + response := metricSetFields["response"].(common.MapStr) + assert.EqualValues(t, 18, response["count"]) + + avgTime := response["avg_time"].(common.MapStr) + assert.EqualValues(t, 15, avgTime["us"]) + + statusCodes := response["status_codes"].(common.MapStr) + assert.EqualValues(t, 17, statusCodes["200"]) + assert.EqualValues(t, 1, statusCodes["404"]) +} diff --git a/metricbeat/module/traefik/mtest/testing.go b/metricbeat/module/traefik/mtest/testing.go new file mode 100644 index 00000000000..c71b9accb01 --- /dev/null +++ b/metricbeat/module/traefik/mtest/testing.go @@ -0,0 +1,49 @@ +// Licensed to Elasticsearch B.V. under one or more contributor +// license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright +// ownership. Elasticsearch B.V. licenses this file to you under +// the Apache License, Version 2.0 (the "License"); you may +// not use this file except in compliance with the License. +// You may obtain a copy of the License at +// +// http://www.apache.org/licenses/LICENSE-2.0 +// +// Unless required by applicable law or agreed to in writing, +// software distributed under the License is distributed on an +// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY +// KIND, either express or implied. See the License for the +// specific language governing permissions and limitations +// under the License. + +package mtest + +import "os" + +// GetEnvHost for Traefik +func GetEnvHost() string { + host := os.Getenv("TRAEFIK_HOST") + + if len(host) == 0 { + host = "127.0.0.1" + } + return host +} + +// GetEnvAPIPort for Traefik +func GetEnvAPIPort() string { + port := os.Getenv("TRAEFIK_API_PORT") + + if len(port) == 0 { + port = "8080" + } + return port +} + +// GetConfig for Traefik +func GetConfig(metricset string) map[string]interface{} { + return map[string]interface{}{ + "module": "traefik", + "metricsets": []string{metricset}, + "hosts": []string{GetEnvHost() + ":" + GetEnvAPIPort()}, + } +} diff --git a/metricbeat/module/traefik/test_traefik.py b/metricbeat/module/traefik/test_traefik.py new file mode 100644 index 00000000000..de8de5f8b84 --- /dev/null +++ b/metricbeat/module/traefik/test_traefik.py @@ -0,0 +1,29 @@ +import os +import sys +import unittest +import time +from parameterized import parameterized + +sys.path.append(os.path.join(os.path.dirname(__file__), '../../tests/system')) + +import metricbeat + + +class Test(metricbeat.BaseTest): + + COMPOSE_SERVICES = ['traefik'] + FIELDS = ['traefik'] + + @parameterized.expand([ + "health" + ]) + @unittest.skipUnless(metricbeat.INTEGRATION_TESTS, "integration test") + def test_health(self, metricset): + """ + traefik metricset tests + """ + self.check_metricset("traefik", metricset, self.get_hosts(), self.FIELDS + ["service.name"]) + + def get_hosts(self): + return [os.getenv('TRAEFIK_HOST', 'localhost') + ':' + + os.getenv('TRAEFIK_API_PORT', '8080')] diff --git a/metricbeat/modules.d/traefik.yml.disabled b/metricbeat/modules.d/traefik.yml.disabled new file mode 100644 index 00000000000..35326a4ec4a --- /dev/null +++ b/metricbeat/modules.d/traefik.yml.disabled @@ -0,0 +1,7 @@ +# Module: traefik +# Docs: https://www.elastic.co/guide/en/beats/metricbeat/master/metricbeat-module-traefik.html + +- module: traefik + metricsets: ["health"] + period: 10s + hosts: ["localhost:8080"]