Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tdzV2-00BCsz-27 for pgsql-performance@arkaria.postgresql.org; Fri, 31 Jan 2025 22:28:32 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1tdzV1-0033dP-29 for pgsql-performance@arkaria.postgresql.org; Fri, 31 Jan 2025 22:28:31 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1tdzV0-0033dH-FV for pgsql-performance@lists.postgresql.org; Fri, 31 Jan 2025 22:28:30 +0000 Received: from mail-yb1-xb29.google.com ([2607:f8b0:4864:20::b29]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1tdzUx-002X1i-2H for pgsql-performance@lists.postgresql.org; Fri, 31 Jan 2025 22:28:29 +0000 Received: by mail-yb1-xb29.google.com with SMTP id 3f1490d57ef6-e39779a268bso2602896276.1 for ; Fri, 31 Jan 2025 14:28:28 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1738362507; x=1738967307; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=O/pKxME9Diz7ncBAlAoBIc2niST9NpqqLigZvkR+BOg=; b=ceOfl1rl4Ec66puClujG6bBe4eUxcdGS9nAjJucS0W/pnj5BMSuSFVhdh9+IkZw0Ny HqNvhkal7wof30puZwWt52EoSrV0YxOgxEu2BhyIi5fNx1JsTE1ELxGB5KtKX7VVbbvn 5/18JxquYJ6jciD03BAXXlWrpnE6GQafAp2XdezuTJN0NPdSmMBjf7aghw8YCFIGny0P ojAOzIi+SSOrdJV+gOBj2AH8KKJNUHNhxH68s9MdTdlI13JIgKwV8B/DYrVI8srXDNZ8 7beezntmqLv6i2A6vPJ9/GKxsqjtARKV+YFJYh7LLGZqBdBCjzAeCcqxXsNMF39yyzOT U1uA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1738362507; x=1738967307; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=O/pKxME9Diz7ncBAlAoBIc2niST9NpqqLigZvkR+BOg=; b=mU/81CsnNeGgtnkZIdV/AGBoeNWW5Xt1NSU385i+6VC7hpdCuC1hk5TdJhZ/nd9K2C 1mKmAp+I+/4160TN80qMq60p+fx8pvVX8Fad6I6GyULGbS28AXNMhz+RDIPHrGiJVo4d KJm768KC1jWunMOeby/omk2Hm6TWLSDOg0pz3C0QL6OpIAOZbSgxkmIfDXEd/GhE62Cj bn4g81Aj6yiw+fVsIhgAbCL6CtyTFTm0+lF3eNvnpX9ajRK+dDxRol7l/GiF6sGFs+JA sKKmak9R7I6V7nIrfaaITytUq/TdWavfbDuoFvC2oI7gZg7fG+VmQ9feDVkHYsd95uIN 8uLw== X-Gm-Message-State: AOJu0YwUE2/kHjgxpwxE6fF3r65kz55d+gutPn+3jYDHeUmUOl9+jF8u P+YjiSJXMBFEv3LpRDTZjedrr0gEVBEifqTCx/Qqskwr9VS1t5YZjzkZz6aY8sHq7S/NG2+slQ4 oJLgQ2WYyniwFnnScYAi5FH8kCRkIj4m0 X-Gm-Gg: ASbGncs5I5mL40h7GvZVAMlasVOc2r8LgjQhwxMlMutupv6u4D6FBV8d7fj9e6CbNWS EG/9mu3A8slQN3lZGYHtFail1LhOzTMkKXgWpOht87n7C7W/KjBRA+fh6FTdaOBf6T8JozFQLTK 5wWXvmh4pfI3KfXxaESXegvTyx9nhAQTY= X-Google-Smtp-Source: AGHT+IGZo13LN/+7wdopiDgY4a/aWDyBJDSiAbNXTINvx1WXlg1+zCPf0StejYn9wNfxjZbOm1vPbKCGoMG7BRGmU0w= X-Received: by 2002:a05:6902:3309:b0:e5a:e81e:2442 with SMTP id 3f1490d57ef6-e5ae81e314fmr977591276.2.1738362507201; Fri, 31 Jan 2025 14:28:27 -0800 (PST) MIME-Version: 1.0 From: Joshua Banton Date: Fri, 31 Jan 2025 17:28:16 -0500 X-Gm-Features: AWEUYZnVBgEG8GnSfu1qYSTFA-Hyd_u7fPs4Qfx34NTepwg0uyT1DfybHqOEJ9I Message-ID: Subject: High System CPU Usage on Selects Seemingly Caused By Vacuum of Same Table To: pgsql-performance@lists.postgresql.org Content-Type: multipart/alternative; boundary="000000000000bb9532062d080f9f" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000bb9532062d080f9f Content-Type: text/plain; charset="UTF-8" Hello, We are experiencing a high system cpu issue with our database that we can't quite explain. Description of the issue: The database instance cpu suddenly increases to over 90%, the majority of it as reported by RDS Enhanced Monitoring being system cpu, as opposed to coming from Postgres itself. IOPS usage barely changes, plenty of headroom. The issue mostly manifests near the end of the "scanning heap" phase of vacuuming of one of our largest tables, we'll call table1. RDS Performance Insights reports that selects on table1 start to wait on cpu, where previously it didn't even show up in the top 25 queries by wait. It doesn't always happen, but if there is a larger than usual number of selects on table1 it is more likely to happen. Example Timeline: 00:00 vacuum starts on table1 (has at least 10 million dead tuples as reported by pg_stat_user_tables) 02:00 database cpu p90 12%, RDS Performance Insights CPU waits 11%, IOPS under 100k, table1 not in top 25 waits in RDS Performance Insights, vacuum reports 6GB out of 3TB remaining to scan 02:01 database cpu p90 98%, RDS Performance Insights CPU waits 73%, IOPS under 100k, table1 selects now #1, #2, #6 in RDS Performance Insights making up the majority of the cpu waits 02:42 vacuum on table1 finishes, database cpu p90 11%, RDS Performance Insights CPU waits 12%, IOPS under 100k, table1 not in top 25 waits in RDS Performance Insights Installation Details: AWS RDS Managed Instance Postgres Version: PostgreSQL 16.4 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 7.3.1 20180712 (Red Hat 7.3.1-17), 64-bit Instance Class: r7i.48xlarge vCPU: 192 RAM: 1536 GB Storage Type: Provisioned IOPS SSD (io2), 180000 IOPS Application Language/Framework: Ruby on Rails Pooler: PgBouncer 1.17.0 Config: |name |current_setting |-------------------------------------------|--------------------------------------- |autovacuum_analyze_scale_factor |0.005 |autovacuum_freeze_max_age |500000000 |autovacuum_max_workers |24 |autovacuum_naptime |15s |autovacuum_vacuum_cost_delay |1ms |autovacuum_vacuum_cost_limit |2000 |autovacuum_vacuum_scale_factor |0.01 |autovacuum_work_mem |48756174kB |checkpoint_completion_target |0.9 |checkpoint_timeout |1h |default_toast_compression |lz4 |effective_cache_size |780098792kB |enable_presorted_aggregate |on |fsync |on |full_page_writes |on |gss_accept_delegation |off |hot_standby |off |huge_pages |on |icu_validation_level |error |idle_in_transaction_session_timeout |30s |ignore_invalid_pages |off |jit |off |lo_compat_privileges |off |log_autovacuum_min_duration |0 |log_checkpoints |on |log_connections |on |log_disconnections |on |log_min_duration_statement |10ms |log_rotation_age |1h |log_temp_files |0 |log_timezone |UTC |log_truncate_on_rotation |off |logging_collector |on |maintenance_work_mem |25577009kB |max_connections |5000 |max_locks_per_transaction |64 |max_logical_replication_workers |10 |max_parallel_apply_workers_per_subscription|2 |max_parallel_workers |96 |max_prepared_transactions |0 |max_replication_slots |10 |max_slot_wal_keep_size |400000MB |max_stack_depth |6MB |max_standby_archive_delay |-1 |max_standby_streaming_delay |2147483647ms |max_wal_senders |25 |max_wal_size |200000MB |max_worker_processes |20 |min_wal_size |128MB |random_page_cost |1.05 |recovery_init_sync_method |syncfs |recovery_prefetch |off |remove_temp_files_after_crash |off |reserved_connections |2 |scram_iterations |4096 |send_abort_for_crash |off |send_abort_for_kill |off |session_preload_libraries | |shared_buffers |390049392kB |shared_preload_libraries |rdsutils,pg_tle,pg_stat_statements |synchronous_commit |on |track_activity_query_size |4kB |track_functions |pl |track_io_timing |on |track_wal_io_timing |on |vacuum_buffer_usage_limit |399410kB |vacuum_cost_page_miss |5 |vacuum_failsafe_age |1200000000 |vacuum_multixact_failsafe_age |1200000000 |wal_compression |lz4 |wal_keep_size |400000MB |wal_level |logical |wal_receiver_create_temp_slot |off |wal_receiver_timeout |15min |wal_sender_timeout |2min Large Table Stats: table1: rows: 2,303,386,400 disk space: 3.5T rel size: 3T FSM size: 758 MB visibility map size: 94 MB table2: rows: 1,919,360,500 disk space: 1.6T rel size: 758G FSM size: 189 MB visibility map size: 24 MB table3: rows: 2,412,903,000 disk space: 741G rel size: 387G FSM size: 96 MB visibility map size: 12 MB Any suggestions or insights greatly appreciated! Joshua Banton --000000000000bb9532062d080f9f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PGRpdiBkaXI9Imx0ciI+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlIj5I ZWxsbyw8L3NwYW4+PC9kaXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNl Ij48YnI+V2UgYXJlIGV4cGVyaWVuY2luZyBhIGhpZ2ggc3lzdGVtIGNwdSBpc3N1ZSB3aXRoIG91 ciBkYXRhYmFzZSB0aGF0IHdlIGNhbiYjMzk7dCBxdWl0ZSBleHBsYWluLjxicj48YnI+RGVzY3Jp cHRpb24gb2YgdGhlIGlzc3VlOjxicj5UaGUgZGF0YWJhc2UgaW5zdGFuY2UgY3B1IHN1ZGRlbmx5 IGluY3JlYXNlcyB0byBvdmVyIDkwJSwgdGhlIG1ham9yaXR5IG9mIGl0IGFzIHJlcG9ydGVkIGJ5 IFJEUyBFbmhhbmNlZCBNb25pdG9yaW5nIGJlaW5nIHN5c3RlbSBjcHUsIGFzIG9wcG9zZWQgdG8g Y29taW5nIGZyb20gUG9zdGdyZXMgaXRzZWxmLiBJT1BTIHVzYWdlIGJhcmVseSBjaGFuZ2VzLCBw bGVudHkgb2YgaGVhZHJvb20uPGJyPjxicj5UaGUgaXNzdWUgbW9zdGx5IG1hbmlmZXN0cyBuZWFy IHRoZSBlbmQgb2YgdGhlICZxdW90O3NjYW5uaW5nIGhlYXAmcXVvdDsgcGhhc2Ugb2YgdmFjdXVt aW5nIG9mIG9uZSBvZiBvdXIgbGFyZ2VzdCB0YWJsZXMsIHdlJiMzOTtsbCBjYWxsIHRhYmxlMS4g UkRTIFBlcmZvcm1hbmNlIEluc2lnaHRzIHJlcG9ydHMgdGhhdCBzZWxlY3RzIG9uIHRhYmxlMSBz dGFydCB0byB3YWl0IG9uIGNwdSwgd2hlcmUgcHJldmlvdXNseSBpdCBkaWRuJiMzOTt0IGV2ZW4g c2hvdyB1cCBpbiB0aGUgdG9wIDI1IHF1ZXJpZXMgYnkgd2FpdC4gSXQgZG9lc24mIzM5O3QgYWx3 YXlzIGhhcHBlbiwgYnV0IGlmIHRoZXJlIGlzIGEgbGFyZ2VyIHRoYW4gdXN1YWwgbnVtYmVyIG9m IHNlbGVjdHMgb24gdGFibGUxIGl0IGlzIG1vcmUgbGlrZWx5IHRvIGhhcHBlbi48YnI+PGJyPjxi cj5FeGFtcGxlIFRpbWVsaW5lOjxicj4wMDowMCB2YWN1dW0gc3RhcnRzIG9uIHRhYmxlMSAoaGFz IGF0IGxlYXN0IDEwIG1pbGxpb24gZGVhZCB0dXBsZXMgYXMgcmVwb3J0ZWQgYnkgcGdfc3RhdF91 c2VyX3RhYmxlcyk8YnI+MDI6MDAgZGF0YWJhc2UgY3B1IHA5MCAxMiUsIFJEUyBQZXJmb3JtYW5j ZSBJbnNpZ2h0cyBDUFUgd2FpdHMgMTElLCA8L3NwYW4+SU9QUyB1bmRlciAxMDBrLCA8c3BhbiBz dHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlIj50YWJsZTEgbm90IGluIHRvcCAyNSB3YWl0cyBp biBSRFMgUGVyZm9ybWFuY2UgSW5zaWdodHMsIHZhY3V1bSByZXBvcnRzIDZHQiBvdXQgb2YgM1RC IHJlbWFpbmluZyB0byBzY2FuPGJyPjAyOjAxIGRhdGFiYXNlIGNwdSBwOTAgOTglLCBSRFMgUGVy Zm9ybWFuY2UgSW5zaWdodHMgQ1BVIHdhaXRzIDczJSwgPC9zcGFuPklPUFMgdW5kZXIgMTAwaywg PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+dGFibGUxIHNlbGVjdHMgbm93ICMx LCAjMiwgIzYgaW4gUkRTIFBlcmZvcm1hbmNlIEluc2lnaHRzIG1ha2luZyB1cCB0aGUgbWFqb3Jp dHkgb2YgdGhlIGNwdSB3YWl0czxicj4wMjo0MiB2YWN1dW0gb24gdGFibGUxIGZpbmlzaGVzLCBk YXRhYmFzZSBjcHUgcDkwIDExJSwgUkRTIFBlcmZvcm1hbmNlIEluc2lnaHRzIENQVSB3YWl0cyAx MiUsIDwvc3Bhbj5JT1BTIHVuZGVyIDEwMGssIDxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25v c3BhY2UiPnRhYmxlMSBub3QgaW4gdG9wIDI1IHdhaXRzIGluIFJEUyBQZXJmb3JtYW5jZSBJbnNp Z2h0cyA8YnI+PGJyPjxicj5JbnN0YWxsYXRpb24gRGV0YWlsczo8YnI+wqAgQVdTIFJEUyBNYW5h Z2VkIEluc3RhbmNlPGJyPsKgIFBvc3RncmVzIFZlcnNpb246IFBvc3RncmVTUUwgMTYuNCBvbiB4 ODZfNjQtcGMtbGludXgtZ251LCBjb21waWxlZCBieSBnY2MgKEdDQykgNy4zLjEgMjAxODA3MTIg KFJlZCBIYXQgNy4zLjEtMTcpLCA2NC1iaXQ8YnI+wqAgSW5zdGFuY2UgQ2xhc3M6IHI3aS40OHhs YXJnZTxicj7CoCB2Q1BVOiAxOTI8YnI+wqAgUkFNOiAxNTM2IEdCPGJyPsKgIFN0b3JhZ2UgVHlw ZTogUHJvdmlzaW9uZWQgSU9QUyBTU0QgKGlvMiksIDE4MDAwMCBJT1BTPGJyPsKgIEFwcGxpY2F0 aW9uIExhbmd1YWdlL0ZyYW1ld29yazogUnVieSBvbiBSYWlsczxicj7CoCBQb29sZXI6IFBnQm91 bmNlciAxLjE3LjAgPGJyPsKgIDxicj5Db25maWc6PGJyPnxuYW1lIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHxjdXJyZW50X3NldHRpbmcg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+fC0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS18LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t LS0tLS0tLS0tPGJyPnxhdXRvdmFjdXVtX2FuYWx5emVfc2NhbGVfZmFjdG9yIMKgIMKgIMKgIMKg IMKgIMKgfDAuMDA1IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgPGJyPnxhdXRvdmFjdXVtX2ZyZWV6ZV9tYXhfYWdlIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgfDUwMDAwMDAwMCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoDxicj58YXV0b3ZhY3V1bV9tYXhfd29ya2VycyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCB8MjQgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgPGJyPnxhdXRvdmFjdXVtX25hcHRpbWUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgfDE1cyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoDxicj58YXV0b3ZhY3V1bV92YWN1dW1fY29zdF9kZWxheSDCoCDCoCDCoCDCoCDC oCDCoCDCoCB8MW1zIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgPGJyPnxhdXRvdmFjdXVtX3ZhY3V1bV9jb3N0X2xpbWl0IMKgIMKgIMKgIMKgIMKg IMKgIMKgIHwyMDAwIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIDxicj58YXV0b3ZhY3V1bV92YWN1dW1fc2NhbGVfZmFjdG9yIMKgIMKgIMKgIMKgIMKg IMKgIHwwLjAxIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIDxicj58YXV0b3ZhY3V1bV93b3JrX21lbSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoHw0ODc1NjE3NGtCIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIDxicj58Y2hlY2twb2ludF9jb21wbGV0aW9uX3RhcmdldCDCoCDCoCDCoCDCoCDCoCDCoCDC oCB8MC45IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgPGJyPnxjaGVja3BvaW50X3RpbWVvdXQgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgfDFoIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIDxicj58ZGVmYXVsdF90b2FzdF9jb21wcmVzc2lvbiDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoHxsejQgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqA8YnI+fGVmZmVjdGl2ZV9jYWNoZV9zaXplIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIHw3ODAwOTg3OTJrQiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoDxicj58ZW5hYmxlX3ByZXNvcnRlZF9hZ2dyZWdhdGUgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgfG9uIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIDxicj58ZnN5bmMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqB8b24gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgPGJyPnxmdWxsX3BhZ2Vfd3JpdGVzIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIHxvbiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+fGdzc19hY2NlcHRfZGVsZWdhdGlvbiDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHxvZmYgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+fGhvdF9zdGFuZGJ5IMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfG9mZiDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj58aHVnZV9wYWdlcyDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8b24gwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPnxpY3VfdmFsaWRh dGlvbl9sZXZlbCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8ZXJyb3IgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+fGlkbGVfaW5f dHJhbnNhY3Rpb25fc2Vzc2lvbl90aW1lb3V0IMKgIMKgIMKgIMKgfDMwcyDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj58aWdub3JlX2ludmFs aWRfcGFnZXMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfG9mZiDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj58aml0IMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfG9m ZiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxi cj58bG9fY29tcGF0X3ByaXZpbGVnZXMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg fG9mZiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oDxicj58bG9nX2F1dG92YWN1dW1fbWluX2R1cmF0aW9uIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg fDAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqA8YnI+fGxvZ19jaGVja3BvaW50cyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoHxvbiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCA8YnI+fGxvZ19jb25uZWN0aW9ucyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoHxvbiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCA8YnI+fGxvZ19kaXNjb25uZWN0aW9ucyDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCB8b24gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgPGJyPnxsb2dfbWluX2R1cmF0aW9uX3N0YXRlbWVudCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCB8MTBtcyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCA8YnI+fGxvZ19yb3RhdGlvbl9hZ2UgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgfDFoIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj58bG9nX3RlbXBfZmlsZXMgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+fGxvZ190aW1lem9uZSDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8VVRDIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPGJyPnxsb2dfdHJ1bmNhdGVfb25f cm90YXRpb24gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfG9mZiDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj58bG9nZ2luZ19jb2xsZWN0 b3IgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8b24gwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPnxtYWludGVuYW5j ZV93b3JrX21lbSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8MjU1NzcwMDlrQiDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+fG1heF9jb25uZWN0 aW9ucyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHw1MDAwIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj58bWF4X2xv Y2tzX3Blcl90cmFuc2FjdGlvbiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHw2NCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+fG1heF9s b2dpY2FsX3JlcGxpY2F0aW9uX3dvcmtlcnMgwqAgwqAgwqAgwqAgwqAgwqB8MTAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPnxtYXhfcGFy YWxsZWxfYXBwbHlfd29ya2Vyc19wZXJfc3Vic2NyaXB0aW9ufDIgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+fG1heF9wYXJhbGxlbF93 b3JrZXJzIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIHw5NiDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+fG1heF9wcmVwYXJl ZF90cmFuc2FjdGlvbnMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8MCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj58bWF4X3JlcGxp Y2F0aW9uX3Nsb3RzIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfDEwIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj58bWF4X3Ns b3Rfd2FsX2tlZXBfc2l6ZSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8NDAwMDAwTUIg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPnxtYXhfc3Rh Y2tfZGVwdGggwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8Nk1CIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPGJyPnxt YXhfc3RhbmRieV9hcmNoaXZlX2RlbGF5IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfC0xIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj58 bWF4X3N0YW5kYnlfc3RyZWFtaW5nX2RlbGF5IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfDIxNDc0 ODM2NDdtcyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+fG1heF93 YWxfc2VuZGVycyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwyNSDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+ fG1heF93YWxfc2l6ZSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCB8MjAwMDAwTUIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg PGJyPnxtYXhfd29ya2VyX3Byb2Nlc3NlcyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCB8MjAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgPGJyPnxtaW5fd2FsX3NpemUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgfDEyOE1CIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgPGJyPnxyYW5kb21fcGFnZV9jb3N0IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIHwxLjA1IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIDxicj58cmVjb3ZlcnlfaW5pdF9zeW5jX21ldGhvZCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoHxzeW5jZnMgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgPGJyPnxyZWNvdmVyeV9wcmVmZXRjaCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoHxvZmYgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqA8YnI+fHJlbW92ZV90ZW1wX2ZpbGVzX2FmdGVyX2NyYXNoIMKgIMKg IMKgIMKgIMKgIMKgIMKgfG9mZiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoDxicj58cmVzZXJ2ZWRfY29ubmVjdGlvbnMgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgfDIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+fHNjcmFtX2l0ZXJhdGlvbnMgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgfDQwOTYgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPnxzZW5kX2Fib3J0X2Zvcl9jcmFzaCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8b2ZmIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPGJyPnxzZW5kX2Fib3J0X2Zvcl9raWxsIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfG9mZiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj58c2Vzc2lvbl9wcmVsb2FkX2xpYnJh cmllcyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPnxzaGFyZWRfYnVmZmVycyDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8MzkwMDQ5Mzkya0IgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+fHNoYXJlZF9wcmVsb2FkX2xp YnJhcmllcyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8cmRzdXRpbHMscGdfdGxlLHBnX3N0 YXRfc3RhdGVtZW50cyDCoCDCoCA8YnI+fHN5bmNocm9ub3VzX2NvbW1pdCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8b24gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPnx0cmFja19hY3Rpdml0eV9xdWVyeV9zaXplIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfDRrQiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj58dHJhY2tfZnVuY3Rpb25zIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfHBsIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj58dHJhY2tfaW9fdGltaW5nIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgfG9uIMKgIMKgIMKgIMKgIMKgIMKg IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj58dHJhY2tfd2FsX2lvX3Rp bWluZyDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHxvbiDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+fHZhY3V1bV9idWZm ZXJfdXNhZ2VfbGltaXQgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8Mzk5NDEwa0IgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPnx2YWN1dW1fY29zdF9w YWdlX21pc3MgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8NSDCoCDCoCDCoCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxicj58dmFjdXVtX2Zh aWxzYWZlX2FnZSDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHwxMjAwMDAwMDAw IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIDxicj58dmFjdXVtX211 bHRpeGFjdF9mYWlsc2FmZV9hZ2UgwqAgwqAgwqAgwqAgwqAgwqAgwqB8MTIwMDAwMDAwMCDCoCDC oCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCA8YnI+fHdhbF9jb21wcmVzc2lv biDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoHxsejQgwqAgwqAgwqAg wqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8YnI+fHdhbF9rZWVw X3NpemUgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8NDAwMDAw TUIgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgPGJyPnx3YWxf bGV2ZWwgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqB8 bG9naWNhbCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoDxi cj58d2FsX3JlY2VpdmVyX2NyZWF0ZV90ZW1wX3Nsb3QgwqAgwqAgwqAgwqAgwqAgwqAgwqB8b2Zm IMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgIMKgPGJy Pnx3YWxfcmVjZWl2ZXJfdGltZW91dCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCB8 MTVtaW4gwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqAgwqA8 YnI+fHdhbF9zZW5kZXJfdGltZW91dCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCB8Mm1pbiDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDCoCDC oCA8YnI+PGJyPkxhcmdlIFRhYmxlIFN0YXRzOjxicj50YWJsZTE6PGJyPsKgIMKgIHJvd3M6IDIs MzAzLDM4Niw0MDA8YnI+wqAgwqAgZGlzayBzcGFjZTogMy41VDxicj7CoCDCoCByZWwgc2l6ZTog M1Q8YnI+wqAgwqAgRlNNIHNpemU6IDc1OCBNQjxicj7CoCDCoCB2aXNpYmlsaXR5IG1hcCBzaXpl OiA5NCBNQjxicj7CoCDCoCA8YnI+dGFibGUyOjxicj7CoCDCoCByb3dzOiAxLDkxOSwzNjAsNTAw PGJyPsKgIMKgIGRpc2sgc3BhY2U6IDEuNlQ8YnI+wqAgwqAgcmVsIHNpemU6IDc1OEc8YnI+wqAg wqAgRlNNIHNpemU6IDE4OSBNQjxicj7CoCDCoCB2aXNpYmlsaXR5IG1hcCBzaXplOiAyNCBNQjxi cj7CoCDCoCA8YnI+dGFibGUzOjxicj7CoCDCoCByb3dzOiAyLDQxMiw5MDMsMDAwPGJyPsKgIMKg IGRpc2sgc3BhY2U6IDc0MUc8YnI+wqAgwqAgcmVsIHNpemU6IDM4N0c8YnI+wqAgwqAgRlNNIHNp emU6IDk2IE1CPGJyPsKgIMKgIHZpc2liaWxpdHkgbWFwIHNpemU6IDEyIE1CPC9zcGFuPjwvZGl2 PjxkaXY+PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+PGJyPjwvc3Bhbj48L2Rp dj48ZGl2PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2UiPjxicj48L3NwYW4+PC9k aXY+PGRpdj48c3BhbiBzdHlsZT0iZm9udC1mYW1pbHk6bW9ub3NwYWNlIj5Bbnkgc3VnZ2VzdGlv bnMgb3IgaW5zaWdodHMgZ3JlYXRseSBhcHByZWNpYXRlZCE8YnI+PC9zcGFuPjwvZGl2PjxkaXY+ PHNwYW4gc3R5bGU9ImZvbnQtZmFtaWx5Om1vbm9zcGFjZSI+PGJyPjwvc3Bhbj48L2Rpdj48ZGl2 PjxzcGFuIHN0eWxlPSJmb250LWZhbWlseTptb25vc3BhY2UiPkpvc2h1YSBCYW50b248YnI+PC9z cGFuPjwvZGl2PjwvZGl2Pg0K --000000000000bb9532062d080f9f--