Êþº¾2Y ƒª ‚« ‚¬ ­® ‚¯ ‚° ‚± ‚² ‚³ ­´ µ¶· µ¸ µ¹º »¼ ½ ­¾¿ÀÁÂÃÄÅÆ ÇÈ ÉÊ ËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãä åæçèéêëìíîïð ­ñò ­ó ô¶ ôõ ­ö÷ øùúûüýþÿ      !"#$ %&'() ­*+, ‚-./+_Copyright_2007_Oracle_All_Rights_Reserved_Ljava/lang/String; BUILD_DATE ConstantValue0TRACEZ*(Loracle/jdbc/internal/OracleConnection;)VCodeLineNumberTable((Loracle/jdbc/driver/OracleConnection;)V getColumns^(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet; StackMapTable Exceptions1getColumnsNoWildcardsL(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)Ljava/sql/ResultSet;.233getColumnsWithWildcardsM(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Z)Ljava/sql/ResultSet;Æ44 getTypeInfo()Ljava/sql/ResultSet;5getColumnsNoWildcardsPlsql()Ljava/lang/String;()V SourceFileOracleDatabaseMetaData.java Œ6 Œ 789 :; <= >? –— œ ¤¥ @A3 BC% DE F;#oracle/jdbc/OracleCallableStatement GH$oracle/jdbc/internal/OracleResultSet I§ JKSELECT  NULL AS table_cat,  /*+ CHOOSE */B t.owner AS table_schem, t.table_name AS table_name, ¬ DECODE(s.owner, NULL, t.owner, s.owner) AS table_schem, DECODE(s.synonym_name, NULL, t.table_name, s.synonym_name) AS table_name,  DECODE (t.data_type, 'CHAR', t.char_length, 'VARCHAR', t.char_length, 'VARCHAR2', t.char_length, 'NVARCHAR2', t.char_length, 'NCHAR', t.char_length, 'NUMBER', 0, t.data_length),java/lang/StringBuilder Œ§Œ t.column_name AS column_name, DECODE (t.data_type, 'CHAR', 1, 'VARCHAR2', 12, 'NUMBER', 3, 'LONG', -1, 'DATE', LM%oracle/jdbc/driver/PhysicalConnection NŠ9391, 'RAW', -3, 'LONG RAW', -4, F 'BLOB', 2004, 'CLOB', 2005, 'BFILE', -13, 'FLOAT', 6, I 'TIMESTAMP(6)', 93, 'TIMESTAMP(6) WITH TIME ZONE', -101, ; 'TIMESTAMP(6) WITH LOCAL TIME ZONE', -102, 3 'INTERVAL YEAR(2) TO MONTH', -103, 6 'INTERVAL DAY(2) TO SECOND(6)', -104, ; 'BINARY_FLOAT', 100, 'BINARY_DOUBLE', 101, ! 'XMLTYPE', 2009,  1111)  AS data_type, ! t.data_type AS type_name, ' DECODE (t.data_precision, null, t.data_length, t.data_precision)  AS column_size,  0 AS buffer_length,  DECODE (t.data_type, 3 'NUMBER', DECODE (t.data_precision, - null, -127, 0 t.data_scale), 0 t.data_scale) AS decimal_digits,  10 AS num_prec_radix, 3 DECODE (t.nullable, 'N', 0, 1) AS nullable, O¥ c.comments AS remarks,  NULL AS remarks, í t.data_default AS column_def, 0 AS sql_data_type, 0 AS sql_datetime_sub, t.data_length AS char_octet_length, t.column_id AS ordinal_position, DECODE (t.nullable, 'N', 'NO', 'YES') AS is_nullable FROM all_tab_columns t, all_synonyms s, all_col_comments cnWHERE t.owner LIKE :1 ESCAPE '/' AND t.table_name LIKE :2 ESCAPE '/' AND t.column_name LIKE :3 ESCAPE '/' áWHERE (t.owner LIKE :4 ESCAPE '/' OR (s.owner LIKE :5 ESCAPE '/' AND t.owner = s.table_owner)) AND (t.table_name LIKE :6 ESCAPE '/' OR s.synonym_name LIKE :7 ESCAPE '/') AND t.column_name LIKE :8 ESCAPE '/' j AND t.owner = c.owner (+) AND t.table_name = c.table_name (+) AND t.column_name = c.column_name (+) 1 AND s.table_name (+) = t.table_name AND ((DECODE(s.owner, t.owner, 'OK', 'PUBLIC', 'OK', NULL, 'OK', 'NOT OK') = 'OK') OR (t.owner LIKE :9 AND t.owner = s.table_owner) OR (s.owner LIKE :10 AND t.owner = s.table_owner))3ORDER BY table_schem, table_name, ordinal_position P; QR4 S¢ TU3union select 'CHAR' as type_name, 1 as data_type, LV as precision, H '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 6 1 as nullable, 1 as case_sensitive, 3 as searchable, F 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, D 'CHAR' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, G NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix  from dual 8union select 'VARCHAR2' as type_name, 12 as data_type, H 'VARCHAR2' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, #union select 'DATE' as type_name, as data_type, 7 as precision, H NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 6 1 as nullable, 0 as case_sensitive, 3 as searchable, D 'DATE' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, 3union select 'RAW' as type_name, -3 as data_type, C 'RAW' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, -16union select 'BLOB' as type_name, 2004 as data_type, H null as literal_prefix, null as literal_suffix, NULL as create_params, 6 1 as nullable, 0 as case_sensitive, 0 as searchable, D 'BLOB' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, 6union select 'CLOB' as type_name, 2005 as data_type, 6 1 as nullable, 1 as case_sensitive, 0 as searchable, D 'CLOB' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, Ÿselect 'NUMBER' as type_name, 2 as data_type, 38 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual union select 'DATE' as type_name, 92 as data_type, 7 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'DATE' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual ¨union select 'TIMESTAMP' as type_name, 93 as data_type, 11 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'TIMESTAMP' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual Èunion select 'TIMESTAMP WITH TIME ZONE' as type_name, -101 as data_type, 13 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'TIMESTAMP WITH TIME ZONE' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual Ôunion select 'TIMESTAMP WITH LOCAL TIME ZONE' as type_name, -102 as data_type, 11 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'TIMESTAMP WITH LOCAL TIME ZONE' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual «union select 'INTERVALYM' as type_name, -103 as data_type, 5 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'INTERVALYM' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual «union select 'INTERVALDS' as type_name, -104 as data_type, 4 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'INTERVALDS' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual ¦union select 'LONG' as type_name, -1 as data_type, 2147483647 as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'LONG' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual ®union select 'LONG RAW' as type_name, -4 as data_type, 2147483647 as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'LONG RAW' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual ¡union select 'NUMBER' as type_name, -7 as data_type, 1 as precision, NULL as literal_prefix, NULL as literal_suffix, '(1)' as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual ¡union select 'NUMBER' as type_name, -6 as data_type, 3 as precision, NULL as literal_prefix, NULL as literal_suffix, '(3)' as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual  union select 'NUMBER' as type_name, 5 as data_type, 5 as precision, NULL as literal_prefix, NULL as literal_suffix, '(5)' as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual ¢union select 'NUMBER' as type_name, 4 as data_type, 10 as precision, NULL as literal_prefix, NULL as literal_suffix, '(10)' as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual ¡union select 'NUMBER' as type_name, -5 as data_type, 38 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'NUMBER' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual žunion select 'FLOAT' as type_name, 6 as data_type, 63 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'FLOAT' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual œunion select 'REAL' as type_name, 7 as data_type, 63 as precision, NULL as literal_prefix, NULL as literal_suffix, NULL as create_params, 1 as nullable, 0 as case_sensitive, 3 as searchable, 0 as unsigned_attribute, 1 as fixed_prec_scale, 0 as auto_increment, 'REAL' as local_type_name, -84 as minimum_scale, 127 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual union select 'REF' as type_name, 2006 as data_type, 0 as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'REF' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual ¡union select 'ARRAY' as type_name, 2003 as data_type, 0 as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'ARRAY' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual £union select 'STRUCT' as type_name, 2002 as data_type, 0 as precision, '''' as literal_prefix, '''' as literal_suffix, NULL as create_params, 1 as nullable, 1 as case_sensitive, 0 as searchable, 0 as unsigned_attribute, 0 as fixed_prec_scale, 0 as auto_increment, 'STRUCT' as local_type_name, 0 as minimum_scale, 0 as maximum_scale, NULL as sql_data_type, NULL as sql_datetime_sub, 10 as num_prec_radix from dual order by data_type 5 SWÌdeclare in_owner varchar2(32) := null; in_name varchar2(32) := null; my_user_name varchar2(32) := null; cnt number := 0; out_owner varchar2(32) := null; out_name varchar2(32):= null; loc varchar2(32) := null; xxx SYS_REFCURSOR; begin in_owner := ?; in_name := ?; select user into my_user_name from dual; if( my_user_name = in_owner ) then select count(*) into cnt from user_tables where table_name = in_name; if( cnt = 1 ) then out_owner := in_owner; out_name := in_name; loc := 'USER_TABLES'; else begin select table_owner, table_name into out_owner, out_name from user_synonyms where synonym_name = in_name; exception when NO_DATA_FOUND then out_owner := null; out_name := null; end; if( not(out_name is null) ) then loc := 'USER_SYNONYMS'; end if; end if; else select count(*) into cnt from all_tables where owner = in_owner and table_name = in_name; if( cnt = 1 ) then out_owner := in_owner; out_name := in_name; loc := 'ALL_TABLES'; else begin select table_owner, table_name into out_owner, out_name from all_synonyms where owner = in_owner and synonym_name = in_name; exception when NO_DATA_FOUND then out_owner := null; out_name := null; end; if( not(out_owner is null) ) then loc := 'ALL_SYNONYMS'; end if; end if; end if; 'open xxx for SELECT NULL AS table_cat, > in_owner AS table_schem, in_name AS table_name, X;^WHERE t.owner = out_owner AND t.table_name = out_name AND t.column_name LIKE ? ESCAPE '/' ; ? := xxx; end; „…)oracle/jdbc/driver/OracleDatabaseMetaData"oracle/jdbc/OracleDatabaseMetaDataFri_Aug_26_08:19:15_PDT_2011java/sql/SQLExceptionjava/lang/Stringjava/sql/CallableStatementjava/sql/PreparedStatementjava/sql/Statement!(Loracle/jdbc/OracleConnection;)V connection'Loracle/jdbc/internal/OracleConnection;%oracle/jdbc/internal/OracleConnectiongetIncludeSynonyms()ZhasSqlWildcard(Ljava/lang/String;)ZstripSqlEscapes&(Ljava/lang/String;)Ljava/lang/String; prepareCall0(Ljava/lang/String;)Ljava/sql/CallableStatement; setString(ILjava/lang/String;)VregisterOutParameter(II)Vexecute getCursor(I)Ljava/sql/ResultSet;closeStatementOnClosegetVersionNumber()Sappend-(Ljava/lang/String;)Ljava/lang/StringBuilder;mapDateToTimestamptoStringgetRemarksReportingprepareStatement0(Ljava/lang/String;)Ljava/sql/PreparedStatement; executeQuerycreateStatement()Ljava/sql/Statement;(I)Ljava/lang/StringBuilder;((Ljava/lang/String;)Ljava/sql/ResultSet;getMapDateToTimestamp ‚ƒ„…†…‡ˆ‰Š‡‹ŒŽ"*+·± %(ŒŽ"*+·± ,/!‘’ŽtD*´¹6™,,Æ(*,¶š -Æ*-¶š**,¶*-¶¶°*,-¶°r s(y9}“ü9”•–—Žäc*¶ :*´¹ :+¹ ,¹ -Ç §-¹ ö¹ ¹WÀ¹:À¹°* ŒŽ%7‘A’I“V”`•“?ÿ1˜™™™™š›ÿ˜™™™™š›™”•œŽ v’*´¹6:::'Ø¡§+\¢§~~™:: : : »Y·¶*´À´ ™!§"¶#¶$¶%¶&¶'¶(¶)¶*¶+¶,¶-¶.¶#(¤ §/¶0¶1¶2¶3¶4¶5¶6¶7¶8¶9¶¶:: ;: <:=:>:?:@:A:B:C:D:E:»Y·¶¶¶¶::™»Y·¶ ¶¶::§»Y·¶ ¶¶::»Y·¶ ¶¶::*´¹F™»Y·¶ ¶¶::§»Y·¶¶¶::»Y·¶¶¶¶::*´¹F™»Y·¶¶¶::™»Y·¶¶¶::™!»Y·¶G¶¶¶::§»Y·¶G¶¶¶::*´¹F™»Y·¶¶¶::*´¹™»Y·¶¶¶::»Y·¶G¶¶¶::*´¹H:™†+Ç §+¹I+Ç §+¹I,Ç §,¹I,Ç §,¹I-Ç §-¹I+Ç §+¹I+Ç §+¹I§9+Ç §+¹I,Ç §,¹I-Ç §-¹I¹JÀ:¹°â8¡ ®¯µ¶<¸@»DÁHÊðæôèøêüñóôö ú7<Uk¦ ¼"×$ã%ù'þ(*+7-R/^0t2€3–5±8¾:Ã<Õ=ç>ù? @A0BFFXGjH|KˆNP“ê)ÿ# ˜™™™™™™@Kÿ ˜™™™™™™ ÿ) ˜™™™™™™™™™žÿ ˜™™™™™™™™™ž™÷Kžÿ ˜™™™™™™™™™ž™ÿž˜™™™™™™™™™™™™™™™™™™™™™™:<"!!ÿ8˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ™ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ™ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ™ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ™ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ™ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ™ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ™ÿ ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ™ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ™ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ÿ˜™™™™™™™™™™™™™™™™™™™™™™Ÿ ™”•¡¢Ž  h*´¹KL*´¹=»Y·L¶¤¡ Чÿ¶MN¶O¶P¶Q¶R¶S¶T¶¶:: »Y·U¶¤¡  §жMN¶O¶P¶Q¶V¶S¶T¶¶:: »Y·W¶*´À´ ™!§"¶X¶Y¶Z¶Q¶[¶S¶T¶¶::»Y·\¶¤¡ Чÿ¶MN¶O¶Z¶Q¶]¶S¶T¶¶::^:»Y·_¶¶N¶`¶a¶Q¶b¶S¶T¶¶::»Y·c¶¶N¶O¶d¶Q¶e¶S¶T¶¶::»Y·f¶ ¶ ¶¶g¶h¶i¶j¶k¶l¶¶m¶n¶o¶p¶q¶r¶s¶t¶u¶¤¡)»Y·¶¶v¶w¶x¶¶:§¶y¶¶::+¹zÀ:¹°6 … †Ð[Ú¢îí64J8LqVªQ“^–e˜“U ÿ-˜£žÿ˜£žÿC ˜£™žÿ ˜£™žÿH ˜£™™žÿ ˜£™™ž™ÿC˜£™™™žÿ˜£™™™žÿ8˜£™™™™™™™žÿ˜£™™™™™™™ž™”•¤¥Ž$þ{L*´¹=|N}::»Y·¶*´¹~™!§"¶#¶$¶%¶&¶'¶(¶)¶*¶+¶,¶-¶.¶#(¤§/¶0¶1¶2¶3¶4¶5¶6¶7¶8¶9¶¶::;:<:=: >: @: : C: E:-:»Y·¶¶¶::»Y·¶¶¶::*´¹F™»Y·¶¶¶::§»Y·¶¶¶::»Y·¶ ¶ ¶¶::*´¹F™»Y·¶ ¶¶::»Y·¶G¶ ¶¶::*´¹F™»Y·¶ ¶¶::»Y·¶G¶¶¶::€:»Y·+¶¶¶¶::°zŸÔ Õ×Úã¾ÿÂÆÊ Î ÒÖÚÞá÷! #$2&H(c*o+…- /¬0Â3Ý5á7û8“”ÿ5˜™™™™žÿ˜™™™™ž™÷Jžÿ˜™™™™ž™ÿ­˜™™™™™™™™™™™™™™<<”•¦§Ž³±=¨©