From: Marc Alff Date: May 7 2010 12:14pm Subject: bzr push into mysql-next-mr-wl4895 branch (marc.alff:3143 to 3144) List-Archive: http://lists.mysql.com/commits/107740 Message-Id: <20100507121440.4C0205617FB@MarcBook.local> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="Boundary_(ID_ny56DDVtIkHaCwzfP/EMmQ)" --Boundary_(ID_ny56DDVtIkHaCwzfP/EMmQ) MIME-version: 1.0 Content-type: text/plain; CHARSET=US-ASCII Content-transfer-encoding: 7BIT Content-disposition: inline 3144 Marc Alff 2010-05-07 port in progress, continued added: mysql-test/suite/perfschema/r/myisam_table_io.result mysql-test/suite/perfschema/t/myisam_table_io.test modified: mysql-test/suite/perfschema/r/start_server_no_cond_class.result mysql-test/suite/perfschema/r/start_server_no_cond_inst.result mysql-test/suite/perfschema/r/start_server_no_file_class.result mysql-test/suite/perfschema/r/start_server_no_file_inst.result mysql-test/suite/perfschema/r/start_server_no_mutex_class.result mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result mysql-test/suite/perfschema/r/start_server_no_thread_class.result mysql-test/suite/perfschema/r/start_server_no_thread_inst.result mysql-test/suite/perfschema/r/start_server_off.result mysql-test/suite/perfschema/r/start_server_on.result storage/perfschema/pfs_server.h 3143 Marc Alff 2010-05-06 WL#4895 PERFORMANCE SCHEMA TABLE IO Port, continued modified: include/mysql/psi/psi_abi_v1.h.pp include/mysql/psi/psi_abi_v2.h.pp mysql-test/suite/perfschema/r/selects.result mysql-test/suite/perfschema/t/selects.test storage/perfschema/pfs.cc storage/perfschema/pfs_instr_class.cc === added file 'mysql-test/suite/perfschema/r/myisam_table_io.result' --- a/mysql-test/suite/perfschema/r/myisam_table_io.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/myisam_table_io.result 2010-05-07 12:14:13 +0000 @@ -0,0 +1,126 @@ +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='YES' + where name like "wait/io/table/%"; +truncate table performance_schema.EVENTS_WAITS_HISTORY_LONG; +flush status; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +drop table if exists test.no_index_tab; +drop temporary table if exists test.temp_tab; +create table test.no_index_tab ( a varchar(255), b int ) engine=myisam; +insert into no_index_tab set a = 'foo', b = 1; +insert into no_index_tab set a = 'foo', b = 2; +insert into no_index_tab set a = 'foo', b = 3; +select * from test.no_index_tab; +a b +foo 1 +foo 2 +foo 3 +update test.no_index_tab set a = 'bar'; +select * from test.no_index_tab limit 2; +a b +bar 1 +bar 2 +delete from test.no_index_tab where b = 3; +select * from test.no_index_tab; +a b +bar 1 +bar 2 +truncate table test.no_index_tab; +create temporary table test.temp_tab ( a varchar(255), b int ) engine=myisam; +insert into temp_tab set a = 'foo', b = 1; +insert into temp_tab set a = 'foo', b = 2; +insert into temp_tab set a = 'foo', b = 3; +select * from test.temp_tab; +a b +foo 1 +foo 2 +foo 3 +update test.temp_tab set a = 'bar'; +select * from test.temp_tab limit 2; +a b +bar 1 +bar 2 +delete from test.temp_tab where b = 3; +select * from test.temp_tab; +a b +bar 1 +bar 2 +truncate table test.temp_tab; +update performance_schema.SETUP_CONSUMERS set enabled='NO'; +select event_name, +left(source, locate(":", source)) as short_source, +object_type, object_schema, object_name, +operation, number_of_bytes +from performance_schema.EVENTS_WAITS_HISTORY_LONG +where event_name like 'wait/io/table/%' + and object_schema='test' + order by thread_id, event_id; +event_name short_source object_type object_schema object_name operation number_of_bytes +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab insert NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab update NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TABLE test no_index_tab delete NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.h: TABLE test no_index_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab insert NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab update NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.cc: TEMPORARY TABLE test temp_tab delete NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +wait/io/table/sql/handler handler.h: TEMPORARY TABLE test temp_tab fetch NULL +show status like 'performance_schema_%'; +Variable_name Value +Performance_schema_cond_classes_lost 0 +Performance_schema_cond_instances_lost 0 +Performance_schema_file_classes_lost 0 +Performance_schema_file_handles_lost 0 +Performance_schema_file_instances_lost 0 +Performance_schema_locker_lost 0 +Performance_schema_mutex_classes_lost 0 +Performance_schema_mutex_instances_lost 0 +Performance_schema_rwlock_classes_lost 0 +Performance_schema_rwlock_instances_lost 0 +Performance_schema_table_handles_lost 0 +Performance_schema_table_instances_lost 0 +Performance_schema_thread_classes_lost 0 +Performance_schema_thread_instances_lost 0 +update performance_schema.SETUP_INSTRUMENTS set enabled='YES'; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; +drop table test.no_index_tab; === modified file 'mysql-test/suite/perfschema/r/start_server_no_cond_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_cond_class.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_cond_class.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_no_cond_inst.result' --- a/mysql-test/suite/perfschema/r/start_server_no_cond_inst.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_cond_inst.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_no_file_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_file_class.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_file_class.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_no_file_inst.result' --- a/mysql-test/suite/perfschema/r/start_server_no_file_inst.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_file_inst.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_no_mutex_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_mutex_class.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_mutex_class.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 0 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result' --- a/mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_mutex_inst.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 0 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_rwlock_class.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 0 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result' --- a/mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_rwlock_inst.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 0 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_no_thread_class.result' --- a/mysql-test/suite/perfschema/r/start_server_no_thread_class.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_thread_class.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 0 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_no_thread_inst.result' --- a/mysql-test/suite/perfschema/r/start_server_no_thread_inst.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_no_thread_inst.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 0 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_off.result' --- a/mysql-test/suite/perfschema/r/start_server_off.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_off.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === modified file 'mysql-test/suite/perfschema/r/start_server_on.result' --- a/mysql-test/suite/perfschema/r/start_server_on.result 2010-05-05 08:16:47 +0000 +++ b/mysql-test/suite/perfschema/r/start_server_on.result 2010-05-07 12:14:13 +0000 @@ -49,8 +49,8 @@ performance_schema_max_mutex_classes 200 performance_schema_max_mutex_instances 1000 performance_schema_max_rwlock_classes 20 performance_schema_max_rwlock_instances 1000 -performance_schema_max_table_handles 100000 -performance_schema_max_table_instances 50000 +performance_schema_max_table_handles 10000 +performance_schema_max_table_instances 1000 performance_schema_max_thread_classes 50 performance_schema_max_thread_instances 1000 show engine PERFORMANCE_SCHEMA status; === added file 'mysql-test/suite/perfschema/t/myisam_table_io.test' --- a/mysql-test/suite/perfschema/t/myisam_table_io.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/myisam_table_io.test 2010-05-07 12:14:13 +0000 @@ -0,0 +1,99 @@ +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +# Setup + +update performance_schema.SETUP_CONSUMERS set enabled='NO'; + +update performance_schema.SETUP_INSTRUMENTS set enabled='NO'; +update performance_schema.SETUP_INSTRUMENTS set enabled='YES' + where name like "wait/io/table/%"; + +truncate table performance_schema.EVENTS_WAITS_HISTORY_LONG; + +# Reset lost counters to a known state +flush status; + +# Start recording events +update performance_schema.SETUP_CONSUMERS set enabled='YES'; + +# Code to test + +--disable_warnings +drop table if exists test.no_index_tab; +drop temporary table if exists test.temp_tab; +--enable_warnings + +create table test.no_index_tab ( a varchar(255), b int ) engine=myisam; +insert into no_index_tab set a = 'foo', b = 1; +insert into no_index_tab set a = 'foo', b = 2; +insert into no_index_tab set a = 'foo', b = 3; + +select * from test.no_index_tab; + +update test.no_index_tab set a = 'bar'; + +select * from test.no_index_tab limit 2; + +delete from test.no_index_tab where b = 3; + +select * from test.no_index_tab; + +truncate table test.no_index_tab; + +create temporary table test.temp_tab ( a varchar(255), b int ) engine=myisam; +insert into temp_tab set a = 'foo', b = 1; +insert into temp_tab set a = 'foo', b = 2; +insert into temp_tab set a = 'foo', b = 3; + +select * from test.temp_tab; + +update test.temp_tab set a = 'bar'; + +select * from test.temp_tab limit 2; + +delete from test.temp_tab where b = 3; + +select * from test.temp_tab; + +truncate table test.temp_tab; + +# Stop recording events +update performance_schema.SETUP_CONSUMERS set enabled='NO'; + +select event_name, + left(source, locate(":", source)) as short_source, + object_type, object_schema, object_name, + operation, number_of_bytes + from performance_schema.EVENTS_WAITS_HISTORY_LONG + where event_name like 'wait/io/table/%' + and object_schema='test' + order by thread_id, event_id; + +# In case of failures, this will tell if table io are lost. +show status like 'performance_schema_%'; + +# Cleanup + +update performance_schema.SETUP_INSTRUMENTS set enabled='YES'; +update performance_schema.SETUP_CONSUMERS set enabled='YES'; + +drop table test.no_index_tab; + === modified file 'storage/perfschema/pfs_server.h' --- a/storage/perfschema/pfs_server.h 2010-04-19 12:26:29 +0000 +++ b/storage/perfschema/pfs_server.h 2010-05-07 12:14:13 +0000 @@ -55,10 +55,10 @@ #define PFS_MAX_FILE_HANDLE 32768 #endif #ifndef PFS_MAX_TABLE_SHARE - #define PFS_MAX_TABLE_SHARE 50000 + #define PFS_MAX_TABLE_SHARE 1000 #endif #ifndef PFS_MAX_TABLE - #define PFS_MAX_TABLE 100000 + #define PFS_MAX_TABLE 10000 #endif #ifndef PFS_WAITS_HISTORY_SIZE #define PFS_WAITS_HISTORY_SIZE 10 --Boundary_(ID_ny56DDVtIkHaCwzfP/EMmQ) MIME-version: 1.0 Content-type: text/bzr-bundle; CHARSET=US-ASCII; name="bzr/marc.alff@stripped" Content-transfer-encoding: 7BIT Content-disposition: inline; filename="bzr/marc.alff@stripped" # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marc.alff@stripped # target_branch: file:///Users/malff/BZR_TREE/mysql-next-mr-wl4895/ # testament_sha1: cf348e6ac4d47cbe75dceac1e071fed72a0b6954 # timestamp: 2010-05-07 06:14:40 -0600 # source_branch: file:///Users/malff/BZR_TREE/mysql-next-mr/ # base_revision_id: marc.alff@stripped\ # avhyqjl9ipiki1uv # # Begin bundle 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 --Boundary_(ID_ny56DDVtIkHaCwzfP/EMmQ)--