Universidad de Costa Rica

Escuela de Ciencias de la Computación e Informática

CI-0122 Sistemas operativos

Ejemplos

CI0122 / Ejemplos / pthreads / DiningPhilosophers


ELF>@@UHATSHP}HuHHHHHHHHEHHEHE0EHH‹EHHHHEHѺHE}~HEHEEHHHE}~ܾ,IHLHIHLHHP[A\]UHSH8H}HEHEERHHHEHXUHHHHHHHHEHXHHHHHHHHUHH*)‰ЉE܋U܉)ȉE܋E܉HHUHH*)‰ЉE؋U؉)ȉE؋E؉E}	UHH}u}u'}uUH]
  Normal end of execution.
Round  philo #  Philosopher  will try to pickup sticks"3>`t%8(mintbcm	remdmejkt	remltmvw	remxy
m3
8?[A[Bt
k{7E8KMNvOv([G(\%^m_M`mbMfmh[i[j}~Gt
W{'
r{0	0mM			 M(M,~
 {/r7=mQQQWstdyvw{y!7Rm
8
W
m


y@v.Id$Ep?d(B\2Qp1QqŐƦ&=TrΑϯ	

-0			m	&`f
eq	lHfflt	leff	mss	s	ssf	
yys	yys	y2y	L
	kf	 leof	$	(
A8567
Bt 3m!!!!!! !!!!!!! !!!!!! g!!!!!! ! !!!!! !!!!"#Y	$$l%:	@	&'M	&&m()s	
Y	*decs	)s	*hexs	)s	)s	 *octs	@)s	+s	+"s	+&s	+)s	+,s	+/s	 +3s	@)6s	)9s	J+<s	,J)N

n
)Q
)V
)Y
,im*inw


*outz
,*cur


R
S

Tv
\.
eH
hb
iw"S--7.=S/J	0m12-2m-2t-0QQ--+3div!mm037-0Rtt0[mm--0f---0^m--4--+5vm4xM2
-
2t8
-
m28W
-
m0mm
-0i-

-

0bm
6yydiv

-,-7t7:(7;(7?7@(-m77:7;7?7@(-877:37;37?7@(-7:7:7;7?7@(-[877:7;7?7@(-t02-2-
m2	-
m2-
2""-
9@)vMMaMS:VXM\bTm]^j0avm0v.0.m0vI0
md
0Kmm0Rm
;0{m
;0v5v0x---0m-$--0im::@
0-jj--0v0v0\m-
;0m

;0vv0dm
90m?
0qmd-
0m

0lm
0m
0r-2
2m

2m(

2B
2-\

0W--

<tm8mmmmmmmmm t(-00-2
2Q
-2mp

-2
-0--
0-

0
0
01
0tQ
m08q
m2-
-0emv0Em

-0I
-0N
-0R&-0Ym=
;0mT
;
r








<

-0"

0-
m0	M
m67`=8>>&&>L`6:;AGH I(J0K8L@MHNPOQQRSSUTWU^V_WbXdYfZh[o\p]2}m-?@!!! m
l
8	48#)
b2mHv
2vbv2w-2
-
[
t@I? !!!!!!!!!!	!
!!!
!!!!!!!!!!!!!!!!!!! !!!"!#!$!%!&!'!(!)!*!+!,!-!.!/!0!1!2!3!4!5!6!7!8!9!:!;!<!<!=!>!?!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!A  Bg m & B}  & &mCm  & Dm & W? A m!) B"  &m!B#!!&m!&mC$m.!4!&m!C%mL!R!&m!D& f!&m! A.!"	vc8!"B1!!&'"B2!!&'"&mC3m!!&'"m!C4m!"&'"m!D5m"&'"m! s!AH#@T"!!!#	dpm!,# B""&<#B""&<#&mE""&<#tE	""&<#tE
"#&<#tF#&<#
9",#{
'"<#{-"=	XGm9#HmH
IJim\KkL5C$Mp5IzK7mLK7mHJwho8tPIhJi:m\N={$HMmlHMmhOPm	
8${P
$	Qdp<#	P 	RSm	T>xUIV@VT~WTBXM%:;I$>$>I:;n
:;I8	
:;I8
&I:;
:;I
I!I/:;:;n:;:;III&9:;:;:;9:;.?:;n<.?:;nI<.?:;nI<.?:;nI<.?:;nI<.?:;nI< :;!(
"<#:;2$
:;I?<%.?:;2<d&I4'.?:;2<d(:;I2)
:;I?2<*
:;I?2<+
:;I?2<,:;I2-/I.4:;nI?</4:;I<0.?:;I<12.?:;I<3.?:;I<4.?:;<5.?:;I<69:;7
:;I?<8:;9<::;;<:;=::;>I?.?:;I<@:;A:;B.?:;2<dC.?:;nI2<dD.?:;nI2<dE.?:;n2<dF.?:;n2<dG.?:;I@BH:;IIJ4:;IK4:;IL.?:;nI@BM:;IN.4@BO.4@BP4:;I?Q4:;I?R4I?4<S4GT4Gn
U4GnV4GnW4GnX4Gn,-l
/usr/include/c++/4.8.2/usr/lib/gcc/x86_64-redhat-linux/4.8.5/include/usr/include/bits/usr/include/usr/include/c++/4.8.2/bits/usr/include/c++/4.8.2/x86_64-redhat-linux/bits/usr/include/c++/4.8.2/ext/usr/include/c++/4.8.2/debugphilopt.cciostreamstddef.htypes.hstdlib.hpthreadtypes.hcstdlibcwcharchar_traits.hc++config.hclocaleios_base.hcwctypeiosfwdnew_allocator.hnumeric_traits.hstdio.h<built-in>wchar.htime.hdebug.hlocale.hatomic_word.hwctype.hpthread.hconfname.hsynch.hdinningph.h	$JuJw,JjJljY.˄I<Y.Y.rJf.J_SC_THREAD_SPORADIC_SERVERwcspbrklconv__align_SC_2_SW_DEV_SC_TIMERS__pthread_mutex_sunitbuf_SC_SHELL_SC_MEMORY_PROTECTION_SC_SCHAR_MAXnot_eofboolalphatm_sec_S_ios_iostate_end__total_seq_SC_UCHAR_MAXfwideiostate_SC_C_LANG_SUPPORTint_p_sep_by_spacechar_typebasefieldgetwc7lldiv_tPhilo_SC_BC_SCALE_MAX_SC_TTY_NAME_MAX_Value_SC_SAVED_IDS__gnu_cxx_SC_BC_STRING_MAX_SC_2_PBS_LOCATE_SC_TRACE_INHERITgetMutex_SC_SEMAPHORESwcsncmp_SC_EQUIV_CLASS_MAX_S_ateoverflow_arg_area_SC_DEVICE_SPECIFIC_ZNSt11char_traitsIcE4findEPKcmRS1__SC_THREAD_THREADS_MAXiswctype_SC_LEVEL3_CACHE_SIZElength_Ios_FmtflagsRelease_SC_NL_SETMAXstrtod__numeric_traits_integer<int>_SC_THREAD_PROCESS_SHARED_SC_JOB_CONTROLtowctrans__wakeup_seqtm_isdstgroupingwcstoldwcstoll_SC_NL_NMAXatof_S_decatoiatol_SC_POLLwcsspn_SC_V6_ILP32_OFF32_SC_TRACE_SYS_MAX_Ios_Openmode_SC_BASE_SC_LONG_BIT__woken_seq_SC_CLOCK_SELECTION__debugwctrans_SC_V7_LPBIG_OFFBIGphilopt.ccsetlocaleEating_SC_AIO_LISTIO_MAXvwscanf_S_showbase__mutex_S_oct6ldiv_t_SC_FILE_SYSTEM_SC_SCHAR_MIN_SC_LINE_MAX__owner_SC_TZNAME_MAX_SC_NZEROwctomb_SC_2_VERSION_SC_2_PBS_CHECKPOINT_S_internal__lock_ZNSt11char_traitsIcE4copyEPcPKcmwctypebadbit_S_eofbit_SC_LEVEL4_CACHE_ASSOC__pthread_list_t_SC_NL_LANGMAXwcsstr__initialize_pint_frac_digitslldiv_SC_LEVEL1_ICACHE_ASSOCthousands_sepSignal_SC_NPROCESSORS_ONLNadjustfieldwcstofattrwcstokwcstolshowpoint_SC_2_C_BIND_S_scientific__nwaitersscientific_SC_PRIORITY_SCHEDULING_SC_SS_REPL_MAX__gnu_debug_SC_VERSIONwmemset_ZN9__gnu_cxx24__numeric_traits_integerIcE5__maxE_SC_FSYNCbtowcputwchar_S_showposcurrency_symbol_SC_FILE_ATTRIBUTES_ZN9__gnu_cxx24__numeric_traits_integerIiE5__maxEto_char_type__data_SC_2_C_DEV~Conditionint_n_cs_precedes_ZN9__gnu_cxx24__numeric_traits_integerIlE5__maxEskipws_SC_SYMLOOP_MAXwcstoul11__mbstate_t_S_synced_with_stdiounsigned charuppercase_SC_MQ_OPEN_MAXpthread_mutex_twcsxfrmwcslenfloat_ZN9__gnu_cxx24__numeric_traits_integerIsE5__maxE_S_showpoint_SC_SEM_NSEMS_MAX_SC_USHRT_MAX_ZNSt11char_traitsIcE2eqERKcS2_assign_SC_STREAM_MAX_SC_ASYNCHRONOUS_IO_SC_READER_WRITER_LOCKS_SC_CPUTIMEint_type_ZSt4cout_S_fixed_SC_DEVICE_IO_SC_RE_DUP_MAX_SC_SIGNALS_S_cur_SC_V7_ILP32_OFFBIGstatus__priority_SC_PRIORITIZED_IOeats_SC_PASS_MAX__kindtm_zonefwscanfwcsftime_SC_V7_LP64_OFF64_SC_NPROCESSORS_CONFmbrlen_ZN5Mutex6UnlockEv_SC_XOPEN_XCU_VERSIONLock_SC_MEMLOCKstrtold_SC_SEM_VALUE_MAXstrtoll_SC_XOPEN_XPG2_SC_XOPEN_XPG3_SC_XOPEN_XPG4atexit_ZNSt11char_traitsIcE7not_eofERKi_SC_REALTIME_SIGNALS_ZN9Condition6SignalEP4Locknegative_signMutexwcscatwcstodtest_SC_THREAD_PRIO_PROTECTint_curr_symbolCondition__sizemutexreg_save_area_SC_THREAD_SAFE_FUNCTIONSright_SC_PII_INTERNET_DGRAM_SC_SINGLE_PROCESS_ZNSt11char_traitsIcE2ltERKcS2_Waitwcscspn_S_end_SC_SHRT_MAX_SC_RAW_SOCKETS__ioinit_CharTsize_t_ZN8DiningPh5printEv__count_SC_MULTI_PROCESSquot_SC_BC_BASE_MAX~Init_SC_RTSIG_MAX_SC_FD_MGMT_SC_NETWORKINGthds_SC_GETGR_R_SIZE_MAX_SC_THREAD_ATTR_STACKADDR_SC_LEVEL2_CACHE_ASSOC_SC_IOV_MAX_SC_TRACE_EVENT_NAME_MAX_SC_PII_INTERNET_SC_2_UPEwctobmon_thousands_sepfwprintfshowpos_SC_DELAYTIMER_MAX__wchb_SC_XBS5_ILP32_OFFBIG_S_boolalphalldiv_tvfwscanfwint_tmblenvfwprintf__digits_SC_SYSTEM_DATABASE_S_leftwcstoull_SC_T_IOV_MAX_S_ios_fmtflags_endwmemmovefputwc_ZNSt11char_traitsIcE11eq_int_typeERKiS2__ZN4Lock7AcquireEvfputws__pthread_internal_list_ZN4Lock8getMutexEv__prev_SC_XOPEN_STREAMS_S_badbitwcschrfind_S_out_S_rightbasic_ostream<char, std::char_traits<char> >decimal_point_Atomic_wordstrtoulopenmode_ZNSt11char_traitsIcE6lengthEPKc_ZNSt11char_traitsIcE12to_char_typeERKifrac_digits__broadcast_seqldiv_t_ZNSt11char_traitsIcE3eofEv_ZN4Lock7ReleaseEv_SC_2_FORT_RUN_SC_ADVISORY_INFOwcstombs_ZN9__gnu_cxx24__numeric_traits_integerImE8__digitsEpthread_cond_t_SC_TIMER_MAX_SC_THREADS_SC_SYSTEM_DATABASE_R_SC_USER_GROUPS_R_SC_DEVICE_SPECIFIC_R_SC_UINT_MAXswscanf__numeric_traits_integer<short int>_SC_TRACE_NAME_MAXwcsncpy_S_skipws_S_hexn_sep_by_space_ZNSt11char_traitsIcE6assignERcRKcwprintftm_min__nextchar_traits<char>srandp_cs_precedeswcscmp_SC_NGROUPS_MAXfp_offsetmbsrtowcsmon_groupinggp_offsetmove_SC_THREAD_DESTRUCTOR_ITERATIONS__numeric_traits_integer<long unsigned int>tm_yday_SC_SSIZE_MAXmbsinit_SC_PII_OSI_CLTSsizetype__elisionsystemtypedef __va_list_tag __va_list_tagshort unsigned int_SC_V6_LP64_OFF64signed charostream_SC_STREAMSgoodbitptrdiff_t_SC_PAGESIZEswprintf_SC_THREAD_PRIORITY_SCHEDULING_SC_CHARCLASS_NAME_MAXtm_wdaywcscpywchar_tvswprintfGNU C++ 4.8.5 20150623 (Red Hat 4.8.5-36) -mtune=generic -march=x86-64 -gputwcstatembstowcsmbstate_tn_sign_posnPTHREAD_CREATE_DETACHEDwcsrtombs_S_in_SC_CHILD_MAX_ZNSt11char_traitsIcE4moveEPcPKcmpickup_SC_PIPE__wch_ZNSt11char_traitsIcE6assignEPcmc__dso_handle_SC_PHYS_PAGES__maxvswscanf_SC_ATEXIT_MAXtm_mon_S_failbitcopyeq_int_type_SC_USER_GROUPSlong int_SC_TRACE_SC_XBS5_ILP32_OFF32vwprintf_SC_PII_XTIto_int_typethinksint_p_sign_posn_S_uppercasetm_year_SC_2_PBS_MESSAGEwscanf_SC_XOPEN_REALTIME_THREADS_Ios_Iostate__numeric_traits_integer<char>_SC_SPIN_LOCKS_SC_SPORADIC_SERVER_SC_LEVEL1_DCACHE_LINESIZE__mbstate_tmon_decimal_point_SC_GETPW_R_SIZE_MAX_SC_XOPEN_VERSION_Traitsstrtof_SC_2_C_VERSIONstrtollong double_SC_FIFO_SC_LEVEL4_CACHE_LINESIZE_SC_NL_TEXTMAXp_sep_by_spacelong unsigned int_GLOBAL__sub_I_status_ZNSt11char_traitsIcE7compareEPKcS2_mbool_SC_XBS5_LP64_OFF64_SC_SPAWN_SC_SELECT_SC_PII_OSI_M_SC_2_PBS_SC_XBS5_LPBIG_OFFBIG_SC_WORD_BITwctype_tchar_SC_2_PBS_ACCOUNTINGcout_SC_BARRIERS_SC_AIO_MAX_SC_2_CHAR_TERM__static_initialization_and_destruction_0__spins_SC_LEVEL1_ICACHE_LINESIZE_S_ios_openmode_end__nusersios_baseUnlock_SC_XOPEN_SHM_SC_XOPEN_ENH_I18N_SC_THREAD_KEYS_MAX_SC_ULONG_MAX_SC_TYPED_MEMORY_OBJECTS_SC_TIMEOUTS_SC_LEVEL2_CACHE_SIZE_SC_XOPEN_UNIX_IO_FILEwmemchr_SC_LEVEL2_CACHE_LINESIZE_S_refcounttm_hourself_SC_THREAD_STACK_MINatoll__minlock_SC_NL_MSGMAXbsearch_SC_SHRT_MIN_SC_THREAD_ROBUST_PRIO_PROTECTgetwchar_SC_LOGIN_NAME_MAXint_n_sign_posnfixedtm_mdayBroadcast_SC_XOPEN_CRYPTputdown_SC_BC_DIM_MAX_SC_LEVEL1_DCACHE_SIZE_SC_LEVEL1_DCACHE_ASSOC__numeric_traits_integer<long int>_SC_AIO_PRIO_DELTA_MAX_SC_XOPEN_REALTIMEmain_SC_INT_MAX_SC_THREAD_ROBUST_PRIO_INHERITldiv_SC_TRACE_LOG~DiningPhHungryfailbitdoublePTHREAD_CREATE_JOINABLE__FILEargc_SC_OPEN_MAXargv_SC_UIO_MAXIOV__int32_tqsort_ZN9Condition4WaitEP4Lockwmemcmpwcrtomb__value_Z5PhiloPv14pthread_cond_t_SC_CHAR_MAX/home/www/html/ci1310/ejemplos/pthreads/DiningPhilosophers~LockAcquireDiningPhseekdirleftpositive_sign_SC_PII_OSI_COTS5div_t_S_goodbit_SC_PII_SOCKETdiv_t_SC_V6_LPBIG_OFFBIG_SC_MQ_PRIO_MAX_ZN8DiningPh4testEl_S_ios_seekdir_endThinking_SC_TRACE_EVENT_FILTERmbtowc_SC_THREAD_CPUTIME_ZN9__gnu_cxx24__numeric_traits_integerIiE5__minE_SC_C_LANG_SUPPORT_Rlong long unsigned int_SC_NL_ARGMAXmbrtowc_S_basefieldwmemcpy__compar_fn_t_SC_PII_SC_MAPPED_FILES_ZN9__gnu_cxx24__numeric_traits_integerIlE5__minE_SC_LEVEL4_CACHE_SIZEshowbase__list_S_unitbuf_SC_2_FORT_DEV_S_trunc_ZNSt11char_traitsIcE11to_int_typeERKcInitfmtflags_SC_2_LOCALEDEF_SC_LEVEL1_ICACHE_SIZEwcsncattm_gmtoff_ZN9__gnu_cxx24__numeric_traits_integerIsE5__minE_SC_TRACE_USER_EVENT_MAXint_n_sep_by_space_SC_CHAR_BIT_ZN8DiningPh6pickupElinternal~Mutexgetenvfgetwcpthread_attr_tfgetwsrand_SC_INT_MIN_SC_PII_INTERNET_STREAM_SC_EXPR_NEST_MAX_SC_THREAD_ATTR_STACKSIZE_SC_SIGQUEUE_MAXwcscollwctrans_t_SC_SYNCHRONIZED_IO_SC_V7_ILP32_OFF32_ZN5Mutex4LockEvp_sign_posnwcsrchrcompare_SC_LEVEL3_CACHE_LINESIZElong long int_SC_MESSAGE_PASSING_S_begprint_SC_REGEX_VERSIONeofbit_SC_FILE_LOCKING_SC_AVPHYS_PAGES_SC_MB_LEN_MAX_S_adjustfield_SC_PII_OSI_SC_ARG_MAXungetwc_SC_MEMLOCK_RANGE_SC_SHARED_MEMORY_OBJECTS_SC_CHAR_MIN_ZN9__gnu_cxx3divExxn_cs_precedes_Ios_Seekdir_SC_XOPEN_LEGACY_SC_2_PBS_TRACK_SC_THREAD_PRIO_INHERITlocaleconv_SC_LEVEL3_CACHE_ASSOC__futexstrtoull_ZN8DiningPh7putdownEl_SC_HOST_NAME_MAX_ZN9Condition9BroadcastEP4Lock_SC_COLL_WEIGHTS_MAX_SC_MONOTONIC_CLOCK_S_floatfield_SC_CLK_TCKfloatfield__is_signedunsigned int_SC_V6_ILP32_OFFBIG_S_binshort intint_p_cs_precedes_SC_IPV6_SC_REGEXP15pthread_mutex_t_S_appGCC: (GNU) 4.8.5 20150623 (Red Hat 4.8.5-36)zPLRx$$9AC
G-zRxAC
E8=AC
x XAC
PX=K	Za (fHiPo9t9"Zap	$*ANfsphilopt.cc_ZStL8__ioinit_Z41__static_initialization_and_destruction_0ii_GLOBAL__sub_I_statusthdsdpmutexmain__gxx_personality_v0_Znwm_ZN5MutexC1Ev_ZN8DiningPhC1Evpthread_attr_initpthread_attr_setdetachstate_Z5PhiloPvpthread_createpthread_attr_destroypthread_join_ZSt4cout_ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc_ZdlPv_Unwind_Resume_ZN5Mutex4LockEv_ZNSolsEi_ZNSolsEl_ZSt4endlIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6__ZNSolsEPFRSoS_E_ZN8DiningPh5printEv_ZN5Mutex6UnlockEv_ZN8DiningPh6pickupElrandsleep_ZN8DiningPh7putdownElpthread_exit_ZNSt8ios_base4InitC1Ev__dso_handle_ZNSt8ios_base4InitD1Ev__cxa_atexit#*4?FRc
 
!

"#

"#$%!$,%]e&r
w
"|#'
%#(
)*+
/
"#(
=#
)*,-#.V/]l0q./1
X2
3
X
45



)
.
;
B
I
P
!W
^
,!c
w
~




&
)


%



9
E

P
)l
w





\!
I


\
:
P	



&
1

<
)X
v
i

Q 









)
!
,
:





k
p1
KN
?f
l

e

-


?


k
w3
:
R
CY
l
s




.



l

)

Z
	
P

"
9
$
+
2
9
P@
H
fP
^W
%^
 e
o
n
oz
n!

%!
+
2

&









l
d
C	
	
	
*	
A	
Z	
f	
	
	
	
	
	
	
	




]&

[5

D

R

`

 o

|



&







8
BA
J
^T
_
e
n
z
'

$

0
5
Y"
8
S
#
n



&




}9

X

n

W

}

k

3
?
@J
U
 `
3
k
Vu
7
@

 
3

V

@

 
3

V

@

 &
3
1
V;
'C
@N
Y
 d
3
o
Vz
Q
:
	
Y 
f
	
	%
*
/
:
F
R
^
j

w


|
q


V


~

/

J

e


_	


	
%
yF
q


4
	

)
 

@
e

.

N



e)
{C
d]
g	





s
s
c

@
W	
3
8R
q
H
!
C



2
R
tr


F
2


:'
>
U
&[
&s
z



+
+



.
X
N
"o

#
o
o




%






A
"
.
:
F
aR
^
j
6!v



V


/ 

	
}

m/
FI
c
x

y
1
 


r
d

]
P


>

+	
w
t
P
	

m

#
)
/
5
J;
A
G
@M
.S
'Y
_
+e
	k
Tq
w
}

4
u
 

(
O

\




6
1

H
7


m
:
B



e


%
,
M3
a
:
A

H
O
7V
]
Ed
k
tr
%y
/
4
:
=
 



	


>

C	
L
	


a
S

m

	
	
!

(
/
z6
=
yD
K
R
{Y
O`
sg
kn
u
A|
s
a



=


K





$
e

a

E

}

$
+
2
9
@
G
N
U
\
hc
j
-q
1x
 

,



Q!

c

8


<






[


{
  
d'
	.
5
J<
!C
J
,Q
y X
_
f
m
t
!{
W





N

O
: 




H!


	
p	 
 
 
q 
5 
]# 
|* 

1 
8 
n@ 

L 

X 

n 
 
	 
 
L 
	 
	 
F 
	 
!
!

5!
z;!
#S!
Y!

t!

!

!
!
_!
,!
}!
e
"
"
 ."
B"
wH"
N"
U"
l"
 x"
"
"
a"
"
"
b "

"
P#
#
J#
tT#k#
z#
##
#
.#
^#9#F#
>	$
O$$ND$
H$_$
2m$
 	|$
$$
	$$
$$$

$$
%X%
 %
-%
`7%
BA%
JM%
X%
ak%
+
y
(1
h9.symtab.strtab.shstrtab.rela.text.data.bss.rodata.gcc_except_table.rela.init_array.rela.debug_info.debug_abbrev.rela.debug_aranges.rela.debug_line.debug_str.comment.note.GNU-stack.rela.eh_frame @@[&R,`Y 1`X9PK@aax%\@a8=	mX)k.0{@0.1@@01u!0AS.oSpS@X0T	@Y