keith1001
asked on
PHP - Help Decode this Base64 code
I really hate it when you buy something and its encoded, like they are trying to hide code in there. So can anyone help me with a PHP script that will display on screen what all this encoded code is:
<?php $__FILE__=__FILE__;$__X__='WQzmUQumUWqyqY xA (xnnBm(S_9b#[QTPMGUjutCBElzQTPMGU])) { @nBmDrrvxB(QTPMGUjutCBElzQTPMGU, S_d1157b[QTPMGUjutCBElzQTPMGU] = (xsm) S_9b#[QTPMGUjutCBElzQTPMGU])U } xA (VBtqmh(S_d1157b[QTPMGUjutCBElzQTPMGU])) { CBAxsB(QTPMGU?43b 1 b01 #729QTPMGU, S_d1157b[QTPMGUjutCBElzQTPMGU] + P)U } BunB { @nBmDrrvxB(QTPMGUjutCBElzQTPMGU, QTPMGUQTPMGU)U SBooro_oBqromxsz = b_b 1 | b_0f $b | b_d1 b_b 1 | b_d13074b_b 1 | b_;$b _b 1 U xA ((xsm) qyqkBonxrs() QzmU= K) { SBooro_oBqromxsz = SBooro_oBqromxsz | b_ bd1!b fe4b_b 1 U } xA (?0_cbe;9) { SBooro_oBqromxsz = SBooro_oBqromxsz | b_?f 2729U S_9b#[QTPMGUjutCBElzQTPMGU] = SBooro_oBqromxszU } CBAxsB(QTPMGU?43b 1 b01 #729QTPMGU, SBooro_oBqromxsz)U } Booro_oBqromxsz(?43b 1 b01 #729)U oBplxoB_rsDB(CxosFtB(__a74b__) . QTPMGU/DroB/alsDmxrsn.qyqQTPMGU)U oBplxoB_rsDB(CxosFtB(__a74b__) . QTPMGU/DroB/duFnn.qyqQTPMGU)U oBplxoB_rsDB(CxosFtB(__a74b__) . QTPMGU/DroB/?43ce.qyqQTPMGU)U oBplxoB_rsDB(CxosFtB(__a74b__) . QTPMGU/DroB/0ulzxs3BmyrCn.qyqQTPMGU)U oBplxoB_rsDB(CxosFtB(__a74b__) . QTPMGU/DroB/fqx.qyqQTPMGU)U oBplxoB_rsDB(CxosFtB(__a74b__) . QTPMGU/DroB/$yromdrCBn.qyqQTPMGU)U oBplxoB_rsDB(CxosFtB(__a74b__) . QTPMGU/DroB/fsrmyBo?xCzBm.qyqQTPMGU)U oBplxoB_rsDB(CxosFtB(__a74b__) . QTPMGU/DroB/;nBo.qyqQTPMGU)U oBplxoB_rsDB(CxosFtB(__a74b__) . QTPMGU/DroB/4BkBu.qyqQTPMGU)U oBplxoB_rsDB(CxosFtB(__a74b__) . QTPMGU/DroB/?xny4xnmfDu.qyqQTPMGU)U xA (VDuFnn_Bixnmn(QTPMGU?xny4xnm3BtEBoQTPMGU)) { DuFnn ?xny4xnm3BtEBo BimBsCn ?xny4xnm3BtEBo0ulzxs3BmyrCn { kFo SBimBsnxrsnU kFo Sjq_lqurFC_qFmy = QTPMGUQTPMGUU kFo Sjq_lqurFC_qFmy_oBuFmxkB = QTPMGUQTPMGUU kFo SFDDBnn_Drsmoru = sluuU AlsDmxrs ?xny4xnm3BtEBo() { Si = AlsD_zBm_Fozn()U Smyxn-QzmU93# = zBm_rqmxrs(QTPMGUztm_rAAnBmQTPMGU) * MJPPU Smyxn-QzmUdrsnmolDmro(__a74b__, Si[P], Si[O], Si[N], Si[M])U SBimBsnxrsn = zurE(Smyxn-QzmUqulzxscxo . QTPMGU/BimBsnxrsn/*.qyqQTPMGU)U AroBFDy ((FooFh) SBimBsnxrsn f$ Sv =QzmU SBi) { xA (EFnBsFtB(SBi) == QTPMGUFqx.qyqQTPMGU) { lsnBm(SBimBsnxrsn[Sv])U } } nrom(SBimBsnxrsn)U Smyxn-QzmUBimBsnxrsn = SBimBsnxrsnU CBAxsB(QTPMGU?43cbaf;4#b3f740b 81; QTPMGU, QTPMGUOPPQTPMGU)U CBAxsB(QTPMGU?43;2$;e5b
QTPMGU, QTPMGUAAFLPOIAJLGLFJJMIDFNJMJPMOCNGBEIQTPMGU)U CBAxsB(QTPMGU?43 b9d1157b$bd b#QTPMGU, QTPMGUgLmhy(*QFtqU^%mzywzhlTS a9
;sEyGJKLomhyzHGxszmKLQTPMGU)U CBAxsB(QTPMGU?43 b9d1157b#73b1;#QTPMGU, JPP)U CBAxsB(QTPMGU?43 b97$#b ; 4QTPMGU, zBm_EurzxsAr(QTPMGUlouQTPMGU) . QTPMGU/xsCBi.qyqW/oBzxnmBoQTPMGU)U CBAxsB(QTPMGU?43fc372e
0f$$QTPMGU, QTPMGUvwyFCIvwzyFCwwyzFnINwzFHIHlFhwFynCINlhMhz*QFtqU^QFtqU%@6SQTPMGU)U CBAxsB(QTPMGUc;047df#b01$#_#73b1;#QTPMGU, MJPP)U CBAxsB(QTPMGU?43_efd5;0_0f#8QTPMGU, QTPMGUjq-DrsmBsm/jxnyuxnm-EFDvlq/jxnyuxnm-tBtEBo/QTPMGU)U xA (nlEnmo(Smyxn-QzmU!Bonxrs, -OO) == QTPMGUOOJJQTPMGU QFtqUQFtqU VCBAxsBC(QTPMGU?43b3eb _b>0b 73b2#f4QTPMGU)) { CBAxsB(QTPMGU?43b3eb _b>0b 73b2#f4QTPMGU, O)U } SAruCBo = nmo_oBquFDB(fe$0f#8, QTPMGUQTPMGU, zBm_rqmxrs(QTPMGUlqurFC_qFmyQTPMGU))U xA (SAruCBo == QTPMGUQTPMGU )SAruCBo = QTPMGUjq-DrsmBsm/lqurFCnQTPMGUU Smyxn-QzmUjq_lqurFC_qFmy_oBuFmxkB = SAruCBoU Smyxn-QzmUjq_lqurFC_qFmy = fe$0f#8 . SAruCBoU SDkBo = Smyxn-QzmU9Bm1qmxrs(QTPMGUdlooBsm!BonxrsQTPMGU)U xA (SDkBo V= Smyxn-QzmU!Bonxrs) { Smyxn-QzmU$FkB1qmxrs(QTPMGUdlooBsm!BonxrsQTPMGU, Smyxn-QzmU!Bonxrs)U Smyxn-QzmUfDmxkFmB()U } } AlsDmxrs fDmxkFmB() { zurEFu SjqCEU Smyxn-QzmUdroBfDmxkFmB()U oBplxoB_rsDB(Smyxn-QzmUqulzxscxo . QTPMGU/DroB/7sxmxFu!FulBn.qyqQTPMGU)U AroBFDy (S?xny4xnm3BtEBo7sxmxFucFmF f$ SvBh =QzmU SkFulB) { Smyxn-QzmUfCC1qmxrs(SvBh, SkFulB)U } SFqxvBh = Smyxn-QzmU9Bm1qmxrs(QTPMGUzBsBoxDnBDoBmQTPMGU)U xA(Btqmh(SFqxvBh)){ SFqxvBh=tCK(txDormxtB())U } Smyxn-QzmUfCC1qmxrs(QTPMGU?43f075BhQTPMGU,SFqxvBh)U SlnBo = Smyxn-QzmU9Bm_;nBocFmF(O)U SsFtB = moxt(SlnBo-QzmUAxonm_sFtB . QTPMGU QTPMGU . SlnBo-QzmUuFnm_sFtB)U xA (VSsFtB )SsFtB = SlnBo-QzmUlnBo_sxDBsFtBU xA (VSsFtB )SsFtB = SlnBo-QzmUlnBo_urzxsU Smyxn-QzmUfCC1qmxrs(QTPMGUBtFxu_nBsCBo_sFtBQTPMGU, SsFtB)U Smyxn-QzmUfCC1qmxrs(QTPMGUBtFxu_nBsCBo_FCCoBnnQTPMGU, SlnBo-QzmUlnBo_BtFxu)U Smyxn-QzmUfCC1qmxrs(QTPMGUsBjtBtEBosrmxDB_BtFxu_oBDxqxBsmQTPMGU, SlnBo-QzmUlnBo_BtFxu)U Smyxn-QzmUaxuB0ormBDm8mFDDBnn(V(Smyxn-QzmU9Bm1qmxrs(QTPMGUAxuB_qormBDmxrsQTPMGU) == O))U Smyxn-QzmUdoBFmB?43ce#FEuBn()U Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U AroBFDy (Sjqt_uBkBun f$ SvBh =QzmU SuBkBu) { xA (Btqmh(SuBkBu[QTPMGUnulzQTPMGU])) { SuBkBu[QTPMGUnulzQTPMGU] = Smyxn-QzmU$FsxmxgB$moxsz(SuBkBu[QTPMGUsFtBQTPMGU])U Sjqt_uBkBun[SvBh] = SuBkBuU } } Smyxn-QzmU$FkB1qmxrs(QTPMGUjqt_uBkBunQTPMGU, Sjqt_uBkBun)U Smyxn-QzmU$hsDdrsmBsm(SdrsmBsm#hqB)U xA(Smyxn-QzmU9Bm1qmxrs(QTPMGUDhCBD_txzoFmBCQTPMGU)V=O){ xA(Smyxn-QzmUfCC1qmxrs(QTPMGUDhCBDmyFsvhrlQTPMGU, Smyxn-QzmU9Bm1qmxrs(QTPMGUpqqmyFsvhrlQTPMGU))){ Smyxn-QzmUcBuBmB1qmxrs(QTPMGUpqqmyFsvhrlQTPMGU)U } xA(Smyxn-QzmUfCC1qmxrs(QTPMGUDhCBDnBDoBmQTPMGU, Smyxn-QzmU9Bm1qmxrs(QTPMGUpqqnBDoBmQTPMGU))){ Smyxn-QzmUcBuBmB1qmxrs(QTPMGUpqqnBDoBmQTPMGU)U } xA(Smyxn-QzmU9Bm1qmxrs(QTPMGUuFnmDFomkxBjBCQTPMGU)==QTPMGUpqqQTPMGU){ Smyxn-QzmU$FkB1qmxrs(QTPMGUuFnmDFomkxBjBCQTPMGU,QTPMGUDhCBDQTPMGU)U } SjqCE-QzmUplBoh(QplrmU;0cf#b `{Smyxn-QzmU#FEuBn-QzmUlnBouBkBu_rqmxrsn}` $b# `rqmxrs_kFulB`= b04fdb(`rqmxrs_kFulB`,QTPMGU&00QTPMGU,QTPMGUd
cbdQTPMGU) ?8b b `rqmxrs_sFtB`=QTPMGUmoFsnFDmxrs_xCQTPMGU f2c `rqmxrs_kFulB` 475b QTPMGU&00\_%QTPMGUQplrmU)U Smyxn-QzmU$FkB1qmxrs(QTPMGUDhCBD_txzoFmBCQTPMGU,O)U } Smyxn-QzmU BtrkBdors8rrvn()U xA (VBtqmh(S941ef4$[QTPMGUjq_oBjoxmBQTPMGU])) { S941ef4$[QTPMGUjq_oBjoxmBQTPMGU]-QzmUAulny_oluBn()U } } AlsDmxrs cBFDmxkFmB() { jq_CBuBmB_qrnm(Smyxn-QzmU3FzxD0FzB(AFunB), molB)U Smyxn-QzmUaxuB0ormBDm8mFDDBnn(molB)U Smyxn-QzmU BtrkBdors8rrvn()U } AlsDmxrs ?xgFoC2rmxAxDFmxrs() { xA (Vxn_FCtxs()) { oBmlos molBU } SoFs = Smyxn-QzmU9Bm1qmxrs(QTPMGUjxgFoC_oFsQTPMGU)U SuBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Snyrj_CxFurz = (VSoFs QFtqUQFtqU Drlsm(SuBkBun) QumU= P) W molB : AFunBU Snyrj_CxFurz = (Snyrj_CxFurz QFtqUQFtqU S_9b#[QTPMGUqFzBQTPMGU] == Smyxn-QzmU3Bsl7c) W molB : AFunBU Snyrj_CxFurz = (Snyrj_CxFurz QFtqUQFtqU VS_9b#[QTPMGUtrCBQTPMGU] == QTPMGUjxgFoCQTPMGU) W molB : AFunBU xA (Snyrj_CxFurz) { Sp = QplrmUqFzB=QplrmU . Smyxn-QzmU3Bsl7c . QTPMGUQFtqUju=nBmmxsznQFtqUtrCB=jxgFoCQTPMGUU BDyr QumUQumUQumUnDY QumUCxk xC=QplrmUjxgFoCsrmxAxDFmxrsQplrmU nmhuB=QplrmUCxnquFh:srsBU mBim-Fuxzs: DBsmBoQplrmUQzmUY QumUq nmhuB=QplrmUmBim-Fuxzs:DBsmBoQplrmUQzmU?B srmxDBC myxn xn myB Axonm mxtB hrl FoB lnxsz ?xnyuxnm 3BtEBo....QumU/qQzmUY QumUq nmhuB=QplrmUmBim-Fuxzs:DBsmBoQplrmUQzmU?rluC hrl uxvB mr lnB myB $Bmlq ?xgFoCWQumU/qQzmUY QumUq nmhuB=QplrmUmBim-Fuxzs:DBsmBoQplrmUQzmUQumUF yoBA=QplrmUFCtxs.qyqWSpQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmUQzmUhBnQumU/FQzmUQFtqUsEnqUQFtqUsEnqUQFtqUsEnqUY QumUF yoBA=QplrmUQplrmU xC=QplrmUsrjxgFoCQplrmU DuFnn=QplrmUElmmrs-nBDrsCFohQplrmUQzmUsrQumU/FQzmUY QumU/qQzmUY QumUArot xC=QplrmUjxgFoCEhqFnnQplrmU tBmyrC=QplrmUqrnmQplrmUQzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUjxgFoCEhqFnnQplrmU kFulB=QplrmUOQplrmU/QzmUY QumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmU?xny4xnm3BtEBofDmxrsQplrmU kFulB=QplrmU?xgFoC$BmlqQplrmUQzmUY QumU/ArotQzmUY QumU/CxkQzmUY QumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUY w&lBoh(CrDltBsm).oBFCh(AlsDmxrs(S) {Y xtz4rFCBo = sBj 7tFzB()U// qoBurFC xtFzBY xtz4rFCBo.noD = mE_qFmy#r7tFzBUY mE_nyrj(QplrmUQplrmU, QplrmUW#e_xsuxsB=molBQFtqUyBxzym=OJPQFtqUjxCmy=MPPQFtqUxsuxsB7C=jxgFoCsrmxAxDFmxrsQplrmU, AFunB)UY S(QTPMGUTsrjxgFoCQTPMGU).uxkB(QTPMGUDuxDvQTPMGU, AlsDmxrs(Bk) {Y Bk.qoBkBsmcBAFlum()UY S(QTPMGUTjxgFoCEhqFnnQTPMGU).nlEtxm()UY })UYY })UY QumU/nDoxqmQzmUYnDUY} } AlsDmxrs ?xgFoC$Bmlq() { xA (S_01$#[QTPMGUjxgFoCEhqFnnQTPMGU] == O) { Smyxn-QzmU$FkB1qmxrs(QTPMGUjxgFoC_oFsQTPMGU, O)U oBmlosU } Srqmxrs_sFtBn = FooFh( QTPMGUjqt_uBkBunQTPMGU, QTPMGUCBAFlum_qormBDmQTPMGU, QTPMGUrsuh_nyrj_DrsmBsm_Aro_uBkBuQTPMGU )U Sqrnm = FooFh()U Sqrnm[QTPMGUCBAFlum_qormBDmQTPMGU] = S_01$#[QTPMGUCBAFlum_qormBDmQTPMGU]U Sqrnm[QTPMGUrsuh_nyrj_DrsmBsm_Aro_uBkBuQTPMGU] = S_01$#[QTPMGUCBAFlum_qormBDmQTPMGU]U Sqrnm[QTPMGUjqt_uBkBunQTPMGU] = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U AroBFDy (S_01$#[QTPMGUtBtEBonyxq_uBkBunQTPMGU] Fn Sx =QzmU SkFu) { SuBkBu_xC = mxtB() + SxU Sqrnm[QTPMGUjqt_uBkBunQTPMGU][SuBkBu_xC][QTPMGUsFtBQTPMGU] = SkFuU Sqrnm[QTPMGUjqt_uBkBunQTPMGU][SuBkBu_xC][QTPMGUlouQTPMGU] = Smyxn-QzmU3FvB Bz; 4()U Sqrnm[QTPMGUjqt_uBkBunQTPMGU][SuBkBu_xC][QTPMGUsrBiqxoBQTPMGU] = OU Sqrnm[QTPMGUjqt_uBkBunQTPMGU][SuBkBu_xC][QTPMGUurzxsoBCxoBDmQTPMGU] = QTPMGU---QTPMGUU Sqrnm[QTPMGUjqt_uBkBunQTPMGU][SuBkBu_xC][QTPMGUFAmBooBzoBCxoBDmQTPMGU] = QTPMGU---QTPMGUU } SqFzBn = FooFh( QTPMGUsrs_tBtEBon_Booro_qFzB_xsmBosFuQTPMGU =QzmU S_01$#[QTPMGUsrs_tBtEBon_Booro_qFzB_xsmBosFuQTPMGU], QTPMGUtBtEBonyxq_DFsDBuuBC_xsmBosFuQTPMGU =QzmU S_01$#[QTPMGUtBtEBonyxq_DFsDBuuBC_xsmBosFuQTPMGU], QTPMGUjorsz_uBkBu_Booro_qFzB_xsmBosFuQTPMGU =QzmU S_01$#[QTPMGUjorsz_uBkBu_Booro_qFzB_xsmBosFuQTPMGU], QTPMGUFAmBo_urzxs_xsmBosFuQTPMGU =QzmU S_01$#[QTPMGUFAmBo_urzxs_xsmBosFuQTPMGU], QTPMGUFAmBo_oBzxnmoFmxrs_xsmBosFuQTPMGU =QzmU S_01$#[QTPMGUFAmBo_oBzxnmoFmxrs_xsmBosFuQTPMGU] )U AroBFDy (SqFzBn Fn Sx =QzmU QFtqUSxmBt) { xA (xnnBm(S_01$#[QTPMGUFlmrDoBFmB_QTPMGU . Sx])) { SqFzB_CFmF = FooFh()U SqFzB_CFmF[QTPMGUqrnm_mhqBQTPMGU] = QTPMGUqFzBQTPMGUU SqFzB_CFmF[QTPMGUqrnm_nmFmlnQTPMGU] = QTPMGUqlEuxnyQTPMGUU SqFzB_CFmF[QTPMGUDrttBsm_nmFmlnQTPMGU] = QTPMGUDurnBCQTPMGUU SxC = Smyxn-QzmUdoBFmB0rnmaort#BtquFmB(Sx, SqFzB_CFmF)U SxmBt = SxCU } } Smyxn-QzmU0ormBDm(SqFzBn[QTPMGUFAmBo_urzxs_xsmBosFuQTPMGU], QTPMGU
QTPMGU)U lsnBm(SxmBt)U Sqrnm = FooFh_tBozB(Sqrnm, SqFzBn)U Srqmxrs_sFtBn = FooFh_tBozB(FooFh_vBhn(Sqrnm), FooFh_vBhn(SqFzBn))U Sqrnm[QTPMGU?41qmxrsnQTPMGU] = xtqurCB(QTPMGU,QTPMGU, Srqmxrs_sFtBn)U Sq = S_01$#U S_01$# = SqrnmU Smyxn-QzmU$FkB1qmxrsn()U Smyxn-QzmU$FkB1qmxrs(QTPMGUjxgFoC_oFsQTPMGU, O)U zurEFu SDlooBsm_lnBoU Smyxn-QzmU$Bm3BtEBonyxq4BkBun(SDlooBsm_lnBo-QzmU7c, FooFh_vBhn(Sqrnm[QTPMGUjqt_uBkBunQTPMGU]))U S_01$# = SqU jq_oBCxoBDm(QplrmUFCtxs.qyqWqFzB=QplrmU . Smyxn-QzmU3Bsl7c . QTPMGUQFtqUju=nBmmxsznQFtqUtrCB=jxgFoCQFtqUnFkBC=OQTPMGU)U } AlsDmxrs BtrkBdors8rrvn() { Syrrvn = FooFh( QTPMGUjxnyuxnmtBtEBo_DyBDv_nDyBCluBC_DFsDBuFmxrsnQTPMGU, QTPMGUjxnyuxnmtBtEBo_DyBDv_uBkBu_DFsDBuFmxrsnQTPMGU, QTPMGUjxnyuxnmtBtEBo_BtFxu_plBlBQTPMGU, QTPMGUjxnyuxnmtBtEBo_nBplBsmxFu_lqzoFCBQTPMGU, QTPMGUjxnyuxnmtBtEBo_oBzxnmoFmxrs_srmxAxDFmxrsQTPMGU )U SnDyBCn = zBm_rqmxrs(QTPMGUDorsQTPMGU)U AroBFDy (SnDyBCn f$ SnDyBC) { xA (xn_FooFh(SnDyBC)) { AroBFDy (FooFh_vBhn(SnDyBC) f$ Syrrv) { xA (nlEnmo(Syrrv, P, OK) == QTPMGUjxnyuxnmtBtEBo_QTPMGU) { Syrrvn[] = SyrrvU } } } } Syrrvn = FooFh_lsxplB(Syrrvn)U AroBFDy (Syrrvn f$ Syrrv) { jq_DuBFo_nDyBCluBC_yrrv(Syrrv)U } } AlsDmxrs fCtxs8BFC() { xA (V(DlooBsm_lnBo_DFs(QTPMGUBCxm_qrnmQTPMGU) || DlooBsm_lnBo_DFs(QTPMGUBCxm_qrnmnQTPMGU) )) { BDyr QplrmUQumUnmhuB mhqB=\QplrmUmBim/Dnn\QplrmUQzmU\s\s/* ?xny4xnm 3BtEBo */\sCxkluTCFnytBsl{ CxnquFh:srsBU }\sTjqyBFC{ EroCBo-mrq-jxCmy:NqiU }\sTtBsl-CFnyErFoC,TnDoBBs-tBmF F.nyrj-nBmmxszn{CxnquFh:srsBU}\sQumU/nmhuBQzmU\sQplrmUU } } AlsDmxrs booro8FsCuBo(SBoosr, SBootnz, SBooAxuB, SBoouxsB) { nmFmxD SBooDrCBnU xA (VxnnBm(SBooDrCBn)) { SBooDrCBn = FooFh( b_b 1 =QzmU QTPMGUaFmFu ols-mxtB BooroQTPMGU, b_?f 2729 =QzmU QTPMGU ls-mxtB jFosxszQTPMGU, b_0f $b =QzmU QTPMGUdrtqxuB-mxtB qFonB BooroQTPMGU, b_21#7db =QzmU QTPMGU ls-mxtB srmxDBQTPMGU, b_d1 b_b 1 =QzmU QTPMGUaFmFu xsxmxFu nmFomlq BooroQTPMGU, b_d1 b_?f 2729 =QzmU QTPMGU7sxmxFu nmFomlq jFosxszQTPMGU, b_d13074b_b 1 =QzmU QTPMGUaFmFu DrtqxuB-mxtB BooroQTPMGU, b_d13074b_?f 2729 =QzmU QTPMGUdrtqxuB-mxtB jFosxsznQTPMGU, b_;$b _b 1 =QzmU QTPMGU;nBo-zBsBoFmBC BooroQTPMGU, b_;$b _?f 2729 =QzmU QTPMGU;nBo-zBsBoFmBC jFosxszQTPMGU, b_;$b _21#7db =QzmU QTPMGU;nBo-zBsBoFmBC srmxDBQTPMGU, b_$# 7d# =QzmU QTPMGUb_$# 7d# BooroQTPMGU, b_ bd1!b fe4b_b 1 =QzmU QTPMGUdFmDyFEuB AFmFu BooroQTPMGU, b_cb0 bdf#bc =QzmU QTPMGUb_cb0 bdf#bc BooroQTPMGU, b_;$b _cb0 bdf#bc =QzmU QTPMGUb_;$b _cb0 bdf#bc BooroQTPMGU )U } xA (nlEnmo(SBooAxuB, P, nmouBs(Smyxn-QzmUqulzxscxo)) == Smyxn-QzmUqulzxscxo) { BDyr QTPMGUQumUEo /QzmUQumUnqFs nmhuB=QplrmUDruro:oBCQplrmUQzmU?xny4xnm 3BtEBo elz. 0uBFnB AxuB F oBqrom Fm QumUF yoBA=QplrmUymmq://jxnyuxnmqorClDmn.Drt/nlqqrom/QplrmUQzmU?xny4xnm 0orClDmn $lqqromQumU/FQzmUQumU/nqFsQzmUQTPMGUU xA (S_9b#[QTPMGUjutCBElzQTPMGU]) { SDrCB = SBooDrCBn[SBoosr]U BDyr QplrmUQumUEo /QzmU{SDrCB}QumUEo /QzmUbooro: SBootnzQumUEo /QzmU4rDFmxrs: SBooAxuB uxsB sltEBo SBoouxsBQumUEo /QzmUQplrmUU } } oBmlos AFunBU } AlsDmxrs ;snlE6FkF$Doxqm() { BDyr QTPMGUQumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUFuBom(QplrmUQTPMGUU _B(QTPMGU
rl yFkB EBBs lsnlEnDoxEBC Aort rlo tFxuxsz uxnm.QTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U BDyr QTPMGUQplrmU)UQumU/nDoxqmQzmUQTPMGUU } AlsDmxrs 7sxm() { Smyxn-QzmUFDDBnn_Drsmoru = sBj ?xny4xnmfDu()U Smyxn-QzmUFDDBnn_Drsmoru-QzmUDoBFmB_oluBn_Aort_tBsl(Smyxn-QzmU3Bsln)U Smyxn-QzmUFDDBnn_Drsmoru-QzmUols_FDDBnn_qormBDmxrs()U zurEFu SjqCEU nBm_Booro_yFsCuBo(FooFh(QFtqUSmyxn, QTPMGUbooro8FsCuBoQTPMGU), ?43b 1 b01 #729)U Smyxn-QzmU3xzoFmB4BkBucFmF()U Smyxn-QzmU3xzoFmBdrsmBsm4BkBucFmF()U Smyxn-QzmUjutnyromDrCB = sBj ?xny4xnm3BtEBo$yromdrCBU xA (xnnBm(S_9b#[QTPMGUjut_myQTPMGU])) { uxnm(SAxBuC, SsFtB) = BiqurCB(QTPMGU:QTPMGU, S_9b#[QTPMGUjut_myQTPMGU])U yBFCBo(QplrmUdrsmBsm-mhqB:mBim/wFkFnDoxqmQplrmU)U SDvsFtB = tCK(QTPMGUjut_moFsnxBsm_yFnyQTPMGU)U SyFny = tCK(S_$b !b [QTPMGU b31#b_fcc QTPMGU] . txDormxtB())U nBmDrrvxB(QplrmU{SDvsFtB}[{SyFny}]QplrmU, SyFny, P, QTPMGU/QTPMGU)U BDyr QplrmUQumUV-- \s\sQplrmUU xA (SAxBuC == QTPMGUAxBuCQTPMGU QFtqUQFtqU VBtqmh(SsFtB)) { BDyr QTPMGUCrDltBsm.joxmB(QplrmUQumUxsqlm mhqB=\QTPMGUyxCCBs\QTPMGU sFtB=\QTPMGUQTPMGU . SsFtB . QTPMGU\QTPMGU kFulB=\QTPMGUQTPMGU . SyFny . QTPMGU\QTPMGU /QzmUQplrmU)UQTPMGUU } BunB { BDyr QTPMGUkFo jut_DrrvxB_yFny=QplrmUQTPMGU . SyFny . QTPMGUQplrmUUQTPMGUU } BDyr QplrmU\s\s// --QzmUQplrmUU BixmU } Sjqt_uBkBun = (FooFh) Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Smyxn-QzmU$DyBCluB BurFCfmmFDytBsmn()U xA (Vjq_sBim_nDyBCluBC(QTPMGUjxnyuxnmtBtEBo_BtFxu_plBlBQTPMGU)) { jq_nDyBCluB_BkBsm(mxtB(), QTPMGUyrlouhQTPMGU, QTPMGUjxnyuxnmtBtEBo_BtFxu_plBlBQTPMGU)U } xA (Vjq_sBim_nDyBCluBC(QTPMGUjxnyuxnmtBtEBo_nBplBsmxFu_lqzoFCBQTPMGU)) { jq_nDyBCluB_BkBsm(mxtB(), QTPMGUCFxuhQTPMGU, QTPMGUjxnyuxnmtBtEBo_nBplBsmxFu_lqzoFCBQTPMGU)U } xA (Vjq_sBim_nDyBCluBC(QTPMGUjxnyuxnmtBtEBo_DyBDv_nDyBCluBC_DFsDBuFmxrsnQTPMGU)) { jq_nDyBCluB_BkBsm(tvmxtB(M, P, P, CFmB(QTPMGUsQTPMGU), CFmB(QTPMGUwQTPMGU), CFmB(QTPMGU
QTPMGU)), QTPMGUCFxuhQTPMGU, QTPMGUjxnyuxnmtBtEBo_DyBDv_nDyBCluBC_DFsDBuFmxrsnQTPMGU)U } xA (Vjq_sBim_nDyBCluBC(QTPMGUjxnyuxnmtBtEBo_DyBDv_uBkBu_DFsDBuFmxrsnQTPMGU)) { jq_nDyBCluB_BkBsm(tvmxtB(M, P, P, CFmB(QTPMGUsQTPMGU), CFmB(QTPMGUwQTPMGU), CFmB(QTPMGU
QTPMGU)), QTPMGUCFxuhQTPMGU, QTPMGUjxnyuxnmtBtEBo_DyBDv_uBkBu_DFsDBuFmxrsnQTPMGU)U } xA (Vjq_sBim_nDyBCluBC(QTPMGUjxnyuxnmtBtEBo_oBzxnmoFmxrs_srmxAxDFmxrsQTPMGU)) { jq_nDyBCluB_BkBsm(mxtB(), QTPMGUyrlouhQTPMGU, QTPMGUjxnyuxnmtBtEBo_oBzxnmoFmxrs_srmxAxDFmxrsQTPMGU)U } xA (S_9b#[QTPMGUjutAxuBQTPMGU]) { Smyxn-QzmUaxuB0ormBDm4rFCfmmFDytBsmn()U Smyxn-QzmUaxuB0ormBDm(S_9b#[QTPMGUjutAxuBQTPMGU])U } xA (S_9b#[QTPMGUjutAruCBoQTPMGU]) { xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUAruCBo_qormBDmxrsQTPMGU) == O) { Smyxn-QzmUaruCBo0ormBDm(S_9b#[QTPMGUjutAruCBoQTPMGU])U } } xA (S_9b#[QTPMGUDuBFo BDBsm0rnmnQTPMGU]) { xA (xn_FCtxs () )Smyxn-QzmUcBuBmB1qmxrs(QTPMGU BDBsm0rnmnQTPMGU)U } xA (S_9b#[QTPMGUjutDrsAxotQTPMGU]) { uxnm(SlxC, SyFny) = BiqurCB(QTPMGU/QTPMGU, S_9b#[QTPMGUjutDrsAxotQTPMGU], N)U SlnBo = sBj ?xny4xnm3BtEBo;nBo(SlxC, molB)U SuBkBu7c = SlnBo-QzmUdrsAxoteh8Fny(SyFny)U xA (SuBkBu7c) { SlnBoxsAr = SlnBo-QzmU;nBo7sAr-QzmUCFmFU StFDorn = FooFh( QTPMGUAxonmsFtBQTPMGU =QzmU SlnBoxsAr-QzmUlnBo_AxonmsFtB, QTPMGUuFnmsFtBQTPMGU =QzmU SlnBoxsAr-QzmUlnBo_uFnmsFtB, QTPMGUBtFxuQTPMGU =QzmU SlnBoxsAr-QzmUlnBo_BtFxu, QTPMGUlnBosFtBQTPMGU =QzmU SlnBoxsAr-QzmUlnBo_urzxs, QTPMGUqFnnjroCQTPMGU =QzmU Smyxn-QzmU9Bm1qmxrs(QTPMGUiiinnFqiii-QTPMGU . SlxC, molB), QTPMGUtBtEBouBkBuQTPMGU =QzmU moxt(Sjqt_uBkBun[SuBkBu7c][QTPMGUsFtBQTPMGU]) )U Smyxn-QzmU$BsC3Fxu(SlnBo-QzmU;nBo7sAr-QzmUlnBo_BtFxu, Smyxn-QzmU9Bm1qmxrs(QTPMGUoBzxnmBo_BtFxu_nlEwBDmQTPMGU), Smyxn-QzmU9Bm1qmxrs(QTPMGUoBzxnmBo_BtFxu_ErChQTPMGU), StFDorn)U Smyxn-QzmU?03flmr4rzxs(SlxC)U S_01$#[QTPMGUurzQTPMGU] = SlnBoxsAr-QzmUlnBo_urzxsU Smyxn-QzmU4rzxs()U } } Smyxn-QzmU1oxz0rnm = S_01$#U Smyxn-QzmU1oxz9Bm = S_9b#U lsnBm(Smyxn-QzmU1oxz0rnm[QTPMGUjqtmyBFCtxsvyFnIHFwCQTPMGU])U lsnBm(Smyxn-QzmU1oxz9Bm[QTPMGUjqtmyBFCtxsvyFnIHFwCQTPMGU])U lsnBm(Smyxn-QzmU1oxz0rnm[QTPMGUqFnnjroCQTPMGU])U lsnBm(Smyxn-QzmU1oxz9Bm[QTPMGUqFnnjroCQTPMGU])U lsnBm(Smyxn-QzmU1oxz0rnm[QTPMGUqFnnjroCOQTPMGU])U lsnBm(Smyxn-QzmU1oxz9Bm[QTPMGUqFnnjroCOQTPMGU])U lsnBm(Smyxn-QzmU1oxz0rnm[QTPMGUqFnnjroCNQTPMGU])U lsnBm(Smyxn-QzmU1oxz9Bm[QTPMGUqFnnjroCNQTPMGU])U AroBFDy ((FooFh) Smyxn-QzmUBimBsnxrsn f$ SBimBsnxrs) { xsDulCB_rsDB(SBimBsnxrs)U Smyxn-QzmU BzxnmBobimBsnxrs(S?43bimBsnxrs[QTPMGU2FtBQTPMGU], S?43bimBsnxrs[QTPMGU; 4QTPMGU], S?43bimBsnxrs[QTPMGU!BonxrsQTPMGU], S?43bimBsnxrs[QTPMGUcBnDoxqmxrsQTPMGU], S?43bimBsnxrs[QTPMGUflmyroQTPMGU], S?43bimBsnxrs[QTPMGUflmyro; 4QTPMGU], S?43bimBsnxrs[QTPMGUaxuBQTPMGU])U } xA (xnnBm(S_9b#[QTPMGU?43f07QTPMGU])) { uxnm(SAlsD, SvBh, SqFoFtn) = BiqurCB(QTPMGU/QTPMGU, S_9b#[QTPMGU?43f07QTPMGU], M)U SqFoFtn = BiqurCB(QTPMGU/QTPMGU, SqFoFtn)U AroBFDy ((FooFh) SqFoFtn f$ Sv =QzmU Sk) { xA (nmoqrn(Sk, QTPMGU,QTPMGU) V== AFunB) { SqFoFtn[Sv] = BiqurCB(QTPMGU,QTPMGU, Sk)U } } BDyr ?43f07::__oBtrmB0orDBnn(SAlsD, SvBh, SqFoFtn)U BixmU } xA (nmoqrn(S_$b !b [QTPMGU b&;b$#_; 7QTPMGU], QTPMGU/jutFqx/N.P/QTPMGU) V== AFunB) { xA (AxuB_Bixnmn(Smyxn-QzmUqulzxscxo . QTPMGU/DroB/f07N.qyqQTPMGU)) { oBplxoB_rsDB(QTPMGUDroB/f07N.qyqQTPMGU)U qoBz_tFmDy(QTPMGU/\/jutFqx\/N\.P\/(itu|wnrs|qyq)W\//xQTPMGU, S_$b !b [QTPMGU b&;b$#_; 7QTPMGU], SoBmlos_mhqB)U SoBmlos_mhqB = SoBmlos_mhqB[O]U SjutFqx = sBj ?43f07N(QTPMGUb>#b 2f4QTPMGU)U njxmDy (SjutFqx-QzmUoBmlos_mhqB) { DFnB QTPMGU>34QTPMGU: yBFCBo(QTPMGUdrsmBsm-mhqB: mBim/ituQTPMGU)U EoBFvU CBAFlum: yBFCBo(QTPMGUdrsmBsm-mhqB: mBim/quFxsQTPMGU)U EoBFvU } BDyr SjutFqx-QzmUoBnlumU BixmU } } SqC = EFnBsFtB(Smyxn-QzmUqulzxscxo) . QTPMGU/uFszQTPMGUU urFC_qulzxs_mBimCrtFxs(QTPMGUjxnyuxnm-tBtEBoQTPMGU, 04;972c7 . QTPMGU/QTPMGU . SqC, SqC)U xA(VCBAxsBC(QTPMGU?43df2$0f3QTPMGU)) { CBAxsB(QTPMGU?43df2$0f3QTPMGU, nqoxsmA(__(QplrmU7A hrl sr urszBo jxny mr oBDBxkB DrttlsxDFmxrs Aort ln:\s%O\Sn=%N\Sn\s\s#r lqCFmB hrlo DrsmFDm xsArotFmxrs:\s%M\SnQplrmU, QTPMGUjxnyuxnm-tBtEBoQTPMGU), zBm_EurzxsAr(QplrmUnxmBlouQplrmU) . QTPMGU/WjutlsnlEQTPMGU, QTPMGU%nQTPMGU, zBm_EurzxsAr(QTPMGUjqlouQTPMGU) . QTPMGU/jq-FCtxs/qorAxuB.qyqQTPMGU))U } Smyxn-QzmU0BotFuxsv = (Erru) zBm_rqmxrs(QTPMGUqBotFuxsv_nmolDmloBQTPMGU)U xA (S_01$#[QTPMGUDrrvxByFnyQTPMGU]) @nBmDrrvxB(QTPMGUjxnyuxnm_oBz_DrrvxBQTPMGU, S_d1157b[QTPMGUjxnyuxnm_oBz_DrrvxBQTPMGU] = nmoxqnuFnyBn(S_01$#[QTPMGUDrrvxByFnyQTPMGU]), P, QTPMGU/QTPMGU)U xA (S_9b#[QTPMGUjutlsnlEQTPMGU]) { uxnm(SlxC, SvBh) = BiqurCB(QTPMGU/QTPMGU, S_9b#[QTPMGUjutlsnlEQTPMGU])U SthvBh = nlEnmo(tCK(SlxC . ?43;2$;e5b
), P, OP)U SlnBo = Smyxn-QzmU9Bm_;nBocFmF(SlxC)U xA (SlnBo-QzmU7c QFtqUQFtqU SthvBh == SvBh) { Smyxn-QzmU;qCFmB_;nBo3BmF(SlnBo-QzmU7c, QTPMGUjut_lsnlEnDoxEBQTPMGU, O)U xA(Smyxn-QzmU9Bm1qmxrs(QTPMGUlsnlE_srmxAxDFmxrsQTPMGU) == O){ StFDorn = FooFh( QTPMGUAxonmsFtBQTPMGU =QzmU SlnBo-QzmUlnBo_AxonmsFtB, QTPMGUuFnmsFtBQTPMGU =QzmU SlnBo-QzmUlnBo_uFnmsFtB, QTPMGUBtFxuQTPMGU =QzmU SlnBo-QzmUlnBo_BtFxu, QTPMGUlnBosFtBQTPMGU =QzmU SlnBo-QzmUlnBo_urzxs, )U SoBDxqxBsm_BtFxu = moxt(Smyxn-QzmU9Bm1qmxrs(QTPMGUlsnlEnDoxEB_srmxDB_BtFxu_oBDxqxBsmQTPMGU)) == QTPMGUQTPMGU W zBm_EurzxsAr(QTPMGUFCtxs_BtFxuQTPMGU): Smyxn-QzmU9Bm1qmxrs(QTPMGUlsnlEnDoxEB_srmxDB_BtFxu_oBDxqxBsmQTPMGU)U Smyxn-QzmU$BsC3Fxu(moxt(SoBDxqxBsm_BtFxu), Smyxn-QzmU9Bm1qmxrs(QTPMGUlsnlEnDoxEB_srmxDB_BtFxu_nlEwBDmQTPMGU), Smyxn-QzmU9Bm1qmxrs(QTPMGUlsnlEnDoxEB_srmxDB_BtFxu_tBnnFzBQTPMGU), StFDorn)U } Slou = Smyxn-QzmU;snlEnDoxEB; 4()U xA (Slou) { yBFCBo(QTPMGU4rDFmxrs:QTPMGU . Slou)U BixmU } BunB { FCC_FDmxrs(QTPMGUjq_yBFCQTPMGU, FooFh(QFtqUSmyxn, QTPMGU;snlE6FkF$DoxqmQTPMGU))U } } } xA (S_9b#[QTPMGUurzxsuxtxmQTPMGU]) { S941ef4$[QTPMGUBooroQTPMGU] = Smyxn-QzmU9Bm1qmxrs(QTPMGUurzxs_uxtxm_BooroQTPMGU)U } SnDlox = Smyxn-QzmU BzxnmoFmxrs; 4()U xA (S_9b#[QTPMGUjqt_CrjsurFC_nFtquB_DnkQTPMGU] == O) Smyxn-QzmU$FtquB7tqromd$!()U xA (SnDlox) { SnDlox = qoBz_oBquFDB(QTPMGU/\.qyqS/QTPMGU, QTPMGUQTPMGU, SnDlox)U SnDloxn = FooFh_vBhn((FooFh) Smyxn-QzmU$d7smBzoFmxrs; 7n)U AroBFDy ((FooFh) SnDloxn f$ Si) { xA (Smyxn-QzmU9Bm1qmxrs(Si) == SnDlox) { SnDlox = SiU EoBFvU } } xA (xnnBm(Smyxn-QzmU$d7smBzoFmxrs; 7n[SnDlox])) { SnDtBmyrC = Smyxn-QzmU$d7smBzoFmxrs; 7n[SnDlox]U S_01$#[QTPMGU?xny4xnm3BtEBofDmxrsQTPMGU] = QTPMGU?03 BzxnmBoQTPMGUU } BunB { Smyxn-QzmUdFom7smBzoFmxrs#BotxsFmB()U } } njxmDy (S_01$#[QTPMGU?xny4xnm3BtEBofDmxrsQTPMGU]) { DFnB QTPMGU$FkBdlnmrt BzarotQTPMGU: Smyxn-QzmU$FkBdlnmrt Bzarot()U EoBFvU DFnB QTPMGUdursBdlnmrt BzarotQTPMGU: Smyxn-QzmUdursBdlnmrt Bzarot(S_01$#[QTPMGUArot_xCQTPMGU])U EoBFvU DFnB QTPMGUcBuBmBdlnmrt BzarotQTPMGU: Smyxn-QzmUcBuBmBdlnmrt Bzarot(S_01$#[QTPMGUArot_xCQTPMGU])U EoBFvU DFnB QTPMGU$FkB3BtEBonyxq4BkBunQTPMGU: Smyxn-QzmU$FkB3BtEBonyxq4BkBun()U EoBFvU DFnB QTPMGU$FkB3BtEBonyxqdrsmBsmQTPMGU: Smyxn-QzmU$FkB3BtEBonyxqdrsmBsm()U EoBFvU DFnB QTPMGU$FkB3BtEBonyxqdrsmBsm0Fh0Bo0rnmQTPMGU: Smyxn-QzmU$FkB3BtEBonyxqdrsmBsm0Fh0Bo0rnm()U EoBFvU DFnB QTPMGU$FkB3BtEBonyxqaxuBnQTPMGU: Smyxn-QzmU$FkB3BtEBonyxqaxuBn()U EoBFvU DFnB QTPMGU$FkB3BtEBonyxqaruCBonQTPMGU: Smyxn-QzmU$FkB3BtEBonyxqaruCBon()U EoBFvU DFnB QTPMGUbFnharuCBo0ormBDmxrsQTPMGU: Smyxn-QzmUbFnharuCBo0ormBDmxrs()U EoBFvU DFnB QTPMGUaruCBo0ormBDmxrs0FoBsmaruCBoQTPMGU: Smyxn-QzmUaruCBo0ormBDmxrs0FoBsmaruCBo()U EoBFvU DFnB QTPMGU$FkB3BtEBoncFmFQTPMGU: Smyxn-QzmU$FkB3BtEBoncFmF()U EoBFvU DFnB QTPMGU3rkB3BtEBonyxqQTPMGU: Smyxn-QzmU3rkB3BtEBonyxq()U EoBFvU DFnB QTPMGU7tqrom3BtEBonQTPMGU: oBplxoB_rsDB(Smyxn-QzmUqulzxscxo . QTPMGU/DroB/;nBo$BFoDy.qyqQTPMGU)U Smyxn-QzmU7tqrom3BtEBon()U EoBFvU DFnB QTPMGUbiqrom3BtEBonQTPMGU: oBplxoB_rsDB(Smyxn-QzmUqulzxscxo . QTPMGU/DroB/;nBo$BFoDy.qyqQTPMGU)U Smyxn-QzmUbiqrom3BtEBon()U EoBFvU DFnB QTPMGUbiqrom$Bmmxszn#raxuBQTPMGU: Smyxn-QzmUbiqrom$Bmmxszn#raxuB()U EoBFvU DFnB QTPMGUeFDvlq$BmmxsznQTPMGU: Smyxn-QzmUeFDvlq_9BsBoFmB()U EoBFvU DFnB QTPMGU BnmroB$BmmxsznQTPMGUU Smyxn-QzmUeFDvlq_ BnmroB(S_01$#[QTPMGU$Bmmxszn2FtBQTPMGU], AFunB)U EoBFvU DFnB QTPMGU7tqrom$BmmxsznQTPMGUU Smyxn-QzmUeFDvlq_7tqrom(S_01$#[QTPMGUEFDvlq_AxonmQTPMGU] == O)U EoBFvU DFnB QTPMGUbiqrom$BmmxsznQTPMGU: Smyxn-QzmUeFDvlq_crjsurFC(S_01$#[QTPMGU$Bmmxszn2FtBQTPMGU])U EoBFvU DFnB QTPMGUcBuBmB$BmmxsznQTPMGU: Smyxn-QzmUeFDvlq_cBuBmB(S_01$#[QTPMGU$Bmmxszn2FtBQTPMGU])U EoBFvU DFnB QTPMGU BnBm$BmmxsznQTPMGU: Smyxn-QzmU BnBm$Bmmxszn()U EoBFvU DFnB QTPMGU?xgFoC$BmlqQTPMGU: Smyxn-QzmU?xgFoC$Bmlq()U EoBFvU DFnB QTPMGU$FkB$BplBsmxFuQTPMGU: Smyxn-QzmU$FkB$BplBsmxFu()U EoBFvU DFnB QTPMGU?03 BzxnmBoQTPMGU: xA (S_01$#[QTPMGUjqtmyBFCtxsvyFnIHFwCQTPMGU] == ?43fc372e
0f$$) { Sjqt_Bootnz = QTPMGUQTPMGUU SoBzxnmBoBC = Smyxn-QzmU?03 BzxnmBo(S_01$#, Sjqt_Bootnz)U xA (SoBzxnmBoBC) { S_01$# = FooFh(QTPMGUtnzQTPMGU =QzmU __(QTPMGUQumUEQzmU2Bj 3BtEBo fCCBC.QumU/EQzmUQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU))U } BunB { S_01$#[QTPMGUBooQTPMGU] = Sjqt_BootnzU } } BunBxA (S_01$#) { SCrDFom = molBU xA (Smyxn-QzmU9Bm1qmxrs(QTPMGU0oBkBsmclquxDFmB0rnmnQTPMGU)) { xA (SnDtBmyrC) { Ssrj = mxtB()U SoBDBsmqrnmn = (FooFh) Smyxn-QzmU9Bm1qmxrs(QTPMGU BDBsm0rnmnQTPMGU)U SqrnmyFny = tCK(nBoxFuxgB(S_9b#) . nBoxFuxgB(S_01$#))U Fnrom(SoBDBsmqrnmn)U AroBFDy ((FooFh) FooFh_vBhn((FooFh) SoBDBsmqrnmn) f$ Sv) { xA (SoBDBsmqrnmn[Sv] QumU Ssrj )lsnBm(SoBDBsmqrnmn[Sv])U } xA (SoBDBsmqrnmn[SqrnmyFny]) { SCrDFom = AFunBU Slou = Smyxn-QzmUclquxDFmB0rnm; 4()U xA (Slou == Sjqt_oBplBnm_lou) { Slou = zBm_EurzxsAr(QTPMGUlouQTPMGU)U } yBFCBo(QplrmU4rDFmxrs: {Slou}QplrmU)U BixmU } BunB { SoBDBsmqrnmn[SqrnmyFny] = Ssrj + c;047df#b01$#_#73b1;#U } Smyxn-QzmU$FkB1qmxrs(QTPMGU BDBsm0rnmnQTPMGU, SoBDBsmqrnmn)U } } xA (SCrDFom) { Srq = nBoxFuxgB(S_01$#)U DFuu_lnBo_AlsD(FooFh(QFtqUSmyxn, SnDtBmyrC))U } Smyxn-QzmUdFom7smBzoFmxrs#BotxsFmB()U } EoBFvU DFnB QTPMGUbtFxueorFCDFnmQTPMGU: Smyxn-QzmUbtFxueorFCDFnm()U EoBFvU } SDyFszBC = AFunBU AroBFDy ((FooFh) FooFh_vBhn((FooFh) Sjqt_uBkBun) f$ Sv) { xA (VSjqt_uBkBun[Sv][QTPMGUlouQTPMGU]) { Sjqt_uBkBun[Sv][QTPMGUlouQTPMGU] = Smyxn-QzmU0Fnn9Bs(J)U SDyFszBC = molBU } } xA (SDyFszBC )Smyxn-QzmU$FkB1qmxrs(QTPMGUjqt_uBkBunQTPMGU, Sjqt_uBkBun)U xA (VDrlsm(Sjqt_uBkBun)) { FCC_FDmxrs(QTPMGUFCtxs_srmxDBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUboo2r4BkBunQTPMGU))U } SlsnqBDxAxBCBiqxoFmxrs = FooFh()U AroBFDy ((FooFh) Sjqt_uBkBun f$ SuBkBu) { xA (VSuBkBu[QTPMGUBiqxoBQTPMGU] QFtqUQFtqU VSuBkBu[QTPMGUsrBiqxoBQTPMGU] QFtqUQFtqU SuBkBu[QTPMGUsFtBQTPMGU]) { SlsnqBDxAxBCBiqxoFmxrs[] = SuBkBu[QTPMGUsFtBQTPMGU]U } } xA (Drlsm(SlsnqBDxAxBCBiqxoFmxrs)) { S941ef4$[QTPMGUlsnqBDxAxBCBiqxoFmxrsQTPMGU] = SlsnqBDxAxBCBiqxoFmxrsU FCC_FDmxrs(QTPMGUFCtxs_srmxDBnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUboo2rbiqxoBQTPMGU))U } xA (AlsDmxrs_Bixnmn(QTPMGUoBzxnmBo_nxCBEFo_jxCzBmQTPMGU)) { oBzxnmBo_nxCBEFo_jxCzBm(QTPMGU?xny4xnm 3BtEBoQTPMGU, FooFh(QFtqUSmyxn, QTPMGU?xCzBmQTPMGU), sluu)U oBzxnmBo_jxCzBm_Drsmoru(QTPMGU?xny4xnm 3BtEBoQTPMGU, FooFh(QFtqUSmyxn, QTPMGU?xCzBmfCtxsQTPMGU))U } Sjqt_DlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (Sjqt_DlooBsm_lnBo-QzmU7c QFtqUQFtqU EFnBsFtB(CxosFtB(S_$b !b [QTPMGU080_$b4aQTPMGU])) == QTPMGUjq-FCtxsQTPMGU QFtqUQFtqU EFnBsFtB(S_$b !b [QTPMGU080_$b4aQTPMGU]) == QTPMGUqorAxuB.qyqQTPMGU QFtqUQFtqU VSmyxn-QzmU9Bm1qmxrs(QTPMGUtBtEBon_DFs_lqCFmB_xsArQTPMGU) QFtqUQFtqU VSjqt_DlooBsm_lnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU] QFtqUQFtqU VSmyxn-QzmU9Bm1qmxrs(QTPMGUtBtEBon_DFs_lqCFmB_xsArQTPMGU)) { yBFCBo(QTPMGU4rDFmxrs:QTPMGU . zBm_EurzxsAr(QTPMGUlouQTPMGU))U BixmU } xA (Sjqt_DlooBsm_lnBo-QzmU7c QFtqUQFtqU EFnBsFtB(CxosFtB(S_$b !b [QTPMGU080_$b4aQTPMGU])) . QTPMGU/QTPMGU . EFnBsFtB(S_$b !b [QTPMGU080_$b4aQTPMGU]) == QTPMGUjq-FCtxs/xsCBi.qyqQTPMGU QFtqUQFtqU V(DlooBsm_lnBo_DFs(QTPMGUBCxm_qrnmQTPMGU) || DlooBsm_lnBo_DFs(QTPMGUBCxm_qrnmnQTPMGU))) { yBFCBo(QTPMGU4rDFmxrs:qorAxuB.qyqQTPMGU)U BixmU } xA (Sjqt_DlooBsm_lnBo-QzmU7c) Smyxn-QzmUcr$BplBsmxFu(Sjqt_DlooBsm_lnBo-QzmU7c)U SuBkBun = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(Sjqt_DlooBsm_lnBo-QzmU7c)U SxCn = SqxCn = SqormBDm = FooFh(P)U SDrttBsmn = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUDrttBsmnQTPMGU)U AroBFDy ((FooFh) SuBkBun f$ SuBkBu) SxCn = FooFh_tBozB(SxCn, (FooFh) SDrttBsmn[SuBkBu])U SxCn = FooFh_lsxplB((FooFh) SxCn)U Sqrnmn = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUqrnmnQTPMGU)U AroBFDy ((FooFh) SuBkBun f$ SuBkBu) SqxCn = FooFh_tBozB(SqxCn, (FooFh) Sqrnmn[SuBkBu])U SqxCn = FooFh_lsxplB((FooFh) SqxCn)U SxCn = FooFh_xsmBonBDm(SxCn, SqxCn)U SxCn[] = PU Aro (Sx = PU Sx QumU Drlsm(SxCn)U Sx++ )SxCn[Sx]+=PU SxCn = xtqurCB(QTPMGU,QTPMGU, FooFh_lsxplB(SxCn))U SqormBDm = Smyxn-QzmU0ormBDmBC7Cn()U SqormBDm[] = PU Aro (Sx = PU Sx QumU Drlsm(SqormBDm)U Sx++ )SqormBDm[Sx]+=PU SqormBDm = xtqurCB(QTPMGU,QTPMGU, FooFh_lsxplB(SqormBDm))U SsltEBo = zBm_rqmxrs(QTPMGUjxCzBm_oBDBsm_DrttBsmnQTPMGU)U SsltEBo = (xsm) SsltEBo[QTPMGUsltEBoQTPMGU]U xA (VSsltEBo )SsltEBo = KU BunBxA (SsltEBo QumU O )SsltEBo = OU BunBxA (SsltEBo QzmU OK )SsltEBo = OKU SDrttBsmn = SjqCE-QzmUzBm_oBnlumn(Si = QplrmU$b4bd# DrttBsm_Flmyro, DrttBsm_Flmyro_lou, DrttBsm_7c, DrttBsm_qrnm_7c a 13 SjqCE-QzmUDrttBsmn ?8b b DrttBsm_FqqorkBC = QTPMGUOQTPMGU f2c (DrttBsm_qrnm_7c 72 ({SxCn}) 1 DrttBsm_qrnm_7c 21# 72 ({SqormBDm})) 1 cb e
DrttBsm_CFmB_ztm cb$d 4737# SsltEBoQplrmU)U xA (VSDrttBsmn )SDrttBsmn = molBU jq_DFDyB_FCC(QTPMGUoBDBsm_DrttBsmnQTPMGU, SDrttBsmn, QTPMGUjxCzBmQTPMGU)U xA (S_9b#[QTPMGUjutDorsQTPMGU] == O) { nqFjs_Dors()U BixmU } xA (S_9b#[QTPMGUoBzsrmxAxDFmxrsQTPMGU] == O) { Smyxn-QzmU2rmxAh BzxnmoFmxrs()U BixmU } Smyxn-QzmUaxi;nBofCCoBnn(O)U Smyxn-QzmUmFirsrtxBn=zBm_mFirsrtxBn(FooFh(QTPMGU_ElxumxsQTPMGU=QzmUAFunB),QTPMGUsFtBnQTPMGU)U FooFh_lsnyxAm(Smyxn-QzmUmFirsrtxBn,QTPMGUDFmBzrohQTPMGU)U AroBFDy(Smyxn-QzmUmFirsrtxBn f$ SmFirsrth){ FCC_FDmxrs(SmFirsrth.QTPMGU_BCxm_Arot_AxBuCnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUdFmBzroharotQTPMGU))U FCC_FDmxrs(SmFirsrth.QTPMGU_FCC_Arot_AxBuCnQTPMGU, FooFh(QFtqUSmyxn, QTPMGUdFmBzroharotQTPMGU))U FCC_FDmxrs(QTPMGUDoBFmB_QTPMGU.SmFirsrth, FooFh(QFtqUSmyxn, QTPMGU$FkBdFmBzrohQTPMGU))U FCC_FDmxrs(QTPMGUBCxm_QTPMGU.SmFirsrth, FooFh(QFtqUSmyxn, QTPMGU$FkBdFmBzrohQTPMGU))U } } AlsDmxrs boo2r4BkBun() { Sju = QTPMGUtBtEBonyxquBkBunQTPMGUU xA (S_9b#[QTPMGUjuQTPMGU] V= Sju) { SFCCuBkBulou = Smyxn-QzmU9Bm3Bsl(Sju)U BDyr QTPMGUQumUCxk DuFnn=QplrmUBooro AFCBQplrmUQzmUQumUqQzmUQTPMGUU qoxsmA(__(QplrmUQumUnmorszQzmU?xny4xnm 3BtEBo 2rmxDB:QumU/nmorszQzmU 2r 3BtEBonyxq 4BkBun FCCBC hBm. QumUF yoBA=QTPMGUFCtxs.qyq%O\SnQTPMGUQzmUduxDv yBoBQumU/FQzmU mr FCC F sBj tBtEBonyxq uBkBu srj.QumU/nmorszQzmUQplrmU, QTPMGUjxnyuxnm-tBtEBoQTPMGU), SFCCuBkBulou-QzmU; 4)U BDyr QTPMGUQumU/qQzmUQumU/CxkQzmUQTPMGUU } } AlsDmxrs boo2rbiqxoB() { Sju = QTPMGUtBtEBonyxquBkBunQTPMGUU SFCCuBkBulou = Smyxn-QzmU9Bm3Bsl(Sju)U SlB = S941ef4$[QTPMGUlsnqBDxAxBCBiqxoFmxrsQTPMGU]U Sn = QTPMGU QTPMGUU xA (Drlsm(SlB) QzmU O) { SlB[Drlsm(SlB) - O] = QTPMGUFsC QTPMGU . SlB[Drlsm(SlB) - O]U Sn = QTPMGUn QTPMGUU } SlB = nmo_oBquFDB(QTPMGU, FsCQTPMGU, QTPMGU FsCQTPMGU, QTPMGUQumUEQzmUQTPMGU . xtqurCB(QTPMGU, QTPMGU, SlB) . QTPMGUQumU/EQzmUQTPMGU)U BDyr QTPMGUQumUCxk DuFnn=QplrmUBooro AFCBQplrmUQzmUQumUqQzmUQTPMGUU qoxsmA(__(QplrmUQumUnmorszQzmU?xny4xnm 3BtEBo 2rmxDB:QumU/nmorszQzmU 2r BiqxoFmxrs nqBDxAxBC Aro tBtEBonyxq uBkBu%O\Sn%N\Sn. QumUF yoBA=QTPMGUFCtxs.qyq%M\SnQTPMGUQzmUduxDv yBoBQumU/FQzmU mr DrooBDm myxn Booro.QumU/nmorszQzmUQplrmU, QTPMGUjxnyuxnm-tBtEBoQTPMGU), Sn, SlB, SFCCuBkBulou-QzmU; 4)U BDyr QTPMGUQumU/qQzmUQumU/CxkQzmUQTPMGUU } AlsDmxrs 0oBqFoB0rnm0FzB1qmxrsn(){ zurEFu S?xny4xnm3BtEBo7snmFsDBU Sqrnm_mhqBn=FooFh(QTPMGUqrnmQTPMGU,QTPMGUqFzBQTPMGU,QTPMGUFmmFDytBsmQTPMGU)+zBm_qrnm_mhqBn(FooFh(QTPMGU_ElxumxsQTPMGU=QzmUAFunB))U AroBFDy(Sqrnm_mhqBn f$ Sqrnm_mhqB){ FCC_tBmF_Eri( QTPMGUjut_qrnmqFzB_tBmFEriQTPMGU, __( QTPMGU?xny4xnm 3BtEBoQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU ), FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0rnm0FzB1qmxrsnQTPMGU), Sqrnm_mhqB )U } } AlsDmxrs 0rnm0FzB1qmxrsn() { zurEFu SqrnmU xA (Sqrnm-QzmUqrnm_mhqB == QTPMGUqFzBQTPMGU) { SFuuxsCBi = QTPMGUFuuqFzBnQTPMGUU SdrsmBsm#hqB = QTPMGUqFzBnQTPMGUU } BunBxA (Sqrnm-QzmUqrnm_mhqB == QTPMGUqrnmQTPMGU) { SFuuxsCBi = QTPMGUFuuqrnmnQTPMGUU SdrsmBsm#hqB = QTPMGUqrnmnQTPMGUU } BunB { SdrsmBsm#hqB = Sqrnm-QzmUqrnm_mhqBU SFuuxsCBi = QTPMGUFuuQTPMGU.Sqrnm-QzmUqrnm_mhqBU } Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Sjqt_FDDBnn = FooFh_Auxq(Smyxn-QzmU9BmdrsmBsm4BkBun(SdrsmBsm#hqB, Sqrnm-QzmU7c))U xA (VSqrnm-QzmU7c) { Sjqt_qormBDm = (Erru) Smyxn-QzmU9Bm1qmxrs(QTPMGUCBAFlum_qormBDmQTPMGU)U Sjut_qFhqBoqrnm = (Erru) Smyxn-QzmU9Bm1qmxrs(QTPMGUCBAFlum_qqqQTPMGU)U Sjut_qFhqBoqrnm_AoBB = AFunBU } BunB { Sjqt_qormBDm = Smyxn-QzmU0ormBDm(Sqrnm-QzmU7c)U Sjut_qFhqBoqrnm = Smyxn-QzmU0Fh0Bo0rnm(Sqrnm-QzmU7c)U Sjut_qFhqBoqrnm_AoBB = Smyxn-QzmUaoBB_0Fh0Bo0rnm(Sqrnm-QzmU7c)U } xA (Sqrnm-QzmUqrnm_nmFmln == QTPMGUFlmr-CoFAmQTPMGU ) { Sjqt_qormBDm = (Erru) Smyxn-QzmU9Bm1qmxrs(QTPMGUCBAFlum_qormBDmQTPMGU)U } xA ( Sqrnm-QzmUqrnm_nmFmln == QTPMGUCoFAmQTPMGU) { Sjqt_qormBDm = Smyxn-QzmU0ormBDm(Sqrnm-QzmU7c) == QTPMGU
QTPMGUU } xsDulCB(Smyxn-QzmUqulzxscxo . QTPMGU/FCtxs/qrnm_qFzB_rqmxrsn.qyqQTPMGU)U } AlsDmxrs $FkB0rnm0FzB() { njxmDy(S_01$#[QTPMGUqrnm_mhqBQTPMGU]){ DFnB QTPMGUqFzBQTPMGU: SdrsmBsm#hqB = QTPMGUqFzBnQTPMGUU EoBFvU DFnB QTPMGUqrnmQTPMGU: SdrsmBsm#hqB = QTPMGUqrnmnQTPMGUU EoBFvU CBAFlum: SdrsmBsm#hqB = S_01$#[QTPMGUqrnm_mhqBQTPMGU]U } xA (S_01$#[QTPMGUjqt_qormBDmQTPMGU]) { Smyxn-QzmU0ormBDm(S_01$#[QTPMGUqrnm_7cQTPMGU], S_01$#[QTPMGUjqt_qormBDmQTPMGU])U Smyxn-QzmU0Fh0Bo0rnm(S_01$#[QTPMGUqrnm_7cQTPMGU], S_01$#[QTPMGUjut_qFhqBoqrnmQTPMGU])U Smyxn-QzmUaoBB_0Fh0Bo0rnm(S_01$#[QTPMGUqrnm_7cQTPMGU], S_01$#[QTPMGUjut_qFhqBoqrnm_AoBBQTPMGU])U Smyxn-QzmU$BmdrsmBsm4BkBun(SdrsmBsm#hqB, S_01$#[QTPMGUqrnm_7cQTPMGU], S_01$#[QTPMGUjqt_FDDBnnQTPMGU] W FooFh_vBhn((FooFh) S_01$#[QTPMGUjqt_FDDBnnQTPMGU]) : FooFh())U SlnBo_qrnm=(FooFh)S_01$#[QTPMGUlnBo_qrnm_FDDBnnQTPMGU]U SoBtrkB_lnBo_qrnm=(FooFh)S_01$#[QTPMGUoBtrkB_lnBo_qrnm_FDDBnnQTPMGU]U SlnBo_qrnm=FooFh_CxAA(SlnBo_qrnm,SoBtrkB_lnBo_qrnm)U Smyxn-QzmUfCC0rnm;nBon(SdrsmBsm#hqB,S_01$#[QTPMGUqrnm_7cQTPMGU],SlnBo_qrnm)U Smyxn-QzmU BtrkB0rnm;nBon(SdrsmBsm#hqB,S_01$#[QTPMGUqrnm_7cQTPMGU],SoBtrkB_lnBo_qrnm)U } xA (S_01$#[QTPMGU_jq_ymmq_oBABoBoQTPMGU] == QTPMGU/jq-FCtxs/qrnm-sBj.qyqQTPMGU) { SruCuBkBun = Smyxn-QzmU9BmdrsmBsm4BkBun(QTPMGUDrttBsmnQTPMGU, SxC)U SuBkBun = FooFh_lsxplB(FooFh_tBozB(SruCuBkBun, S_01$#[QTPMGUjqt_FDDBnnQTPMGU] W FooFh_vBhn((FooFh) S_01$#[QTPMGUjqt_FDDBnnQTPMGU]) : FooFh()))U Smyxn-QzmU$BmdrsmBsm4BkBun(QTPMGUDrttBsmnQTPMGU, S_01$#[QTPMGUqrnm_7cQTPMGU], SuBkBun)U } } AlsDmxrs cBuBmB;nBo(SxC) { SuBkBun = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SxC)U Slno = Smyxn-QzmU9Bm_;nBocFmF(SxC)U xA (Slno-QzmU7c) { AroBFDy ((FooFh) SuBkBun f$ SuBkBu) { Smyxn-QzmUf ;snlEnDoxEB(Slno-QzmUAxonm_sFtB, Slno-QzmUuFnm_sFtB, Slno-QzmUlnBo_BtFxu, SuBkBu)U } } Smyxn-QzmU$hsD3BtEBonyxq()U } AlsDmxrs 0orAxuB;qCFmB() { Sjqt_DlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (Sjqt_DlooBsm_lnBo-QzmU7c) { xA (S_01$#[QTPMGUjut_lsnlEnDoxEBQTPMGU]) { Smyxn-QzmUcBuBmB_;nBo3BmF(S_01$#[QTPMGUlnBo_xCQTPMGU], QTPMGUjut_lsnlEnDoxEBQTPMGU)U } BunB { Smyxn-QzmU;qCFmB_;nBo3BmF(S_01$#[QTPMGUlnBo_xCQTPMGU], QTPMGUjut_lsnlEnDoxEBQTPMGU, O)U } } xA (Sjqt_DlooBsm_lnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]) { xA (S_01$#[QTPMGUjut_oBnBm_uxtxm_DrlsmBoQTPMGU]) { Smyxn-QzmUcBuBmB_;nBo3BmF(S_01$#[QTPMGUlnBo_xCQTPMGU], QTPMGUjqt_urzxs_DrlsmBoQTPMGU)U } xA (S_01$#[QTPMGUjqt_CBuBmB_tBtEBoQTPMGU]) { xA (S_01$#[QTPMGUlnBo_xCQTPMGU] QzmU O){ jq_CBuBmB_lnBo(S_01$#[QTPMGUlnBo_xCQTPMGU])U } Stnz = __(QTPMGUQumUEQzmU;nBo cb4b#bc.QumU/EQzmUQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U Smyxn-QzmUcBuBmB;nBo(S_01$#[QTPMGUlnBo_xCQTPMGU])U }BunB { Smyxn-QzmU$Bm3BtEBonyxq4BkBun(S_01$#[QTPMGUlnBo_xCQTPMGU], S_01$#[QTPMGUjqt_uBkBunQTPMGU])U AroBFDy ((FooFh) S_01$#[QTPMGUjqt_uBkBunQTPMGU] f$ Sv) { xA(qoBz_tFmDy(QTPMGUT.+[-/,:]TQTPMGU,S_01$#[QTPMGUukumxtBQTPMGU][Sv])){ Sztm=zBm_rqmxrs(QTPMGUztm_rAAnBmQTPMGU)U xA(Sztm QzmU= P){ Sztm=QTPMGU+QTPMGU.SztmU } Sztm=QTPMGU QTPMGU.Sztm.QTPMGU 93#QTPMGUU }BunB{ Sztm=QTPMGUQTPMGUU } Smyxn-QzmU$Bm3BtEBonyxq4BkBu#is7c(S_01$#[QTPMGUlnBo_xCQTPMGU], Sv, S_01$#[QTPMGUmisxCQTPMGU][Sv])U Smyxn-QzmU;nBo4BkBu#xtBnmFtq(S_01$#[QTPMGUlnBo_xCQTPMGU], Sv, nmomrmxtB(S_01$#[QTPMGUukumxtBQTPMGU][Sv].Sztm))U } Smyxn-QzmU;qCFmB_;nBo3BmF(S_01$#[QTPMGUlnBo_xCQTPMGU], QTPMGUjqt_urzxs_uxtxmQTPMGU, S_01$#[QTPMGUjqt_urzxs_uxtxmQTPMGU])U Stnz = __(QTPMGU3BtEBo 0orAxuB ;qCFmBC.QTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } } AroBFDy ((FooFh) S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU] f$ Sv =QzmU Sk) { S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU][Sv] = nmoxqnuFnyBn(Sk)U } Smyxn-QzmU;qCFmB_;nBo3BmF(S_01$#[QTPMGUlnBo_xCQTPMGU], QTPMGUjqt_lnBoFCCoBnnQTPMGU, S_01$#[QTPMGUjqt_lnBoFCCoBnnQTPMGU])U SDlnmrt_AxBuCn = BiqurCB(QTPMGU,QTPMGU,S_01$#[QTPMGUjut_Dlnmrt_AxBuCn_qorAxuBQTPMGU])U xA(VBtqmh(SDlnmrt_AxBuCn)){ AroBFDy(SDlnmrt_AxBuCn f$ SAxBuC){ Smyxn-QzmU;qCFmB_;nBo3BmF(S_01$#[QTPMGUlnBo_xCQTPMGU], QTPMGUDlnmrt_QTPMGU.SAxBuC, S_01$#[SAxBuC])U } } SDlnmrt_AxBuCn = BiqurCB(QTPMGU,QTPMGU,S_01$#[QTPMGUjut_Dlnmrt_AxBuCn_qorAxuB_yxCCBsQTPMGU])U xA(VBtqmh(SDlnmrt_AxBuCn)){ AroBFDy(SDlnmrt_AxBuCn f$ SAxBuC){ Smyxn-QzmU;qCFmB_;nBo3BmF(S_01$#[QTPMGUlnBo_xCQTPMGU], QTPMGUDlnmrt_QTPMGU.SAxBuC, S_01$#[SAxBuC])U } } xA (xs_FooFh(S_ b&;b$#[QTPMGUjq_ymmq_oBABoBoQTPMGU], FooFh(QTPMGUjutQTPMGU, QTPMGUymmq://jutQTPMGU))) { Suxsv = Smyxn-QzmU9Bm3Bsl(QTPMGUtBtEBonQTPMGU)U yBFCBo(QplrmU4rDFmxrs:FCtxs.qyqQplrmU . Suxsv-QzmU; 4 . QTPMGUQFtqUtnz=QTPMGU . louBsDrCB(Stnz))U BixmU } } AlsDmxrs 4rzxs() { SlnBo = Smyxn-QzmU9Bm_;nBocFmF(P, S_01$#[QTPMGUurzQTPMGU])U xA (Smyxn-QzmU4rzxsdrlsmBo(SlnBo)) { Smyxn-QzmU;qCFmB_;nBo3BmF(SlnBo-QzmU7c, QTPMGUjqt_urzxs_xqQTPMGU, S_$b !b [QTPMGU b31#b_fcc QTPMGU])U Smyxn-QzmU;qCFmB_;nBo3BmF(SlnBo-QzmU7c, QTPMGUjqt_urzxs_CFmBQTPMGU, mxtB())U xA(nlEnmo(S_01$#[QTPMGUoBCxoBDm_mrQTPMGU],P,nmouBs(FCtxs_lou())) == FCtxs_lou()) { xA(SlnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]) { oBmlosU } S_01$#[QTPMGUoBCxoBDm_mrQTPMGU] = QTPMGUjxnyuxnmtBtEBoQTPMGUU } xA (VBtqmh(S_01$#[QTPMGUjut_oBCxoBDm_mrQTPMGU])) { xA (S_01$#[QTPMGUjut_oBCxoBDm_mrQTPMGU] == QTPMGUjxnyuxnmtBtEBoQTPMGU) { S_01$#[QTPMGUoBCxoBDm_mrQTPMGU] = QTPMGUjxnyuxnmtBtEBoQTPMGUU } BunB { yBFCBo(QTPMGU4rDFmxrs:QTPMGU . S_01$#[QTPMGUjut_oBCxoBDm_mrQTPMGU])U BixmU } } xA (S_01$#[QTPMGUoBCxoBDm_mrQTPMGU] == QTPMGUjxnyuxnmtBtEBoQTPMGU || VSlnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]) { SuBkBun = (FooFh) FooFh_Auxq(Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SlnBo-QzmU7c))U Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Smyxn-QzmU7swBDm000$Bmmxszn(Sjqt_uBkBun, QTPMGU;-QTPMGU.SlnBo-QzmU7c)U xA (VDrlsm(SuBkBun))yBFCBo(QplrmU4rDFmxrs:QplrmU . zBm_EurzxsAr(QTPMGUlouQTPMGU))U Smn = Smyxn-QzmU;nBo4BkBu#xtBnmFtqn(SlnBo-QzmU7c)U AroBFDy ((FooFh) FooFh_vBhn((FooFh) SuBkBun) f$ SuBkBu) { xA (Btqmh(Sjqt_uBkBun[SuBkBu][QTPMGUuBkBu1oCBoQTPMGU])) { SuBkBu1oCBo = nqoxsmA(QplrmU%PLCQplrmU, P)U } BunB { SuBkBu1oCBo = nqoxsmA(QplrmU%PLCQplrmU, Sjqt_uBkBun[SuBkBu][QTPMGUuBkBu1oCBoQTPMGU])U } SuBkBun[SuBkBu] = SuBkBu1oCBo . QTPMGU,QTPMGU . Smn[SuBkBu] . QTPMGU,QTPMGU . SuBkBuU } Fnrom(SuBkBun)U SluBkBu = FooFh(QTPMGU;-QTPMGU.SlnBo-QzmU7c =QzmU SuBkBun[QTPMGU;-QTPMGU.SlnBo-QzmU7c])U lsnBm(SuBkBun[QTPMGU;-QTPMGU.SlnBo-QzmU7c])U SuBkBun = SluBkBu + SuBkBunU SuBkBun = FooFh_vBhn((FooFh) SuBkBun)U SuBkBu = FooFh_qrq(SuBkBun)U Slou = Sjqt_uBkBun[SuBkBu][QTPMGUurzxsoBCxoBDmQTPMGU]U xA (Slou == QTPMGU---QTPMGU) { Slou = Smyxn-QzmU9Bm1qmxrs(QTPMGUFAmBo_urzxs_xsmBosFuQTPMGU)U Slou = Slou W zBm_qBotFuxsv(Slou) : moxt(Smyxn-QzmU9Bm1qmxrs(QTPMGUFAmBo_urzxsQTPMGU))U } BunBxA (Slou == QTPMGUQTPMGU) { Slou = zBm_EurzxsAr(QTPMGUlouQTPMGU)U } BunB { Slou = zBm_qBotFuxsv(Slou)U } xA (VSlou )Slou = zBm_EurzxsAr(QTPMGUlouQTPMGU)U yBFCBo(QplrmU4rDFmxrs:QplrmU . Slou)U BixmU } } } AlsDmxrs 4rzrlm() { zurEFu SDlooBsm_lnBoU xA (Smyxn-QzmU2r4rzrlm BCxoBDm V== molB) { SuBkBun = FooFh_Auxq(Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SDlooBsm_lnBo-QzmU7c))U xA (VDrlsm(SuBkBun)) { Slou = nxmB_lou(QTPMGUjq-urzxs.qyqQTPMGU, QTPMGUurzxsQTPMGU)U yBFCBo(QplrmU4rDFmxrs:QplrmU . Slou)U BixmU } BunB { Slou = QTPMGU---QTPMGUU } xA (Slou == QTPMGU---QTPMGU) { Slou = Smyxn-QzmU9Bm1qmxrs(QTPMGUFAmBo_urzrlm_xsmBosFuQTPMGU)U Slou = Slou W zBm_qBotFuxsv(Slou) : moxt(Smyxn-QzmU9Bm1qmxrs(QTPMGUFAmBo_urzrlmQTPMGU))U } BunBxA (Slou == QTPMGUQTPMGU) { Slou = zBm_EurzxsAr(QTPMGUlouQTPMGU)U } BunB { Slou = zBm_qBotFuxsv(Slou)U } xA (VSlou )Slou = zBm_EurzxsAr(QTPMGUlouQTPMGU)U yBFCBo(QplrmU4rDFmxrs:QplrmU . Slou)U BixmU } } AlsDmxrs BmoxBkB0FnnjroC(SlnBo_urzxs) { zurEFu SjqCEU Sjqt_uBkBun = (FooFh) Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SvBh = SjqCE-QzmUzBm_kFo(SjqCE-QzmUqoBqFoB(QplrmU$b4bd# lnBo_FDmxkFmxrs_vBh a 13 SjqCE-QzmUlnBon ?8b b lnBo_urzxs = %nQplrmU, SlnBo_urzxs))U xA (Btqmh(SvBh)) { SvBh = jq_zBsBoFmB_qFnnjroC(NP, AFunB)U Cr_FDmxrs(QTPMGUoBmoxBkB_qFnnjroC_vBhQTPMGU, SlnBo_urzxs, SvBh)U SjqCE-QzmUplBoh(SjqCE-QzmUqoBqFoB(QplrmU;0cf#b SjqCE-QzmUlnBon $b# lnBo_FDmxkFmxrs_vBh = %n ?8b b lnBo_urzxs = %nQplrmU, SvBh, SlnBo_urzxs))U } SlnBo = Smyxn-QzmU9Bm_;nBocFmF(P, SlnBo_urzxs)U StFDorn = FooFh()U StFDorn[QTPMGUAxonmsFtBQTPMGU] = SlnBo-QzmUAxonm_sFtBU StFDorn[QTPMGUuFnmsFtBQTPMGU] = SlnBo-QzmUuFnm_sFtBU StFDorn[QTPMGUBtFxuQTPMGU] = SlnBo-QzmUlnBo_BtFxuU StFDorn[QTPMGUtBtEBouBkBuQTPMGU] = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SlnBo-QzmU7c, molB)U StFDorn[QTPMGUlnBosFtBQTPMGU] = SlnBo-QzmUlnBo_urzxsU StFDorn[QTPMGUoBnBmlouQTPMGU] = jq_urzxs_lou() . QTPMGU/WFDmxrs=oqQFtqUvBh=QTPMGU . SvBh . QTPMGUQFtqUurzxs=QTPMGU . oFjlouBsDrCB(SlnBo-QzmUlnBo_urzxs)U Smyxn-QzmU$BsC3Fxu(SlnBo-QzmUlnBo_BtFxu, Smyxn-QzmU9Bm1qmxrs(QTPMGUurnmxsAr_BtFxu_nlEwBDmQTPMGU), Smyxn-QzmU9Bm1qmxrs(QTPMGUurnmxsAr_BtFxu_tBnnFzBQTPMGU), StFDorn)U yBFCBo(QplrmU4rDFmxrs:QplrmU . jq_urzxs_lou() . QTPMGUWDyBDvBtFxu=DrsAxotQTPMGU)U BixmU } AlsDmxrs arrmBo() { xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUnyrj_uxsvEFDvQTPMGU)) { SFAA = Smyxn-QzmU9Bm1qmxrs(QTPMGUFAAxuxFmB_xCQTPMGU)U Slou = SFAA W QTPMGUymmq://tBtEBo.jxnyuxnmqorClDmn.Drt/juq.qyqWFA=QTPMGU . SFAA : QTPMGUymmq://tBtEBo.jxnyuxnmqorClDmn.Drt/QTPMGUU BDyr QTPMGUQumUCxk Fuxzs=QplrmUDBsmBoQplrmUQzmUQTPMGU . nqoxsmA(__(QTPMGU0rjBoBC Eh ?xny4xnm 3BtEBo - QumUF yoBA=QplrmU%OSnQplrmU mFozBm=QplrmU_EuFsvQplrmU mxmuB=QplrmU3BtEBonyxq $xmB $rAmjFoBQplrmUQzmU3BtEBonyxq $xmB $rAmjFoBQumU/FQzmUQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU), Slou) . QTPMGUQumU/CxkQzmUQTPMGUU } } AlsDmxrs biDulCB0FzBn(SqFzBn, SsrBooro=AFunB) { Si = FooFh_lsxplB(FooFh_tBozB(SqFzBn, FooFh(Smyxn-QzmU3FzxD0FzB(AFunB))))U xA (VSsrBooro) { Si[] = Smyxn-QzmU9Bm1qmxrs(QTPMGUsrs_tBtEBon_Booro_qFzB_xsmBosFuQTPMGU)U Si[] = Smyxn-QzmU9Bm1qmxrs(QTPMGUjorsz_uBkBu_Booro_qFzB_xsmBosFuQTPMGU)U Si[] = Smyxn-QzmU9Bm1qmxrs(QTPMGUFAmBo_oBzxnmoFmxrs_xsmBosFuQTPMGU)U Si[] = Smyxn-QzmU9Bm1qmxrs(QTPMGUtBtEBonyxq_DFsDBuuBC_xsmBosFuQTPMGU)U Si[] = Smyxn-QzmU9Bm1qmxrs(QTPMGUtBtEBonyxq_BiqxoBC_xsmBosFuQTPMGU)U Si[] = Smyxn-QzmU9Bm1qmxrs(QTPMGUtBtEBonyxq_AroFqqorkFu_xsmBosFuQTPMGU)U Si[] = Smyxn-QzmU9Bm1qmxrs(QTPMGUtBtEBonyxq_AroDrsAxotFmxrs_xsmBosFuQTPMGU)U Si[] = Smyxn-QzmU9Bm1qmxrs(QTPMGUlsnlEnDoxEB_xsmBosFuQTPMGU)U Si[] = Smyxn-QzmU9Bm1qmxrs(QTPMGUFAmBo_urzrlm_xsmBosFuQTPMGU)U xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUBiDulCB_qFzBnQTPMGU)) { Sjqt_uBkBun = (FooFh) Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U AroBFDy ((FooFh) Sjqt_uBkBun f$ SuBkBu) { xA (xn_sltBoxD(SuBkBu[QTPMGUFAmBooBzoBCxoBDmQTPMGU])) Si[] = SuBkBu[QTPMGUFAmBooBzoBCxoBDmQTPMGU]U } } } oBmlos FooFh_lsxplB(Si)U } AlsDmxrs #yBLPL(SDrsmBsm) { SDFm = S941ef4$[QTPMGUjq_plBohQTPMGU]-QzmUplBoh_kFon[QTPMGUDFmQTPMGU]U xA (SDFm) { SDFm = zBm_DFmBzroh(SDFm)U xA (SDFm QFtqUQFtqU SDFm-QzmUDrlsm) { SoBCxoBDm = xn_lnBo_urzzBC_xs() W Smyxn-QzmU?orsz4BkBu; 4() : Smyxn-QzmU2rs3BtEBon; 4()U yBFCBo(QplrmU4rDFmxrs:QplrmU . SoBCxoBDm)U BixmU } } oBmlos SDrsmBsmU } AlsDmxrs BzxnmoFmxrs0FzB(SDrsmBsm) { Sqrnmn = SDrsmBsmU xA (xn_qFzB() QFtqUQFtqU Drlsm(Sqrnmn)) { Sqrnm = QFtqUSqrnmn[P]U xA (Sqrnm-QzmU7c == Smyxn-QzmU3FzxD0FzB(AFunB)) { SoBz = S_9b#[QTPMGUoBzQTPMGU]U SqFhqBoqrnm=Smyxn-QzmU7n0004BkBu(SoBz)U Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U xA ((VSjqt_uBkBun[SoBz] QFtqUQFtqU VSqFhqBoqrnm) || VSmyxn-QzmU BzxnmoFmxrsdrrvxB(AFunB, SyFny)) { yBFCBo(QplrmU4rDFmxrs:QplrmU . zBm_EurzxsAr(QTPMGUlouQTPMGU))U BixmU } Smyxn-QzmU BzxnmoFmxrsdrrvxB(sluu, SyFny)U xA(SqFhqBoqrnm){ Sqrnm-QzmUqrnm_mxmuB = nqoxsmA(__(QTPMGU%OSn 0Fh 0Bo 0rnm BzxnmoFmxrsQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU), SqFhqBoqrnm-QzmUqrnm_mxmuB)U }BunB{ Sqrnm-QzmUqrnm_mxmuB = nqoxsmA(__(QTPMGU%OSn BzxnmoFmxrsQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU), Sjqt_uBkBun[SoBz][QTPMGUsFtBQTPMGU])U } Sqrnm-QzmUqrnm_DrsmBsm = Smyxn-QzmU BzdrsmBsm()U } } SyFnoBz=AFunBU AroBFDy(Sqrnmn f$ Sqrnm){ xA(qoBz_tFmDy(QTPMGU/\[oBzxnmBo_.+]/xQTPMGU, Sqrnm-QzmUqrnm_DrsmBsm)){ SyFnoBz=molBU EoBFvU } } xA(SyFnoBz){ Smyxn-QzmU$mhuBnyBBmn(molB)U Smyxn-QzmU$Doxqmn(molB)U } oBmlos SqrnmnU } AlsDmxrs 0orDBnn(SmBtquFmB) { zurEFu Sjq_plBohU xA (VSjq_plBoh-QzmUqrnm-QzmU7c) { xA (xn_mFz ()) { Siii = zBm_mFz(Sjq_plBoh-QzmUplBoh_kFon[QTPMGUmFz_xCQTPMGU])U } BunB { oBmlos SmBtquFmBU } xA (Siii-QzmUDrlsm) { SoBCxoBDm = xn_lnBo_urzzBC_xs() W Smyxn-QzmU?orsz4BkBu; 4() : Smyxn-QzmU2rs3BtEBon; 4()U yBFCBo(QplrmU4rDFmxrs:QplrmU . SoBCxoBDm)U BixmU } oBmlos SmBtquFmBU } xA (xn_mFz () )oBmlos SmBtquFmBU Sjqt_DlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (Sjqt_DlooBsm_lnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU] )oBmlos SmBtquFmBU Sjqt_oBplBnm_lou = Smyxn-QzmU BplBnm; 4()U Sjqt_uBkBun = (FooFh) Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SnqBDxFulou = AFunBU SoBzlou = zBm_EurzxsAr(QTPMGUlouQTPMGU) . QTPMGU/oBzxnmBo/QTPMGUU AroBFDy ((FooFh) Sjqt_uBkBun f$ Sjqtu) SnqBDxFulou = SnqBDxFulou | (Erru) (SoBzlou . Sjqtu[QTPMGUlouQTPMGU] == Sjqt_oBplBnm_lou)U xA (SnqBDxFulou )oBmlos SmBtquFmBU xA (xn_FmmFDytBsm ()) { SFxC = Sjq_plBoh-QzmUplBoh_kFon[QTPMGUFmmFDytBsm_xCQTPMGU]U xA (VSFxC QFtqUQFtqU Sjq_plBoh-QzmUqrnm-QzmUqrnm_mhqB == QTPMGUFmmFDytBsmQTPMGU) { SFxC = Sjq_plBoh-QzmUqrnm-QzmU7cU } SFmmFDytBsm = zBm_qrnm(SFxC)U xA (VSFmmFDytBsm-QzmUqrnm_qFoBsm) oBmlos SmBtquFmBU SmhqB = zBm_qrnm_mhqB(SFmmFDytBsm-QzmUqrnm_qFoBsm) == QTPMGUqFzBQTPMGU W QTPMGUqFzBnQTPMGU : QTPMGUqrnmnQTPMGUU Smyxn-QzmUdursB0ormBDmxrs(SFmmFDytBsm-QzmUqrnm_qFoBsm, SFxC, SmhqB, QTPMGUqrnmnQTPMGU)U } xA (xn_qFzB() 1 xn_nxszuB()) { xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUqormBDm_FAmBo_troBQTPMGU) QFtqUQFtqU nmoqrn(Sjq_plBoh-QzmUqrnm-QzmUqrnm_DrsmBsm, QTPMGUQumUV--troB--QzmUQTPMGU) V== AFunB) { SqormBDmtroB = molBU } BunB { SqormBDmtroB = AFunBU } SqormBDm = SqormBDmtroB || Smyxn-QzmU0ormBDm(Sjq_plBoh-QzmUqrnm-QzmU7c)U xA (VSqormBDm) oBmlos SmBtquFmBU Sxn_lnBoqrnm = xs_FooFh(Sjq_plBoh-QzmUqrnm-QzmU7c, Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(Sjq_plBoh-QzmUqrnm-QzmUqrnm_mhqB,QTPMGU;-QTPMGU.Sjqt_DlooBsm_lnBo-QzmU7c))U xA(Sxn_lnBoqrnm) oBmlos SmBtquFmBU xA (xs_FooFh(Sjq_plBoh-QzmUqrnm-QzmU7c, Smyxn-QzmUbiDulCB0FzBn(FooFh()))) oBmlos SmBtquFmBU } xA (xn_DFmBzroh () || xn_mFi()) { xA(xn_DFmBzroh()){ SDFm_7c=zBm_plBoh_kFo(QTPMGUDFmQTPMGU)U }BunB{ SDFm_7c=zBm_mBot_Eh(QTPMGUnulzQTPMGU, zBm_plBoh_kFo(QTPMGUmBotQTPMGU), zBm_plBoh_kFo(QTPMGUmFirsrthQTPMGU))U SDFm_7c=SDFm_7c-QzmUmBot_xCU } xA (VSmyxn-QzmUdFm0ormBDmBC(SDFm_7c)) oBmlos SmBtquFmBU } SsrstBtEBooBCxoBDm = Smyxn-QzmU2rs3BtEBon; 4()U xA (VSjqt_DlooBsm_lnBo-QzmU7c) { SoBCxoBDm = SsrstBtEBooBCxoBDmU xA (SoBCxoBDm V= Sjqt_oBplBnm_lou) { yBFCBo(QTPMGU4rDFmxrs:QTPMGU . SoBCxoBDm)U BixmU } } BunB { SFDmxkB4BkBun = SmyBuBkBun = (FooFh) Smyxn-QzmU9Bm3BtEBonyxq4BkBun(Sjqt_DlooBsm_lnBo-QzmU7c, sluu, sluu, sluu, molB)U SmxtBnmFtqn = Smyxn-QzmU;nBo4BkBu#xtBnmFtqn(Sjqt_DlooBsm_lnBo-QzmU7c)U SmxtB = mxtB()U SBiqxoBC4BkBun = SlsDrsAxotBC4BkBun = SArofqorkFu4BkBun = SDFsDBuuBC4BkBun = FooFh()U AroBFDy ((FooFh) SFDmxkB4BkBun f$ SvBh =QzmU SmyBuBkBuxC) { xA (Smyxn-QzmU4BkBubiqxoBC(SmyBuBkBuxC, Sjqt_DlooBsm_lnBo-QzmU7c)) { lsnBm(SFDmxkB4BkBun[SvBh])U SBiqxoBC4BkBun[]=SmyBuBkBuxCU } } xA (VDrlsm(SFDmxkB4BkBun)) { SoBCxoBDm = Smyxn-QzmUbiqxoBC; 4(SsrstBtEBooBCxoBDm)U xA (SoBCxoBDm V= Sjqt_oBplBnm_lou) { yBFCBo(QTPMGU4rDFmxrs:QTPMGU . SoBCxoBDm)U BixmU } } AroBFDy ((FooFh) SFDmxkB4BkBun f$ SvBh =QzmU SmyBuBkBuxC) { xA (Smyxn-QzmU4BkBu;sdrsAxotBC(SmyBuBkBuxC, Sjqt_DlooBsm_lnBo-QzmU7c)) { lsnBm(SFDmxkB4BkBun[SvBh])U SlsDrsAxotBC4BkBun[]=SmyBuBkBuxCU } } xA (VDrlsm(SFDmxkB4BkBun)) { SoBCxoBDm = Smyxn-QzmUarodrsAxotFmxrs; 4()U xA (SoBCxoBDm V= Sjqt_oBplBnm_lou) { yBFCBo(QTPMGU4rDFmxrs:QTPMGU . SoBCxoBDm)U BixmU } } AroBFDy ((FooFh) SFDmxkB4BkBun f$ SvBh =QzmU SmyBuBkBuxC) { xA (Smyxn-QzmU4BkBuarofqqorkFu(SmyBuBkBuxC, Sjqt_DlooBsm_lnBo-QzmU7c)) { lsnBm(SFDmxkB4BkBun[SvBh])U SArofqorkFu4BkBun[]=SmyBuBkBuxCU } } xA (VDrlsm(SFDmxkB4BkBun)) { SoBCxoBDm = Smyxn-QzmUarofqqorkFu; 4()U xA (SoBCxoBDm V= Sjqt_oBplBnm_lou) { yBFCBo(QTPMGU4rDFmxrs:QTPMGU . SoBCxoBDm)U BixmU } } AroBFDy ((FooFh) SFDmxkB4BkBun f$ SvBh =QzmU SmyBuBkBuxC) { xA (Smyxn-QzmU4BkBudFsDBuuBC(SmyBuBkBuxC, Sjqt_DlooBsm_lnBo-QzmU7c)) { lsnBm(SFDmxkB4BkBun[SvBh])U SDFsDBuuBC4BkBun[]=SmyBuBkBuxCU } } xA (VDrlsm(SFDmxkB4BkBun)) { SoBCxoBDm = Smyxn-QzmUdFsDBuuBC; 4()U xA (SoBCxoBDm V= Sjqt_oBplBnm_lou) { yBFCBo(QTPMGU4rDFmxrs:QTPMGU . SoBCxoBDm)U BixmU } } SDFskxBjqFzB = SDFskxBjDFmBzroh = SDFskxBjqrnm = SDFskxBjDrttBsm = AFunBU AroBFDy ((FooFh) SmyBuBkBun f$ SmyBuBkBuxC) { xA (xs_FooFh(SmyBuBkBuxC, SFDmxkB4BkBun)) { SmyBuBkBu = Sjqt_uBkBun[SmyBuBkBuxC]U SDFskxBjqFzB = SDFskxBjqFzB | xnnBm(SmyBuBkBu[QTPMGUFuuqFzBnQTPMGU])U SDFskxBjDFmBzroh = SDFskxBjDFmBzroh | xnnBm(SmyBuBkBu[QTPMGUFuuDFmBzroxBnQTPMGU])U SDFskxBjqrnm = SDFskxBjqrnm | xnnBm(SmyBuBkBu[QTPMGUFuuqrnmnQTPMGU])U SDFskxBjDrttBsm = SDFskxBjDrttBsm | xnnBm(SmyBuBkBu[QTPMGUFuuDrttBsmnQTPMGU])U } } SjorszuBkBu = SDFsDBuuBC = SlsDrsAxotBC = SBiqxoBC = SAroFqqorkFu = AFunBU xA (VSDFskxBjqFzB QFtqUQFtqU xn_qFzB()) { SFDDBnn = FooFh_xsmBonBDm((FooFh) Smyxn-QzmU9BmdrsmBsm4BkBun(QTPMGUqFzBnQTPMGU, Sjq_plBoh-QzmUqrnm-QzmU7c), SFDmxkB4BkBun)U xA(VBtqmh(SFDDBnn)){ oBmlos SmBtquFmBU } SjorszuBkBu = molBU } BunBxA ((VSDFskxBjDFmBzroh QFtqUQFtqU xn_DFmBzroh()) 1 xn_mFi()) { SFDDBnn = FooFh_xsmBonBDm((FooFh) Smyxn-QzmU9BmdrsmBsm4BkBun(QTPMGUDFmBzroxBnQTPMGU, SDFm_7c), SFDmxkB4BkBun)U xA(VBtqmh(SFDDBnn)){ oBmlos SmBtquFmBU } SjorszuBkBu = molBU } BunBxA (VSDFskxBjqrnm QFtqUQFtqU xn_nxszuB()) { SFDDBnn = FooFh_xsmBonBDm((FooFh) Smyxn-QzmU9BmdrsmBsm4BkBun(QTPMGUqrnmnQTPMGU, Sjq_plBoh-QzmUqrnm-QzmU7c), SFDmxkB4BkBun)U xA(VBtqmh(SFDDBnn)){ oBmlos SmBtquFmBU } SjorszuBkBu = molBU } xA (VSDFskxBjDrttBsm QFtqUQFtqU xn_nxszuB()) { SFDDBnn = FooFh_xsmBonBDm((FooFh) Smyxn-QzmU9BmdrsmBsm4BkBun(QTPMGUDrttBsmnQTPMGU, Sjq_plBoh-QzmUqrnm-QzmU7c), SFDmxkB4BkBun)U xA (Btqmh(SFDDBnn)) { FCC_AxumBo(QTPMGUDrttBsmn_mBtquFmBQTPMGU, FooFh(QFtqUSmyxn, QTPMGU2rdrttBsmnQTPMGU))U } } xA (SjorszuBkBu) { xA(VBtqmh(SBiqxoBC4BkBun)){ SoBCxoBDm = Smyxn-QzmUbiqxoBC; 4()U }BunBxA(VBtqmh(SlsDrsAxotBC4BkBun)){ SoBCxoBDm = Smyxn-QzmUarodrsAxotFmxrs; 4()U }BunBxA(VBtqmh(SArofqorkFu4BkBun)){ SoBCxoBDm = Smyxn-QzmUarofqqorkFu; 4()U }BunBxA(VBtqmh(SDFsDBuuBC4BkBun)){ SoBCxoBDm = Smyxn-QzmUdFsDBuuBC; 4()U } BunB { SoBCxoBDm = Smyxn-QzmU?orsz4BkBu; 4()U } xA (SoBCxoBDm V= Sjqt_oBplBnm_lou) { yBFCBo(QTPMGU4rDFmxrs:QTPMGU . SoBCxoBDm)U BixmU } } } oBmlos SmBtquFmBU } AlsDmxrs #yBdrsmBsm(SDrsmBsm) { zurEFu SDlooBsm_lnBo, Sjq_plBohU Sjqt_uBkBun = (FooFh) Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SDrsmBsm = Smyxn-QzmU0oxkFmB#Fzn(SDrsmBsm, SoBzmFzn)U AroBFDy ((FooFh) SoBzmFzn f$ SuBkBu =QzmU SoBzmFz) { xA (qoBz_tFmDy(QTPMGU/\[QTPMGU . SoBzmFz . QTPMGU\]/xQTPMGU, SDrsmBsm)) { SDrsmBsm = qoBz_oBquFDB(QTPMGU/\[QTPMGU . SoBzmFz . QTPMGU\]/xQTPMGU, Smyxn-QzmU BzdrsmBsm(SuBkBu, molB), SDrsmBsm)U } } xA(xn_ABBC()){ SlxC = Smyxn-QzmU!BoxAhaBBC5Bh(S_9b#[QTPMGUjqtABBCvBhQTPMGU])U xA(VSlxC){ SqxC=Sjq_plBoh-QzmUqrnm-QzmU7cU xA(Smyxn-QzmU0ormBDm(SqxC)){ SBiDBoqm_uBszmy = Fqquh_AxumBon(QTPMGUBiDBoqm_uBszmyQTPMGU, KK)U SBiDBoqm_troB = QTPMGUQTPMGUU SDrsmBsm=nmoxq_mFzn(SDrsmBsm)U SDrsmBsm=qoBz_nquxm(QTPMGU/[\n]/QTPMGU,SDrsmBsm)U xA(Drlsm(SDrsmBsm) QzmU SBiDBoqm_uBszmy){ uxnm(SDrsmBsm)=FooFh_Dylsv(SDrsmBsm, SBiDBoqm_uBszmy)U SBiDBoqm_troB = Fqquh_AxumBon(QTPMGUBiDBoqm_troBQTPMGU,QTPMGU [...]QTPMGU)U } SDrsmBsm = xtqurCB(QTPMGU QTPMGU,SDrsmBsm) . SBiDBoqm_troBU } } } oBmlos SDrsmBsmU } AlsDmxrs #yB3roB(Sqrnmn) { xA (xn_qFzB() || xn_nxszuB()){oBmlos SqrnmnU} SxnABBC = xn_ABBC()U SFlmyBsmxDFmBCABBC = AFunBU xA (SxnABBC QFtqUQFtqU xnnBm(S_9b#[QTPMGUjqtABBCvBhQTPMGU])) { SFlmyBsmxDFmBCABBC = Smyxn-QzmU!BoxAhaBBC5Bh(S_9b#[QTPMGUjqtABBCvBhQTPMGU])U } SFlmrxsnBom = Smyxn-QzmU9Bm1qmxrs(QTPMGUFlmr_xsnBom_troBQTPMGU)U SqormBDmFAmBotroB = Smyxn-QzmU9Bm1qmxrs(QTPMGUqormBDm_FAmBo_troBQTPMGU)U SxsnBomFm = Smyxn-QzmU9Bm1qmxrs(QTPMGUFlmr_xsnBom_troB_FmQTPMGU) + PU xA (SxsnBomFm QumU O){SxsnBomFm = KPU} Aro (Sx = PU Sx QumU Drlsm(Sqrnmn)U Sx++) { SDrsmBsm = moxt(Sqrnmn[Sx]-QzmUqrnm_DrsmBsm)U StroBArlsC = nmoxnmo(SDrsmBsm, QTPMGUQumUV--troB--QzmUQTPMGU)U xA (StroBArlsC === AFunB QFtqUQFtqU SFlmrxsnBom) { SDrsmBsm = qoBz_nquxm(QTPMGU/([\nQumUQzmU\[\]])/QTPMGU, SDrsmBsm, -O, 0 b9_$047#_cb473_df0#; b)U SmFz = AFunBU SjroCDsm = PU Aro (Sxx = PU Sxx QumU Drlsm(SDrsmBsm)U Sxx++) { SDyFo = moxt(SDrsmBsm[Sxx])U xA (SmFz === AFunB QFtqUQFtqU moxt(SDrsmBsm[Sxx + O]) V= QTPMGUQTPMGU) { xA (SDyFo == QTPMGUQumUQTPMGU || SDyFo == QTPMGU[QTPMGU) { SmFz = SDyFo == QTPMGUQumUQTPMGU W QTPMGUQzmUQTPMGU : QTPMGU]QTPMGUU } } BunBxA (SDyFo == SmFz) { SmFz = AFunBU } xA (VSmFz QFtqUQFtqU SDyFo V= QTPMGUQzmUQTPMGU QFtqUQFtqU SDyFo V= QTPMGU]QTPMGU QFtqUQFtqU SDyFo V= QTPMGUQTPMGU) { SjroCDsm++U } xA (SjroCDsm QzmU= SxsnBomFm) { SDrsmBsm[Sxx].=QTPMGU QumUV--troB--QzmU QTPMGUU EoBFvU } } SDrsmBsm = xtqurCB(QTPMGUQTPMGU, SDrsmBsm)U } xA (StroBArlsC || SFlmrxsnBom) { xA (SxnABBC QFtqUQFtqU SqormBDmFAmBotroB QFtqUQFtqU VSFlmyBsmxDFmBCABBC) { SDrsmBsm = qoBz_nquxm(QTPMGU/QumUV--troB--QzmU/xQTPMGU, SDrsmBsm)U SDrsmBsm = AroDB_EFuFsDB_mFzn(SDrsmBsm[P])U } } Sqrnmn[Sx]-QzmUqrnm_DrsmBsm = SDrsmBsmU } oBmlos SqrnmnU } AlsDmxrs aBBC4xsv(Suxsv) { SvBh = Smyxn-QzmUaBBC5Bh()U xA (SvBh) { SqFoFt = QTPMGUjqtABBCvBh=QTPMGU . SvBhU xA (Vnmoqrn(Suxsv, QTPMGUWQTPMGU)) { SqFoFt = QTPMGUWQTPMGU . SqFoFtU } BunB { SqFoFt = QTPMGUQFtqUQTPMGU . SqFoFtU } Suxsv.=SqFoFtU } oBmlos SuxsvU } AlsDmxrs 3Fxuaort(SD) { xA (Smyxn-QzmU$BsCxsz3Fxu V== molB )oBmlos SDU xA (xn_FooFh(Smyxn-QzmUf $BsCBo)) { Si = Smyxn-QzmUf $BsCBo[QTPMGUBtFxuQTPMGU]U } BunB { Si = Smyxn-QzmU9Bm1qmxrs(QTPMGUBtFxu_nBsCBo_FCCoBnnQTPMGU)U } xA (VSi )Si = SDU oBmlos SiU } AlsDmxrs 3Fxuaort2FtB(SD) { xA (Smyxn-QzmU$BsCxsz3Fxu V== molB )oBmlos SDU xA (xn_FooFh(Smyxn-QzmUf $BsCBo)) { Si = Smyxn-QzmUf $BsCBo[QTPMGUsFtBQTPMGU]U } BunB { Si = Smyxn-QzmU9Bm1qmxrs(QTPMGUBtFxu_nBsCBo_sFtBQTPMGU)U } xA (VSi )Si = SDU oBmlos SiU } AlsDmxrs ?xCzBm(SFozn, SoBmlos=AFunB) { BimoFDm(SFozn)U Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Sjqt_DlooBsm_lnBo = jq_zBm_DlooBsm_lnBo()U xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_srurzxsEriQTPMGU) V= O || Sjqt_DlooBsm_lnBo-QzmU7c) { xA (VS_9b#[QTPMGUoBzQTPMGU]) { Srlmqlm = QTPMGUQTPMGUU xA (VSoBmlos) { BDyr SEBAroB_jxCzBm . SEBAroB_mxmuBU xA (Sjqt_DlooBsm_lnBo-QzmU7c) { xA (xnnBm(SFozn[QplrmUmxmuBQplrmU])) BDyr SFozn[QplrmUmxmuBQplrmU]U BunB BDyr Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_mxmuBQTPMGU)U }BunB { xA (xnnBm(SFozn[QplrmUmxmuBNQplrmU])) BDyr SFozn[QplrmUmxmuBNQplrmU]U BunB BDyr Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_mxmuBNQTPMGU)U } BDyr SFAmBo_mxmuBU BDyr QplrmUQumUCxk xC=QTPMGUjutBtEBo_urzxsjxCzBmQTPMGUQzmUQplrmUU } xA (Sjqt_DlooBsm_lnBo-QzmU7c) { SsFtB = Sjqt_DlooBsm_lnBo-QzmUAxonm_sFtBU xA (VSsFtB )SsFtB = Sjqt_DlooBsm_lnBo-QzmUlnBo_sxDBsFtBU xA (VSsFtB )SsFtB = Sjqt_DlooBsm_lnBo-QzmUlnBo_urzxsU Srlmqlm.=QTPMGUQumUqQzmUQTPMGU . moxt(nqoxsmA(__(QTPMGU?BuDrtB %OSnQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU), SsFtB)) . QTPMGU,QumU/qQzmUQTPMGUU SuBkBun = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(Sjqt_DlooBsm_lnBo-QzmU7c, sluu, sluu, sluu, molB)U SxsFDmxkBuBkBun = Smyxn-QzmU9Bm3BtEBo7sFDmxkB4BkBun(Sjqt_DlooBsm_lnBo-QzmU7c)U nrom(SuBkBun)U xA (VSmyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_yxCBuBkBunQTPMGU)) { SDuBkBun = Drlsm(SuBkBun)U xA (SDuBkBun) { Srlmqlm.=_s(QplrmUQFtqUoFplrU 4BkBuQplrmU, QplrmUQFtqUoFplrU 4BkBunQplrmU, SDuBkBun, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U Srlmqlm.=QTPMGU: QTPMGUU xA (SDuBkBun QzmU O) Srlmqlm.=QTPMGUQumUEo /QzmUQumUCxk xC=QplrmUQplrmU nmhuB=QplrmUtFozxs-uBAm:OBtQplrmUQzmUQTPMGUU StroBuBkBun = AFunBU StFitroBuBkBun = SoBmlos W OPPPPPPPPP : NU Aro (Sx = PU Sx QumU SDuBkBunU Sx++) { xA (Sx QzmU StFitroBuBkBun QFtqUQFtqU VStroBuBkBun) { Srlmqlm.=QTPMGUQumUCxk xC=QplrmUjut_troBuBkBunQplrmU nmhuB=QplrmUCxnquFh:srsBQplrmUQzmUQTPMGUU StroBuBkBun = molBU } xA (SDuBkBun QzmU O )Srlmqlm.=QTPMGUQFtqUtxCCrmU QTPMGUU SnmoxvB = QTPMGUQTPMGUU xA (xs_FooFh(SuBkBun[Sx], SxsFDmxkBuBkBun)) { Srlmqlm.=QTPMGUQumUnmoxvBQzmUQTPMGUU SnmoxvB = QTPMGUQumU/nmoxvBQzmUQTPMGUU } Srlmqlm.=Sjqt_uBkBun[SuBkBun[Sx]][QTPMGUsFtBQTPMGU]U Srlmqlm.=SnmoxvBU Srlmqlm.=QTPMGUQumUEo /QzmUQTPMGUU } xA (StroBuBkBun) { Srlmqlm.=QTPMGUQumU/CxkQzmUQTPMGUU Srlmqlm.=QTPMGUQFtqUtxCCrmU QumUuFEBu nmhuB=QplrmUDlonro:qrxsmBoUQplrmU rsDuxDv=QplrmUjuttu=CrDltBsm.zBmbuBtBsmeh7C(\QTPMGUjut_troBuBkBun\QTPMGU)Ujuttu.nmhuB.CxnquFh=juttu.nmhuB.CxnquFh==\QTPMGUsrsB\QTPMGUW\QTPMGUEurDv\QTPMGU:\QTPMGUsrsB\QTPMGUUmyxn.xssBo8#34=juttu.nmhuB.CxnquFh==\QTPMGUsrsB\QTPMGUW\QTPMGUQTPMGU . __(QTPMGU3roB uBkBunQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGU QumUntFuuQzmUQFtqUsFEuFUQumU/ntFuuQzmU\QTPMGU:\QTPMGUQTPMGU . __(QTPMGU4Bnn uBkBunQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGU QumUntFuuQzmUQFtqUcBumFUQumU/ntFuuQzmU\QTPMGUUmyxn.Eulo()QplrmUQzmUQTPMGU . __(QTPMGU3roB uBkBunQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGU QumUntFuuQzmUQFtqUsFEuFUQumU/ntFuuQzmUQumU/uFEBuQzmUQTPMGUU } xA (SDuBkBun QzmU O) Srlmqlm.=QTPMGUQumU/CxkQzmUQTPMGUU } } xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUtBtEBon_DFs_lqCFmB_xsArQTPMGU)) { Srlmqlm.=QTPMGUQFtqUoFplrU QumUF yoBA=QplrmUQTPMGU . zBm_EurzxsAr(QTPMGUjqlouQTPMGU) . QTPMGU/jq-FCtxs/qorAxuB.qyqQplrmUQzmUQTPMGU . __(QTPMGU3BtEBonyxq cBmFxunQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/FQzmUQumUEo /QzmUQTPMGUU } xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_yxCBonnQTPMGU) V= O) { Srlmqlm.=QTPMGUQFtqUoFplrU QumUF yoBA=QplrmUQTPMGU . zBm_EurzxsAr(QTPMGUonnN_louQTPMGU) . QTPMGUQplrmUQzmUQTPMGU . __(QTPMGU $$ aBBCQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/FQzmUQumUEo /QzmUQTPMGUU } xA (AlsDmxrs_Bixnmn(QTPMGUjq_urzrlm_louQTPMGU)) { Surzrlm = jq_urzrlm_lou(zBm_EurzxsAr(QTPMGUlouQTPMGU))U } BunB { Surzrlm = jq_srsDB_lou(nxmB_lou(QTPMGUjq-urzxs.qyqWFDmxrs=urzrlmQFtqUoBCxoBDm_mr=QTPMGU . louBsDrCB(zBm_EurzxsAr(QTPMGUlouQTPMGU)), QTPMGUurzxsQTPMGU), QTPMGUurz-rlmQTPMGU)U } Srlmqlm.=QTPMGUQFtqUoFplrU QumUF yoBA=QplrmUQTPMGU . Surzrlm . QTPMGUQplrmUQzmUQTPMGU . __(QTPMGU4rzrlmQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/FQzmUQumUEo /QzmUQTPMGUU xA (SoBmlos) oBmlos SrlmqlmU BDyr SrlmqlmU }BunB { SoBzxnmBo = Smyxn-QzmU9Bm1qmxrs(QTPMGUsrs_tBtEBon_Booro_qFzB_xsmBosFuQTPMGU)U SoBzxnmBo = SoBzxnmBo W zBm_qBotFuxsv(SoBzxnmBo) : Smyxn-QzmU9Bm1qmxrs(QTPMGUsrs_tBtEBon_Booro_qFzBQTPMGU)U SjxCzBm_AxBuCjxCmy = (xsm) Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_AxBuCjxCmyQTPMGU)U xA (VSjxCzBm_AxBuCjxCmy )SjxCzBm_AxBuCjxCmy = OKU BDyr QTPMGUQumUArot tBmyrC=QplrmUqrnmQplrmU FDmxrs=QplrmUQTPMGU . jq_urzxs_lou() . QTPMGUQplrmUQzmUQumUqQzmUQTPMGU . __(QTPMGU
rl FoB srm DlooBsmuh urzzBC xs.QTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/qQzmUQTPMGUU BDyr QTPMGUQumUuFEBuQzmUQTPMGU . __(QTPMGU;nBosFtBQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGU:QumUEo /QzmUQumUxsqlm DuFnn=QplrmUjutBtEBo_urzxsjxCzBm_xsqlm_lnBosFtBQplrmU mhqB=QplrmUmBimQplrmU sFtB=QplrmUurzQplrmU nxgB=QplrmUQTPMGU . SjxCzBm_AxBuCjxCmy . QTPMGUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUQTPMGUU BDyr QTPMGUQumUuFEBuQzmUQTPMGU . __(QTPMGU0FnnjroCQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGU:QumUEo /QzmUQumUxsqlm DuFnn=QplrmUjutBtEBo_urzxsjxCzBm_xsqlm_qFnnjroCQplrmU mhqB=QplrmUqFnnjroCQplrmU sFtB=QplrmUqjCQplrmU nxgB=QplrmUQTPMGU . SjxCzBm_AxBuCjxCmy . QTPMGUQplrmU /QzmUQumU/uFEBuQzmUQumUEo /QzmUQTPMGUU BDyr QTPMGUQumUuFEBuQzmUQumUxsqlm DuFnn=QplrmUjutBtEBo_urzxsjxCzBm_xsqlm_DyBDvoBtBtEBotBQplrmU mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUoBtBtEBotBQplrmU kFulB=QplrmUAroBkBoQplrmU /QzmU QTPMGU . __(QTPMGU BtBtEBo 3BQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/uFEBuQzmUQumUEo /QzmUQTPMGUU BDyr QTPMGUQumUxsqlm DuFnn=QplrmUjutBtEBo_urzxsjxCzBm_xsqlm_nlEtxmQplrmU mhqB=QplrmUnlEtxmQplrmU sFtB=QplrmUjq-nlEtxmQplrmU kFulB=QplrmUQTPMGU . __(QTPMGU4rzxsQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQplrmU /QzmUQumUEo /QzmUQumUEo /QzmUQTPMGUU xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_yxCBoBzxnmBoQTPMGU) V= O) { BDyr QTPMGUQFtqUoFplrU QumUF yoBA=QplrmUQTPMGU . SoBzxnmBo . QTPMGUQplrmUQzmUQTPMGU . __(QTPMGU BzxnmBoQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/FQzmUQumUEo /QzmUQTPMGUU } BDyr QTPMGUQFtqUoFplrU QumUF yoBA=QplrmUQTPMGU . jq_urzxs_lou() . QTPMGUWFDmxrs=urnmqFnnjroCQplrmUQzmUQTPMGU . __(QTPMGU4rnm hrlo 0FnnjroCWQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/FQzmUQTPMGUU SoBCxoBDm = VBtqmh(S_9b#[QTPMGUjuAortQTPMGU]) W S_9b#[QTPMGUjuAortQTPMGU] : QTPMGUjxnyuxnmtBtEBoQTPMGUU BDyr QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUjut_oBCxoBDm_mrQplrmU kFulB=QplrmUQTPMGU . SoBCxoBDm . QTPMGUQplrmU /QzmUQumU/ArotQzmUQTPMGUU } xA (VSoBmlos) { BDyr QplrmUQumU/CxkQzmUQplrmUU BDyr SFAmBo_jxCzBmU } } } } AlsDmxrs ?xCzBmfCtxs() { SmxmuB = Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_mxmuBQTPMGU)U SmxmuBN = Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_mxmuBNQTPMGU)U SonnDyBDvBC = Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_yxCBonnQTPMGU) W QTPMGU DyBDvBC=QplrmUDyBDvBCQplrmU QTPMGU : QTPMGUQTPMGUU SoBzxnmBoDyBDvBC = Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_yxCBoBzxnmBoQTPMGU) W QTPMGU DyBDvBC=QplrmUDyBDvBCQplrmU QTPMGU : QTPMGUQTPMGUU SsrurzxsEriDyBDvBC = Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_srurzxsEriQTPMGU) W QTPMGU DyBDvBC=QplrmUDyBDvBCQplrmU QTPMGU : QTPMGUQTPMGUU SyxCBuBkBunDyBDvBC = Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_yxCBuBkBunQTPMGU) W QTPMGU DyBDvBC=QplrmUDyBDvBCQplrmU QTPMGU : QTPMGUQTPMGUU SjxCzBm_AxBuCjxCmy = (xsm) Smyxn-QzmU9Bm1qmxrs(QTPMGUjxCzBm_AxBuCjxCmyQTPMGU)U xA (VSjxCzBm_AxBuCjxCmy )SjxCzBm_AxBuCjxCmy = OKU BDyr QTPMGUQumUqQzmUQumUuFEBu Aro=QplrmUjqt-jxCzBm-mxmuBQplrmUQzmUQTPMGU . __(QTPMGU#xmuB jyBs urzzBC xsQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGU: QumUxsqlm mhqB=QplrmUmBimQplrmU kFulB=QplrmUQTPMGU . SmxmuB . QTPMGUQplrmU sFtB=QplrmUjqt_jxCzBm_mxmuBQplrmU xC=QplrmUjqt-jxCzBm-mxmuBQplrmU DuFnn=QplrmUjxCBAFmQplrmU /QzmUQumU/uFEBuQzmUQumU/qQzmUQTPMGUU BDyr QTPMGUQumUqQzmUQumUuFEBu Aro=QplrmUjqt-jxCzBm-mxmuBNQplrmUQzmUQTPMGU . __(QTPMGU#xmuB jyBs urzzBC rlmQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGU: QumUxsqlm mhqB=QplrmUmBimQplrmU kFulB=QplrmUQTPMGU . SmxmuBN . QTPMGUQplrmU sFtB=QplrmUjqt_jxCzBm_mxmuBNQplrmU xC=QplrmUjqt-jxCzBm-mxmuBNQplrmU DuFnn=QplrmUjxCBAFmQplrmU /QzmUQumU/uFEBuQzmUQumU/qQzmUQTPMGUU BDyr QTPMGUQumUqQzmUQumUEQzmUQTPMGU . __(QTPMGUfCkFsDBC 1qmxrsnQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/EQzmUQumU/qQzmUQTPMGUU BDyr QTPMGUQumUqQzmUQumUuFEBu Aro=QplrmUjqt-jxCzBm-yxCBonnQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU kFulB=QplrmUOQplrmU sFtB=QplrmUjqt_jxCzBm_yxCBonnQplrmU xC=QplrmUjqt-jxCzBm-yxCBonnQplrmUQTPMGU . SonnDyBDvBC . QTPMGU /QzmU QTPMGU . __(QTPMGU8xCB $$ 4xsvQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/uFEBuQzmUQumU/qQzmUQTPMGUU BDyr QTPMGUQumUqQzmUQumUuFEBu Aro=QplrmUjqt-jxCzBm-yxCBoBzxnmBoQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU kFulB=QplrmUOQplrmU sFtB=QplrmUjqt_jxCzBm_yxCBoBzxnmBoQplrmU xC=QplrmUjqt-jxCzBm-yxCBoBzxnmBoQplrmUQTPMGU . SoBzxnmBoDyBDvBC . QTPMGU /QzmU QTPMGU . __(QTPMGU8xCB BzxnmBo 4xsvQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/uFEBuQzmUQumU/qQzmUQTPMGUU BDyr QTPMGUQumUqQzmUQumUuFEBu Aro=QplrmUjqt-jxCzBm-srurzxsEriQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU kFulB=QplrmUOQplrmU sFtB=QplrmUjqt_jxCzBm_srurzxsEriQplrmU xC=QplrmUjqt-jxCzBm-srurzxsEriQplrmUQTPMGU . SsrurzxsEriDyBDvBC . QTPMGU /QzmU QTPMGU . __(QTPMGU1suh CxnquFh xA tBtEBo xn urzzBC xsQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/uFEBuQzmUQumU/qQzmUQTPMGUU BDyr QTPMGUQumUqQzmUQumUuFEBu Aro=QplrmUjqt-jxCzBm-yxCBuBkBunQplrmUQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU kFulB=QplrmUOQplrmU sFtB=QplrmUjqt_jxCzBm_yxCBuBkBunQplrmU xC=QplrmUjqt-jxCzBm-yxCBuBkBunQplrmUQTPMGU . SyxCBuBkBunDyBDvBC . QTPMGU /QzmU QTPMGU . __(QTPMGU8xCB tBtEBonyxq uBkBunQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/uFEBuQzmUQumU/qQzmUQTPMGUU BDyr QTPMGUQumUqQzmUQumUuFEBu Aro=QplrmUjqt-jxCzBm-AxBuCjxCmyQplrmUQzmUQTPMGU . __(QTPMGU?xCmy rA 4rzxs axBuCnQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumUEo /QzmUQumUxsqlm mhqB=QplrmUmBimQplrmU kFulB=QplrmUQTPMGU . SjxCzBm_AxBuCjxCmy . QTPMGUQplrmU sFtB=QplrmUjqt_jxCzBm_AxBuCjxCmyQplrmU xC=QplrmUjqt-jxCzBm-AxBuCjxCmyQplrmU nxgB=QplrmULQplrmU /QzmUQumU/uFEBuQzmUQumU/qQzmUQTPMGUU xA (xnnBm(S_01$#[QTPMGUjqt_jxCzBm_mxmuBQTPMGU])) { xA (Vmoxt(S_01$#[QTPMGUjqt_jxCzBm_mxmuBQTPMGU]) )S_01$#[QTPMGUjqt_jxCzBm_mxmuBQTPMGU] = __(QTPMGU3BtEBonyxq cBmFxuQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U xA (Vmoxt(S_01$#[QTPMGUjqt_jxCzBm_mxmuBNQTPMGU]) )S_01$#[QTPMGUjqt_jxCzBm_mxmuBNQTPMGU] = __(QTPMGU4rzxs $mFmlnQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U Smyxn-QzmU$FkB1qmxrs(QTPMGUjxCzBm_mxmuBQTPMGU, S_01$#[QTPMGUjqt_jxCzBm_mxmuBQTPMGU])U Smyxn-QzmU$FkB1qmxrs(QTPMGUjxCzBm_mxmuBNQTPMGU, S_01$#[QTPMGUjqt_jxCzBm_mxmuBNQTPMGU])U Smyxn-QzmU$FkB1qmxrs(QTPMGUjxCzBm_yxCBonnQTPMGU, S_01$#[QTPMGUjqt_jxCzBm_yxCBonnQTPMGU])U Smyxn-QzmU$FkB1qmxrs(QTPMGUjxCzBm_yxCBoBzxnmBoQTPMGU, S_01$#[QTPMGUjqt_jxCzBm_yxCBoBzxnmBoQTPMGU])U Smyxn-QzmU$FkB1qmxrs(QTPMGUjxCzBm_srurzxsEriQTPMGU, S_01$#[QTPMGUjqt_jxCzBm_srurzxsEriQTPMGU])U Smyxn-QzmU$FkB1qmxrs(QTPMGUjxCzBm_yxCBuBkBunQTPMGU, S_01$#[QTPMGUjqt_jxCzBm_yxCBuBkBunQTPMGU])U Smyxn-QzmU$FkB1qmxrs(QTPMGUjxCzBm_AxBuCjxCmyQTPMGU, (xsm) S_01$#[QTPMGUjqt_jxCzBm_AxBuCjxCmyQTPMGU])U } } AlsDmxrs 1suh$yrj0oBk2Bim4xsvnaro4BkBu(SjyBoB) { xA (xn_FCtxs ()){ oBmlos SjyBoBU } xA (VSmyxn-QzmU9Bm1qmxrs(QTPMGUrsuh_nyrj_DrsmBsm_Aro_uBkBuQTPMGU)){ oBmlos SjyBoBU } SqormBDmBC = Smyxn-QzmU0ormBDmBC7Cn()U SqormBDmBC[]=PU SqormBDmBC = xtqurCB(QTPMGU,QTPMGU, SqormBDmBC)U SjyBoB.=QplrmU f2c q.7c 21# 72 ({SqormBDmBC})QplrmUU oBmlos SjyBoBU } AlsDmxrs 1suh$yrjdrsmBsmaro4BkBu(SDrsmBsm) { zurEFu SjqCEU xA ((xn_nxszuB() QFtqUQFtqU (SDrsmBsm-QzmUplBoh[QTPMGUsFtBQTPMGU] || SDrsmBsm-QzmUplBoh[QTPMGUqQTPMGU])) || (xn_qFzB() QFtqUQFtqU (SDrsmBsm-QzmUplBoh[QTPMGUqFzBsFtBQTPMGU] || SDrsmBsm-QzmUplBoh[QTPMGUqFzB_xCQTPMGU]))) oBmlos SDrsmBsmU Sxn_nBFoDy = xn_nBFoDy()U SBiDulCB_xCn = Sxn_nBFoDy W Smyxn-QzmUbiDulCB0FzBn(FooFh()) : FooFh()U xA (Vxn_FCtxs()) { xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUrsuh_nyrj_DrsmBsm_Aro_uBkBuQTPMGU) 1 (Smyxn-QzmU9Bm1qmxrs(QTPMGUyxCB_Aort_nBFoDyQTPMGU) QFtqUQFtqU Sxn_nBFoDy) 1 (xn_ABBC() QFtqUQFtqU (xnnBm(S_9b#[QTPMGUjqtABBCvBhQTPMGU]) || Smyxn-QzmU9Bm1qmxrs(QTPMGUonn_yxCB_qormBDmBCQTPMGU)))) { SxC = S941ef4$[QTPMGUDlooBsm_lnBoQTPMGU]-QzmU7cU xA (xn_ABBC() QFtqUQFtqU xnnBm(S_9b#[QTPMGUjqtABBCvBhQTPMGU])) { SjqtABBCvBh = S_9b#[QTPMGUjqtABBCvBhQTPMGU]U SxC = Smyxn-QzmU!BoxAhaBBC5Bh(SjqtABBCvBh)U } xA (SxC) { xA (VS941ef4$[QTPMGUDlooBsm_lnBoQTPMGU]-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU] || xn_ABBC()) { Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SuBkBun = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SxC, AFunB, molB)U SqormBDmBC = Smyxn-QzmU0ormBDmBC7Cn()U SBsFEuBC_mhqBn = (FooFh) Smyxn-QzmU9Bm1qmxrs(QTPMGUqormBDmBC_Dlnmrt_qrnm_mhqBnQTPMGU)U SBsFEuBC_mhqBn[]=QTPMGUqrnmQTPMGUU SBsFEuBC_mhqBn[]=QTPMGUqFzBQTPMGUU SBsFEuBC_mhqBn[]=QTPMGUFmmFDytBsmQTPMGUU SBsFEuBC_mhqBn = QplrmUQTPMGUQplrmU.xtqurCB(QplrmUQTPMGU,QTPMGUQplrmU,SBsFEuBC_mhqBn).QplrmUQTPMGUQplrmUU SFuu = SjqCE-QzmUzBm_Dru(QplrmU$b4bd# `7c` a 13 `{SjqCE-QzmUqrnmn}` ?8b b `qrnm_mhqB` 72 ({SBsFEuBC_mhqBn})QplrmU)U Slsq = FooFh_CxAA(SFuu, SqormBDmBC)U SxCn = FooFh_tBozB((FooFh) SxCn, (FooFh) Slsq)U SFuuqFzBn = SFuuqrnmn = AFunBU AroBFDy ((FooFh) SuBkBun f$ SuBkBu) { SFuuqrnmn = SFuuqrnmn | xnnBm(Sjqt_uBkBun[SuBkBu][QTPMGUFuuqrnmnQTPMGU])U SFuuqFzBn = SFuuqFzBn | xnnBm(Sjqt_uBkBun[SuBkBu][QTPMGUFuuqFzBnQTPMGU])U } xA (SFuuqFzBn) { SxCn = FooFh_tBozB(SxCn, SjqCE-QzmUzBm_Dru(QplrmU$b4bd# `7c` a 13 `{SjqCE-QzmUqrnmn}` ?8b b `qrnm_mhqB`=QTPMGUqFzBQTPMGU f2c `qrnm_nmFmln` 72 (QTPMGUqlEuxnyQTPMGU,QTPMGUqoxkFmBQTPMGU)QplrmU))U } BunB { AroBFDy ((FooFh) SuBkBun f$ SuBkBu) SxCn = FooFh_tBozB(SxCn, Si = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUqFzBnQTPMGU, SuBkBu))U } xA (SFuuqrnmn) { SxCn = FooFh_tBozB(SxCn, SjqCE-QzmUzBm_Dru(QplrmU$b4bd# `7c` a 13 `{SjqCE-QzmUqrnmn}` ?8b b `qrnm_mhqB`=QTPMGUqrnmQTPMGU f2c `qrnm_nmFmln` 72 (QTPMGUqlEuxnyQTPMGU,QTPMGUqoxkFmBQTPMGU)QplrmU))U } BunB { AroBFDy ((FooFh) SuBkBun f$ SuBkBu) SxCn = FooFh_tBozB(SxCn, Si = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUqrnmnQTPMGU, SuBkBu))U } Ssr_FDDBnn_xCn = FooFh_CxAA(SFuu, SxCn)U SBiDulCB_xCn = FooFh_tBozB(SBiDulCB_xCn, Ssr_FDDBnn_xCn)U } }BunB{ xA(Vxn_ABBC()){ SBiDulCB_xCn = Smyxn-QzmU0ormBDmBC7Cn()U } } } } xA (Drlsm(SBiDulCB_xCn)) { SBiDulCB_xCn = FooFh_lsxplB(FooFh_tBozB(SBiDulCB_xCn, (FooFh) SDrsmBsm-QzmUplBoh_kFon[QTPMGUqrnm__srm_xsQTPMGU]))U SDrsmBsm-QzmUplBoh_kFon[QTPMGUqrnm__srm_xsQTPMGU] = SBiDulCB_xCnU } } AlsDmxrs 1suh4xnm0FzBnaro4BkBu(SqFzBn) { xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUrsuh_nyrj_DrsmBsm_Aro_uBkBuQTPMGU) QFtqUQFtqU VS941ef4$[QTPMGUDlooBsm_lnBoQTPMGU]-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]) { xA (S941ef4$[QTPMGUDlooBsm_lnBoQTPMGU]-QzmU7c) { Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SuBkBun = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(S941ef4$[QTPMGUDlooBsm_lnBoQTPMGU]-QzmU7c, AFunB, molB)U SFuuqFzBn = AFunBU AroBFDy ((FooFh) SuBkBun f$ SuBkBu) { SFuuqFzBn = SFuuqFzBn | xnnBm(Sjqt_uBkBun[SuBkBu][QTPMGUFuuqFzBnQTPMGU])U } xA (SFuuqFzBn )oBmlos SqFzBnU SqormBDm = Smyxn-QzmU0ormBDmBC7Cn()U SiqFzBn = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUqFzBnQTPMGU)U SFuurjBC = FooFh()U AroBFDy ((FooFh) SuBkBun f$ SuBkBu) { SFuurjBC = FooFh_tBozB((FooFh) SFuurjBC, (FooFh) SiqFzBn[SuBkBu])U } SqFzBn = FooFh_tBozB(SqFzBn, FooFh_CxAA(SqormBDm, SFuurjBC))U } BunB { SqFzBn = FooFh_tBozB(SqFzBn, Smyxn-QzmU0ormBDmBC7Cn())U } SqFzBn = FooFh_lsxplB(SqFzBn)U Sv = FooFh_nBFoDy(QTPMGUQTPMGU, SqFzBn)U xA (Sv V== AFunB )lsnBm(SqFzBn[Sv])U } oBmlos SqFzBnU } AlsDmxrs 1suh4xnmdFmnaro4BkBu(SDFmn) { zurEFu SDlooBsm_lnBoU xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUrsuh_nyrj_DrsmBsm_Aro_uBkBuQTPMGU) QFtqUQFtqU VS941ef4$[QTPMGUDlooBsm_lnBoQTPMGU]-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]) { Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SuBkBun = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SDlooBsm_lnBo-QzmU7c, AFunB, molB)U SsrmFuurjBC = Smyxn-QzmUfuudFmBzroxBnU SFuurjBC = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUDFmBzroxBnQTPMGU, SuBkBun)U AroBFDy ((FooFh) SsrmFuurjBC f$ Sx =QzmU SDFm) { xA (xs_FooFh(SDFm, SFuurjBC) || VSmyxn-QzmUdFm0ormBDmBC(SDFm)) { lsnBm(SsrmFuurjBC[Sx])U } } xA (Drlsm(SsrmFuurjBC)) { SsrmFuurjBC[] = PU SsrmFuurjBC = xtqurCB(QTPMGU,QTPMGU, SsrmFuurjBC)U SDFmn.=QplrmU f2c m.mBot_xC 21# 72 ({SsrmFuurjBC}) QplrmUU } } oBmlos SDFmnU } AlsDmxrs dFmBzroharot(SmFz) { SFCC=Btqmh(SmFz-QzmUmBot_xC)U SmFi=zBm_mFirsrth(SFCCWSmFz:SmFz-QzmUmFirsrth)U SmFi_uFEBu = SmFi-QzmUuFEBun-QzmUnxszluFo_sFtBU xA(VSmFi_uFEBu){ SmFi_uFEBu = SmFi-QzmUuFEBun-QzmUsFtBU } xA (SFCC) { SDyBDvBC = (xsm) Smyxn-QzmUdFm0ormBDmBC(SmFz-QzmUmBot_xC)U } BunB { SDyBDvBC = (xsm) Smyxn-QzmU9Bm1qmxrs(QTPMGUCBAFlum_qormBDmQTPMGU)U } SDyvhBn = SDyBDvBC W QTPMGUDyBDvBC=QplrmUDyBDvBCQplrmUQTPMGU : QTPMGUQTPMGUU SDyvsr = SDyBDvBC W QTPMGUQTPMGU : QTPMGUDyBDvBC=QplrmUDyBDvBCQplrmUQTPMGUU SuEu = nqoxsmA(__(QTPMGU0ormBDm myxn %nWQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU), SmFi_uFEBu)U ShBn = __(QTPMGU
BnQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U Ssr = __(QTPMGU2rQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U xA(SFCC){ BDyr QumUQumUQumU$# 729YRRRRQumUCxk DuFnn=QplrmUArot-AxBuCQplrmUQzmUYRRRRRQumUuFEBuQzmU{SuEu}QumU/uFEBuQzmUYRRRRRQumUuFEBu nmhuB=QplrmUCxnquFh:xsuxsBQplrmUQzmUQumUxsqlm nmhuB=QplrmUjxCmy:FlmrQplrmU mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUjutBtEBo_qormBDm_DFmBzrohQplrmU {SDyvhBn} kFulB=QplrmUhBnQplrmU /QzmU {ShBn}QumU/uFEBuQzmU QFtqUsEnqU QumUuFEBu nmhuB=QplrmUCxnquFh:xsuxsBQplrmUQzmUQumUxsqlm nmhuB=QplrmUjxCmy:FlmrQplrmU mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUjutBtEBo_qormBDm_DFmBzrohQplrmU {SDyvsr} kFulB=QplrmUsrQplrmU /QzmU {Ssr}QumU/uFEBuQzmUYRRRRQumU/CxkQzmUY$# 729UY}BunB{ BDyr QumUQumUQumU$# 729YRRRRQumUmo DuFnn=QplrmUArot-AxBuCQplrmUQzmUYRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SuEu}QumU/myQzmUYRRRRRQumUmCQzmUQumUuFEBu nmhuB=QplrmUCxnquFh:xsuxsBQplrmUQzmUQumUxsqlm nmhuB=QplrmUjxCmy:FlmrQplrmU mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUjutBtEBo_qormBDm_DFmBzrohQplrmU {SDyvhBn} kFulB=QplrmUhBnQplrmU /QzmU {ShBn}QumU/uFEBuQzmU QFtqUsEnqU QumUuFEBu nmhuB=QplrmUCxnquFh:xsuxsBQplrmUQzmUQumUxsqlm nmhuB=QplrmUjxCmy:FlmrQplrmU mhqB=QplrmUoFCxrQplrmU sFtB=QplrmUjutBtEBo_qormBDm_DFmBzrohQplrmU {SDyvsr} kFulB=QplrmUsrQplrmU /QzmU {Ssr}QumU/uFEBuQzmUQumU/mCQzmUYRRRRQumU/moQzmUY$# 729UY} } AlsDmxrs $FkBdFmBzroh(SxC) { zurEFu SjqCEU SxC=FEn(SxC)U njxmDy(S_01$#[QTPMGUjutBtEBo_qormBDm_DFmBzrohQTPMGU]){ DFnB QTPMGUhBnQTPMGU: Smyxn-QzmUdFm0ormBDmBC(SxC, QTPMGU
QTPMGU)U EoBFvU DFnB QTPMGUsrQTPMGU: Smyxn-QzmUdFm0ormBDmBC(SxC, QTPMGU2QTPMGU)U EoBFvU } } AlsDmxrs 0orAxuB0FzB() { zurEFu SDlooBsm_lnBoU SqorAxuBlnBo = Smyxn-QzmU9Bm_;nBocFmF(S941ef4$[QTPMGUqorAxuBlnBoQTPMGU]-QzmU7c)U StuBkBun = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SqorAxuBlnBo-QzmU7c)U xA (SDlooBsm_lnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]) { SDlnmrt_AxBuCn_Arot = Smyxn-QzmU9Bmdlnmrt BzaxBuCn()U }BunB{ SDlnmrt_AxBuCn_Arot = Smyxn-QzmU9Bmdlnmrt BzaxBuCn(StuBkBun)U } SDlnmrt_AxBuCn = xtqurCB(QTPMGUQTPMGU,SDlnmrt_AxBuCn_Arot)U SDlnmrt_AxBuCn = nmo_oBquFDB(FooFh(QTPMGUQumUmC DuFnn=QplrmUuFEBuQplrmUQzmUQTPMGU,QTPMGUQumU/mCQzmUQumUmCQTPMGU),FooFh(QTPMGUQumUmy nDrqB=QplrmUorjQplrmUQzmUQTPMGU,QTPMGUQumU/myQzmUQumUmCQTPMGU),SDlnmrt_AxBuCn)U SqrnmCFmF = SlnBo_Dlnmrt_AxBuCn = Smyxn-QzmU9Bm;nBodlnmrtaxBuCn(SqorAxuBlnBo-QzmU7c)U SqrnmCFmF = FooFh_xsmBonBDm_vBh(SqrnmCFmF, SDlnmrt_AxBuCn_Arot)U SlnBo_Dlnmrt_AxBuCn = FooFh_CxAA_vBh(SlnBo_Dlnmrt_AxBuCn, SDlnmrt_AxBuCn_Arot)U SyFnmrn = xnnBm(SlnBo_Dlnmrt_AxBuCn[QTPMGUmBotn_rA_nBokxDBQTPMGU])U xA (SDlooBsm_lnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU] QFtqUQFtqU SlnBo_Dlnmrt_AxBuCn) { AroBFDy(SlnBo_Dlnmrt_AxBuCn f$ SDlnmrt_sFtB =QzmU SDlnmrt_kFulB){ xA(SDlnmrt_sFtBV=QTPMGUmBotn_rA_nBokxDBQTPMGU){ SDlnmrt_AxBuCn.=QTPMGUQumUmoQzmUQumUmy nDrqB=QplrmUorjQplrmUQzmUQumUnqFs nmhuB=QplrmUDruro:zoFhQplrmUQzmUQTPMGU.SDlnmrt_sFtB.QTPMGUQumU/nqFsQzmUQumU/myQzmUQumUmCQzmUQTPMGUU SDlnmrt_AxBuCn.=QTPMGUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUQTPMGU.SDlnmrt_sFtB.QTPMGUQplrmU kFulB=QplrmUQTPMGU.ymtuBsmxmxBn(nmoxqnuFnyBn(xtqurCB(QTPMGU QTPMGU,(FooFh)SDlnmrt_kFulB)),b2#_&;1#b$).QTPMGUQplrmU /QzmUQTPMGUU SDlnmrt_AxBuCn.=QTPMGUQumU/mCQzmUQumU/moQzmUQTPMGUU } } } xA(SyFnmrn){ SDlnmrt_AxBuCn.=QTPMGUQumUmoQzmUQumUmy nDrqB=QplrmUorjQplrmUQzmUQTPMGU.__(QTPMGU#Botn rA $BokxDBQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU).QTPMGUQumU/myQzmUQumUmCQzmUQTPMGUU xA(SlnBo_Dlnmrt_AxBuCn[QTPMGUmBotn_rA_nBokxDBQTPMGU]){ SDlnmrt_AxBuCn.=QTPMGUfDDBqmBCQTPMGUU }BunB{ SDlnmrt_AxBuCn.=QTPMGUQFtqUsEnqUQTPMGUU } SDlnmrt_AxBuCn.=QTPMGUQumU/mCQzmUQumU/moQzmUQTPMGUU } SDlnmrt_AxBuCn_yBFCxsz = SDlnmrt_AxBuCn W __(QTPMGUQumUyMQzmUfCCxmxrsFu BzxnmoFmxrs 7sArotFmxrsQumU/yMQzmUQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) : QTPMGUQTPMGUU SDlnmrt_AxBuCn = SDlnmrt_AxBuCn W SDlnmrt_AxBuCn_yBFCxsz.QTPMGUQumUmFEuB DuFnn=QplrmUArot-mFEuB jqt_oBzxnmoFmxrs ?xny4xnm3BtEBodlnmrtaxBuCnQplrmUQzmUQTPMGU.SDlnmrt_AxBuCn.QTPMGUQumU/mFEuBQzmUQTPMGU : QTPMGUQTPMGUU xA(SDlnmrt_AxBuCn){ SDlnmrt_AxBuCn.=QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUjut_Dlnmrt_AxBuCn_qorAxuBQplrmU kFulB=QplrmUQTPMGU.xtqurCB(QTPMGU,QTPMGU,FooFh_vBhn(SDlnmrt_AxBuCn_Arot)).QTPMGUQplrmU /QzmUQTPMGUU xA (SDlooBsm_lnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU] QFtqUQFtqU SlnBo_Dlnmrt_AxBuCn) { SDlnmrt_AxBuCn.=QTPMGUQumUxsqlm mhqB=QplrmUyxCCBsQplrmU sFtB=QplrmUjut_Dlnmrt_AxBuCn_qorAxuB_yxCCBsQplrmU kFulB=QplrmUQTPMGU.xtqurCB(QTPMGU,QTPMGU,FooFh_vBhn(SlnBo_Dlnmrt_AxBuCn)).QTPMGUQplrmU /QzmUQTPMGUU } SqrnmCFmF = wnrs_BsDrCB(FooFh_CxAA((FooFh)SqrnmCFmF,FooFh(QTPMGUQTPMGU)))U BDyr QumUQumUQumU$# 729YQumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUYkFo jut_oBzArot_kFulBn = BkFu({SqrnmCFmF})UYQumU/nDoxqmQzmUYQumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmU noD=QplrmU{Smyxn-QzmUqulzxs; 4}/wn/oBzArot_qoBAxuu.wnQplrmUQzmUQumU/nDoxqmQzmUY$# 729UY} StFxuDyBDv = SqorAxuBlnBo-QzmUjut_lsnlEnDoxEB == O W QTPMGUQTPMGU : QTPMGUDyBDvBC=QplrmUmolBQplrmUQTPMGUU SmimPO = __(QTPMGU3Fxuxsz 4xnm $lEnDoxqmxrsQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPN = __(QTPMGU$lEnDoxEB mr 3Fxuxsz 4xnmQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U StFxuxszuxnm = QumUQumUQumU$# 729Y QumUmo kFuxzs=QplrmUmrqQplrmUQzmUY QumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimPO}QumU/myQzmUY QumUmCQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUjut_lsnlEnDoxEBQplrmU kFulB=QplrmUOQplrmU {StFxuDyBDv} /QzmU {SmimPN}QumU/uFEBuQzmUQumU/mCQzmUY QumU/moQzmUY$# 729UYxA (SDlooBsm_lnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]) { Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Srqmxrsn = FooFh()U AroBFDy ((FooFh) Sjqt_uBkBun f$ SxC =QzmU SuBkBu) { SDyBDvBC = xs_FooFh(SxC, StuBkBun) W QTPMGUDyBDvBC=QplrmUmolBQplrmUQTPMGU : QTPMGUQTPMGUU xA (SDyBDvBC) { SmisxC = QTPMGUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUmisxC[QTPMGU . SxC . QTPMGU]QplrmU kFulB=QplrmUQTPMGU . Smyxn-QzmU9Bm3BtEBonyxq4BkBun#is7c(SqorAxuBlnBo-QzmU7c, SxC) . QTPMGUQplrmU nxgB=QplrmUMPQplrmU /QzmUQTPMGUU SukumxtB = QTPMGUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUukumxtB[QTPMGU . SxC . QTPMGU]QplrmU kFulB=QplrmUQTPMGU . ztCFmB(QTPMGUa C,
y:x:nFQTPMGU, Smyxn-QzmU;nBo4BkBu#xtBnmFtq(SqorAxuBlnBo-QzmU7c, SxC)+Smyxn-QzmU93#) . QTPMGUQplrmU nxgB=QplrmUMPQplrmU /QzmUQTPMGUU } BunB { SmisxC=QTPMGUQTPMGUU SukumxtB = QTPMGUQTPMGUU } Srqmxrsn[] = QTPMGUQumUmoQzmUQumUmC nmhuB=QplrmUqFCCxsz:PUtFozxs:PQplrmUQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUjqt_uBkBun[]QplrmU kFulB=QplrmUQTPMGU . SxC . QTPMGUQplrmU QTPMGU . SDyBDvBC . QTPMGU /QzmU QTPMGU . SnmoxvB . SuBkBu[QTPMGUsFtBQTPMGU] . SnmoxvBN . QTPMGUQumU/uFEBuQzmUQumU/mCQzmUQumUmC nmhuB=QplrmUqFCCxsz:P P P OPqiUtFozxs:PQplrmUQzmUQTPMGU . SmisxC . QTPMGUQumU/mCQzmUQumUmC nmhuB=QplrmUqFCCxsz:P P P OPqiUtFozxs:PQplrmUQzmUQTPMGU . SukumxtB . QTPMGUQumU/mCQzmUQumU/moQzmUQTPMGUU } Srqmxrsn = QTPMGUQumUmFEuB DBuuqFCCxsz=QplrmUPQplrmU DBuunqFDxsz=QplrmUPQplrmUQzmUQumUmoQzmUQumUmC nmhuB=QplrmUqFCCxsz:PUtFozxs:PUArsm-nxgB:OBtQplrmUQzmUQTPMGU . __(QTPMGU4BkBuQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/mCQzmUQumUmC nmhuB=QplrmUqFCCxsz:P KqiUtFozxs:PUArsm-nxgB:OBtUmBim-Fuxzs:DBsmBoQplrmUQzmUQTPMGU . __(QTPMGU#oFsnFDmxrs 7cQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/mCQzmUQumUmC nmhuB=QplrmUqFCCxsz:P KqiUtFozxs:PUArsm-nxgB:OBtUmBim-Fuxzs:DBsmBoQplrmUQzmUQTPMGU . __(QTPMGUcFmB fCCBC mr 4BkBuQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU) . QTPMGUQumU/mCQzmUQumU/moQzmUQTPMGU . xtqurCB(QTPMGUQTPMGU, Srqmxrsn) . QTPMGUQumU/mFEuBQzmUQTPMGUU SoBzxnmBoBC = CFmB(QTPMGUa C,
y:xFQTPMGU, Smyxn-QzmU;nBo BzxnmBoBC(SqorAxuBlnBo))U SoBzxq = SqorAxuBlnBo-QzmUjqt_oBzxnmoFmxrs_xqU SuFnmurzxs = ztCFmB(QplrmUa C,
y:xFQplrmU, SqorAxuBlnBo-QzmUjqt_urzxs_CFmB+Smyxn-QzmU93#)U Surzxsxq = SqorAxuBlnBo-QzmUjqt_urzxs_xqU SEuFDvuxnmlou = Smyxn-QzmU9Bm3Bsl(QTPMGUtBtEBonQTPMGU)U SEuFDvuxnmlou = SEuFDvuxnmlou-QzmU; 4 . QTPMGUQFtqUtrCB=EuFDvuxnmQTPMGUU SBEuFDvuxnmlou = SEuFDvuxnmlou . QTPMGUQFtqUBFqqBsC=QTPMGU . SqorAxuBlnBo-QzmUlnBo_BtFxuU SEuFDvuxnmlou = SEuFDvuxnmlou . QTPMGUQFtqUFqqBsC=QTPMGUU xA (VSqorAxuB_lnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]) { SmimPO = __(QTPMGU4rzxs 4xtxmQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPOE = __(QTPMGU70n 4rzzBC xs #rCFhQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPN = __(QTPMGU$qBDxFu !FulBn:QTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPM = __(QTPMGUQumUEQzmUPQumU/EQzmU ro euFsv: ;nB CBAFlum nBmmxsznQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPL = __(QTPMGUQumUEQzmU-OQumU/EQzmU: 2r uxtxm Aro myxn lnBoQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U Surzxsuxtxm = QumUQumUQumU$# 729YRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimPO}QumU/myQzmUYRRRRRRQumUmCQzmUYRRRRRRRQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjqt_urzxs_uxtxmQplrmU kFulB=QplrmU{SqorAxuBlnBo-QzmUjqt_urzxs_uxtxm}QplrmU nxgB=QplrmUMQplrmU nmhuB=QplrmUjxCmy:KPqiQplrmU /QzmU 70n qBo CFhQumUEo /QzmUYRRRRRRR{SmimPN}QumUEo /QzmUYRRRRRRRRQFtqUoFplrU {SmimPM}QumUEo /QzmUYRRRRRRRRQFtqUoFplrU {SmimPL}YRRRRRRQumU/mCQzmUYRRRRRQumU/moQzmUY$# 729UYSDlooBsm_urzzBCxs = (FooFh) SqorAxuBlnBo-QzmUjqt_urzxs_DrlsmBoU SmrCFh = CFmB(QTPMGU
tCQTPMGU)U AroBFDy ((FooFh) SDlooBsm_urzzBCxs f$ Sv =QzmU Sk) { xA (Sk V= SmrCFh )lsnBm(SDlooBsm_urzzBCxs[Sv])U } xA (Drlsm(SDlooBsm_urzzBCxs)) { SoBnBm_uxtxm_DrlsmBo = __(QTPMGU BnBm 4xtxm drlsmBoQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SoBnBm_uxtxm_DrlsmBoN = QTPMGUQumUCxkQzmUQumUuFEBuQzmUQumUxsqlm mhqB=QplrmUDyBDvEriQplrmU sFtB=QplrmUjut_oBnBm_uxtxm_DrlsmBoQplrmU kFulB=QplrmUOQplrmU /QzmU QTPMGU . SoBnBm_uxtxm_DrlsmBo . QTPMGUQumU/uFEBuQzmUQumU/CxkQzmUQTPMGUU SDlooBsm_urzzBCxs = xtqurCB(QTPMGUQumUEo /QzmUQTPMGU, FooFh_vBhn((FooFh) SDlooBsm_urzzBCxs))U } BunB { SDlooBsm_urzzBCxs = __(QTPMGU#yxn lnBo yFn srm hBm urzzBC xs Aro myB CFhQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U } SDlooBsm_urzzBCxs = QumUQumUQumU$# 729YRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimPOE}QumU/myQzmUYRRRRRRQumUmCQzmUYRRRRRRR{SDlooBsm_urzzBCxs}YRRRRRRR{SoBnBm_uxtxm_DrlsmBoN}YRRRRRRQumU/mCQzmUY$# 729UY} SCBuBmB = QTPMGUQTPMGUU xA (SDlooBsm_lnBo-QzmU7c V= SqorAxuBlnBo-QzmU7c QFtqUQFtqU SqorAxuBlnBo-QzmU7c QzmU O) { SmimPO = __(QTPMGU;qCFmB 3BtEBo 0orAxuBQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPN = __(QTPMGUcBuBmB #yxn 3BtEBoQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPM = __(QTPMGU?FosxszV\\s\\sfoB hrl nloB hrl jFsm mr CBuBmB myxn lnBoWQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPL = __(QTPMGU4Fnm ?FosxszV\\s\\sfoB hrl oBFuuh nloB myFm hrl jFsm mr CBuBmB myxn lnBoW\\s2rmB myFm myxn FDmxrs DFssrm EB lsCrsB.QTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SCBuBmB = QumUQumUQumU$# 729YRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmUQumU/myQzmUYRRRRRRQumUmCQzmUYRRRRRRRQumUxsqlm DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU mhqB=QplrmUnlEtxmQplrmU kFulB=QplrmU{SmimPO}QplrmU /QzmUYRRRRRRRQumUxsqlm DuFnn=QplrmUElmmrs-nBDrsCFohQplrmU mhqB=QplrmUnlEtxmQplrmU sFtB=QplrmUjqt_CBuBmB_tBtEBoQplrmU kFulB=QplrmU{SmimPN}QplrmU rsDuxDv=QplrmUxA(DrsAxot(QTPMGU{SmimPM}QTPMGU) QFtqUQFtqU DrsAxot(QTPMGU{SmimPL}QTPMGU)){myxn.Arot.qFnnO.kFulB=QTPMGUQTPMGUUoBmlos molBU}BunB{oBmlos AFunBU}QplrmU /QzmUYRRRRRRQumU/mCQzmUYRRRRRQumU/moQzmUY$# 729UY} Sjqt_lnBoFCCoBnn = SqorAxuBlnBo-QzmUjqt_lnBoFCCoBnnU SDrlsmoxBn = QTPMGUQumUnBuBDm sFtB=QplrmUjqt_lnBoFCCoBnn[Drlsmoh]QplrmUQzmUQTPMGUU AroBFDy ((FooFh) Smyxn-QzmUdrlsmoxBn() f$ SDrlsmoh) { SnBuBDmBC = SDrlsmoh == SqorAxuBlnBo-QzmUjqt_lnBoFCCoBnn[QTPMGUDrlsmohQTPMGU] W QTPMGU nBuBDmBC=QplrmUmolBQplrmU QTPMGU : QTPMGUQTPMGUU SDrlsmoxBn.=QTPMGUQumUrqmxrsQTPMGU . SnBuBDmBC . QTPMGUQzmUQTPMGU . SDrlsmoh . QTPMGUQumU/rqmxrsQzmUQTPMGUU } SmimPO = __(QTPMGU3BtEBonyxq 4BkBuQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPN = __(QTPMGU BzxnmBoBCQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPM = __(QTPMGUb-tFxuQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPL = __(QTPMGUFCC mr EuFDvuxnmQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPK = __(QTPMGUcFmBQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPJ = __(QTPMGU4Fnm 4rzxsQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPI = __(QTPMGUfCCoBnnQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPH = __(QTPMGUdrtqFshQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimPG = __(QTPMGUdxmhQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimOP = __(QTPMGU$mFmBQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimOO = __(QTPMGU<xqQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SmimON = __(QTPMGUdrlsmohQTPMGU, QTPMGUjxnyuxnm-tBtEBoQTPMGU)U SjqtnmlAA = QumUQumUQumU$# 729YRRRRQumUyMQzmU?xny4xnm 3BtEBoQumU/yMQzmUYRRRRQumUmFEuB DuFnn=QplrmUArot-mFEuBQplrmUQzmUYRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimPO}QumU/myQzmUYRRRRRRQumUmCQzmU{Srqmxrsn}QumU/mCQzmUYRRRRRQumU/moQzmUY {StFxuxszuxnm}YRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimPN}QumU/myQzmUYRRRRRRQumUmCQzmU{SmimPM}: {SqorAxuBlnBo-QzmUlnBo_BtFxu} QFtqUsEnqU QumUF yoBA=QplrmUFCtxs.qyq{SBEuFDvuxnmlou}QplrmUQzmU{SmimPL} QFtqUoFplrUQumU/FQzmUQumUEo /QzmU{SmimPK}: {SoBzxnmBoBC}QumUEo /QzmU70: {SoBzxq} QFtqUsEnqU QumUF yoBA=QplrmUFCtxs.qyq{SEuFDvuxnmlou}{SoBzxq}QplrmUQzmU{SmimPL} QFtqUoFplrUQumU/FQzmUQumU/mCQzmUYRRRRRQumU/moQzmUYRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimPJ}QumU/myQzmUYRRRRRRQumUmCQzmU{SmimPK}: {SuFnmurzxs}QumUEo /QzmU70: {Surzxsxq} QFtqUsEnqU QumUF yoBA=QplrmUFCtxs.qyq{SEuFDvuxnmlou}{Surzxsxq}QplrmUQzmU{SmimPL} QFtqUoFplrUQumU/FQzmUQumU/mCQzmUYRRRRRQumU/moQzmUYRRRRR{Surzxsuxtxm}YRRRRR{SDlooBsm_urzzBCxs}YRRRRR{SCBuBmB}YRRRRQumU/mFEuBQzmUYRRRRQumUyMQzmU{SmimPI}QumU/yMQzmUYRRRRQumUmFEuB DuFnn=QplrmUArot-mFEuBQplrmUQzmUYRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimPH}QumU/myQzmUYRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjqt_lnBoFCCoBnn[DrtqFsh]QplrmU kFulB=QplrmU{Sjqt_lnBoFCCoBnn[DrtqFsh]}QplrmU nxgB=QplrmUMPQplrmU /QzmUQumU/mCQzmUYRRRRRQumU/moQzmUYRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimPI}QumU/myQzmUYRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjqt_lnBoFCCoBnn[FCCoBnnO]QplrmU kFulB=QplrmU{Sjqt_lnBoFCCoBnn[FCCoBnnO]}QplrmU nxgB=QplrmULPQplrmU /QzmUQumUEo /QzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjqt_lnBoFCCoBnn[FCCoBnnN]QplrmU kFulB=QplrmU{Sjqt_lnBoFCCoBnn[FCCoBnnN]}QplrmU nxgB=QplrmULPQplrmU /QzmUQumU/mCQzmUYRRRRRQumU/moQzmUYRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimPG}QumU/myQzmUYRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjqt_lnBoFCCoBnn[Dxmh]QplrmU kFulB=QplrmU{Sjqt_lnBoFCCoBnn[Dxmh]}QplrmU nxgB=QplrmUMPQplrmU /QzmUQumU/mCQzmUYRRRRRQumU/moQzmUYRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimOP}QumU/myQzmUYRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjqt_lnBoFCCoBnn[nmFmB]QplrmU kFulB=QplrmU{Sjqt_lnBoFCCoBnn[nmFmB]}QplrmU nxgB=QplrmUMPQplrmU /QzmUQumU/mCQzmUYRRRRRQumU/moQzmUYRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimOO}QumU/myQzmUYRRRRRRQumUmCQzmUQumUxsqlm mhqB=QplrmUmBimQplrmU sFtB=QplrmUjqt_lnBoFCCoBnn[gxq]QplrmU kFulB=QplrmU{Sjqt_lnBoFCCoBnn[gxq]}QplrmU nxgB=QplrmUOPQplrmU /QzmUQumU/mCQzmUYRRRRRQumU/moQzmUYRRRRRQumUmo kFuxzs=QplrmUmrqQplrmUQzmUYRRRRRRQumUmy nDrqB=QplrmUorjQplrmUQzmU{SmimON}QumU/myQzmUYRRRRRRQumUmCQzmU{SDrlsmoxBn}QumU/mCQzmUYRRRRRQumU/moQzmUYRRRRQumU/mFEuBQzmUYYRRRR{SDlnmrt_AxBuCn}YY$# 729UY} BunB { SjqtnmlAA = QplrmUQumUmFEuB DuFnn=QTPMGUArot-mFEuBQTPMGUQzmU{StFxuxszuxnm}QumU/mFEuBQzmU{SDlnmrt_AxBuCn}QplrmUU } BDyr QumUQumUQumU$# 729YQumUCxk xC=QplrmU?xny4xnm3BtEBo;nBo0orAxuBQplrmUQzmUY{SjqtnmlAA}YQumU/CxkQzmUY$# 729UYSsrCB7sCBi = SDlooBsm_lnBo-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU] W P : MU BDyr QumUQumUQumU$# 729YRRRRQumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUYRRRRRAlsDmxrs 3rkB?43BtEBo(){YRRRRRRmoh{YRRRRRRRkFo i=CrDltBsm.zBmbuBtBsmeh7C(QTPMGU?xny4xnm3BtEBo;nBo0orAxuBQTPMGU)UYRRRRRRRkFo q=i.qFoBsm2rCBUYRRRRRRRkFo n=q.zBmbuBtBsmneh#Fz2FtB(QTPMGUyMQTPMGU)UYRRRRRRRq.xsnBomeBAroB(i,n[{SsrCB7sCBi}])UYRRRRRR}DFmDy(B){}YRRRRR}YRRRRR3rkB?43BtEBo()UYRRRRQumU/nDoxqmQzmUY$# 729UY} AlsDmxrs BjoxmB luBn(SoluBn=sluu) { SoluBn[QTPMGUoBzxnmBo/(.+W)QTPMGU] = QTPMGUxsCBi.qyqQTPMGUU oBmlos SoluBnU } AlsDmxrs 2rdrttBsmn() { oBmlos (Smyxn-QzmUqulzxscxo . QTPMGU/DrttBsmn.qyqQTPMGU)U } AlsDmxrs ?08BFC() { zurEFu SqrnmU BDyr QplrmUQumUV-- lssxsz ?xny4xnm 3BtEBo k{Smyxn-QzmU!Bonxrs} --QzmU\sQplrmUU xA (Sqrnm-QzmU7c == SjqtqFzB = Smyxn-QzmU3FzxD0FzB(AFunB)) { BDyr QTPMGUQumU3b#f 2f3b=QplrmU 1e1#$QplrmU d12#b2#=QplrmU2172cb>, 21a1441?QplrmU /QzmUQTPMGUU BDyr QplrmU\sQplrmUU BDyr QTPMGUQumU3b#f 2f3b=QplrmU91194be1#QplrmU d12#b2#=QplrmU21f d87!bQplrmU/ QzmUQTPMGUU BDyr QplrmU\sQplrmUU BDyr QTPMGUQumU3b#f 8##0-b&;7!=QplrmU0 f93fQplrmU d12#b2#=QplrmU21-dfd8bQplrmU/ QzmUQTPMGUU BDyr QplrmU\sQplrmUU BDyr QTPMGUQumU3b#f 8##0-b&;7!=QplrmUdfd8b-d12# 14QplrmU d12#b2#=QplrmU21-dfd8bQplrmU/ QzmUQTPMGUU BDyr QplrmU\sQplrmUU BDyr QTPMGUQumU3b#f 8##0-b&;7!=QplrmUb>07 b$QplrmU d12#b2#=QplrmU3rs, PN flz OGGG PO:PN:PM 93#QplrmUQzmUQTPMGUU BDyr QplrmU\sQplrmUU } BDyr QplrmUQumUnmhuB mhqB=QTPMGUmBim/DnnQTPMGUQzmU\sQplrmU . Smyxn-QzmU9Bm1qmxrs(QTPMGUnxCBEFo_jxCzBm_DnnQTPMGU) . QplrmU\s\s\sQplrmU . Smyxn-QzmU9Bm1qmxrs(QTPMGUurzxs_tBozBDrCB_DnnQTPMGU) . QplrmU\sQumU/nmhuBQzmUQplrmUU } AlsDmxrs $BsC&lBlBC3Fxu(Suxtxm=sluu) { zurEFu SjqCEU xsx_nBm(QTPMGUtBtroh_uxtxmQTPMGU, QTPMGUNKJ3QTPMGU)U nBm_mxtB_uxtxm(MJPP)U xA (xn_xsm(Suxtxm)) { Suxtxm+=PU } BunB { Suxtxm = Smyxn-QzmU9Bm1qmxrs(QTPMGUBtFxu_qBo_yrloQTPMGU) + PU } xA (Suxtxm QumU O) Suxtxm = ?43cbaf;4#b3f740b 81; U StFxun = SjqCE-QzmUzBm_oBnlumn(QplrmU$b4bd# `rqmxrs_sFtB`,`rqmxrs_kFulB` a 13 {SjqCE-QzmUrqmxrsn} ?8b b `rqmxrs_sFtB` 475b QTPMGU%jutBtEBo\_BtFxu\_plBlB\_%QTPMGU f2c `rqmxrs_sFtB` 21# 475b QTPMGUq%jutBtEBo\_BtFxu\_plBlB\_%QTPMGU 1 cb e
`rqmxrs_sFtB` f$d 4737# {Suxtxm}QplrmU)U SmrmFuDsm = PU SAFxuBCDsm = PU StFxuDsm = Drlsm(StFxun)U SAFxuBC_Foo = FooFh()U SCFmB_nBsm = QplrmUQplrmUU xA (StFxun) { SAFxuBC = FooFh()U AroBFDy ((FooFh) StFxun f$ StFxu) { SsFtB = StFxu-QzmUrqmxrs_sFtBU StFxu = tFhEB_lsnBoxFuxgB(StFxu-QzmUrqmxrs_kFulB)U xA (nmoqrn(StFxu[M], QTPMGUmBim/ymtuQTPMGU) V== AFunB) { SoBnlum = Smyxn-QzmU$BsC8#343Fxu(StFxu[P], StFxu[O], StFxu[N], StFxu[M])U } BunB { SoBnlum = Smyxn-QzmU$BsC3Fxu(StFxu[P], StFxu[O], StFxu[N], StFxu[M])U } xA (SoBnlum) { SmrmFuDsm++U } BunB { SBtFxu_xC = nlEnmo(SsFtB, P, nmoqrn(SsFtB, QTPMGUjutBtEBoQTPMGU))U SAFxuBC[SBtFxu_xC][] = StFxu[P]U } CBuBmB_rqmxrs(SsFtB)U } AroBFDy ((FooFh) SAFxuBC f$ SvBh =QzmU SBtFxu_FCCoBnnBn) { SEorFCDFnm = SjqCE-QzmUzBm_orj(QplrmU$b4bd# * a 13 QplrmU . SjqCE-QzmUqoBAxi . QplrmUjut_BtFxuEorFCDFnm ?8b b xC =QplrmU . SvBh)U xA (Vxn_sluu(SEorFCDFnm)) { xA (SEorFCDFnm-QzmUAFxuBC_FCCoBnn == QTPMGUQTPMGU) { SAFxuBC_Foo = (FooFh) SBtFxu_FCCoBnnBnU } BunB { SAFxuBC_BtFxun = BiqurCB(QTPMGU,QTPMGU, SEorFCDFnm-QzmUAFxuBC_FCCoBnn)U SAFxuBC_Foo = FooFh_tBozB((FooFh) SAFxuBC_BtFxun, (FooFh) SBtFxu_FCCoBnnBn)U } SAFxuBCDsm += Drlsm(SAFxuBC_Foo)U SAFxuBC_FCCoBnn = xtqurCB(QTPMGU,QTPMGU, SAFxuBC_Foo)U Sp = QplrmU;0cf#b QplrmU . SjqCE-QzmUqoBAxi . QplrmUjut_BtFxuEorFCDFnm $b# AFxuBC_FCCoBnn=QTPMGUQplrmU . SAFxuBC_FCCoBnn . QplrmUQTPMGU ?8b b xC =QplrmU . SvBhU xA (VSjqCE-QzmUplBoh(Sp)) { BDyr QTPMGUbooro $Fkxsz aFxuBC btFxunQTPMGUU } } } SCFmB_nBsm = CFmB(QplrmUa w,
, y:x:n fQplrmU)U Smyxn-QzmU$FkB1qmxrs(QTPMGU?43_4Fnm_&lBlB_$BsmQTPMGU, SCFmB_nBsm)U } Surz = QplrmUT$b2c729 &;b;bT=QzmU T4xtxm:QplrmU . Suxtxm . QplrmU T&lBoh drlsm:QplrmU . StFxuDsm . QplrmU T$Bsm:QplrmU . SmrmFuDsm . QplrmU TaFxuBC:QplrmU . SAFxuBCDsm . QplrmU T4Fnm &lBlB $Bsm:QplrmU . SCFmB_nBsmU SoBm = Smyxn-QzmU4rzbtFxueorFCDFnmfDmxkxmh(Surz)U oBmlos SmrmFuDsmU } AlsDmxrs $$bsDurnloB(SCFmF) { SFlmyBsmxDFmBCABBC = Smyxn-QzmU!BoxAhaBBC5Bh(S_9b#[QTPMGUjqtABBCvBhQTPMGU])U xA (SFlmyBsmxDFmBCABBC) { oBmlos SCFmFU } BunB { oBmlos QTPMGUQTPMGUU } } AlsDmxrs $DyBCluB BurFCfmmFDytBsmn() { jq_nDyBCluB_nxszuB_BkBsm(mxtB(), QTPMGUjxnyuxnmtBtEBo_FmmFDytBsmn_urFCQTPMGU)U nqFjs_Dors(mxtB())U } AlsDmxrs BurFCfmmFDytBsmn() { Smyxn-QzmUaxuB0ormBDm4rFCfmmFDytBsmn()U } AlsDmxrs jut_wplBoh_tBmyrC() { SEFnBsFtB=EFnBsFtB(S_$b !b [QTPMGU080_$b4aQTPMGU])U xA (xn_FCtxs()) { xA(S_9b#[QTPMGUqFzBQTPMGU] == Smyxn-QzmU3Bsl7c){ jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-DroBQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-CoFzzFEuBQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-nromFEuBQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-mFEnQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-oBnxgFEuBQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-CxFurzQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGU<Bor-duxqErFoCQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/wn/<BorduxqErFoC.wnQTPMGU, FooFh(QTPMGUwplBohQTPMGU), QTPMGUO.MQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGU<Bor-duxqErFoC-jutQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/wn/<BorduxqErFoC.jut.wn.qyqQTPMGU, FooFh(QTPMGUwplBohQTPMGU))U jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-mrrumxqQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/wn/wplBoh.mrrumxq.wnQTPMGU, FooFh(QTPMGUwplBohQTPMGU), QTPMGUO.MQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-mrrumxq-jutQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/wn/wplBoh.mrrumxq.jut.wnQTPMGU, FooFh(QTPMGUwplBohQTPMGU))U jq_BsplBlB_nDoxqm(QTPMGUwpllBoh-lx-CFmBqxDvBoQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/wn/wplBoh-lx-O.I.M.CFmBqxDvBo.txs.wnQTPMGU, FooFh(QTPMGUwplBohQTPMGU), QTPMGUO.MQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUmyxDvEriQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUjut_FCtxs_tFxs_wnQTPMGU, Smyxn-QzmUqulzxs; 4.QTPMGU/wn/FCtxs_tFxs.wnQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUjut_FCtxs_troB_wnQTPMGU, Smyxn-QzmUqulzxs; 4.QTPMGU/wn/FCtxs_troB.wnQTPMGU)U xA (S_9b#[QTPMGUjuQTPMGU] == QTPMGUnBmmxsznQTPMGU QFtqUQFtqU S_9b#[QTPMGUtrCBQTPMGU] == QTPMGUoBzqFzBQTPMGU QFtqUQFtqU S_9b#[QTPMGUtrCBNQTPMGU] == QTPMGUDlnmrtQTPMGU) { jq_BsplBlB_nDoxqm(QTPMGUwnrsNQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUjut_Dlnmrt_oBz_Arot_wnQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/wn/oBzxnmoFmxrs_Arot_EFDvBsC.wnQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUjut_Dlnmrt_oBz_Arot_DnnQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/Dnn/oBzxnmoFmxrs_Arot_EFDvBsC.DnnQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUjut_Dlnmrt_oBz_Arot_AorsmBsC_DnnQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/Dnn/oBzxnmoFmxrs_Arot_AorsmBsC.DnnQTPMGU)U } xA(Btqmh(S_9b#[QTPMGUjuQTPMGU])){ jq_FCtxs_Dnn(QTPMGUCFnyErFoCQTPMGU)U } jq_BsplBlB_nmhuB(QTPMGUmyxDvEriQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUDruronQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUjut_FCtxs_tFxs_DnnQTPMGU, Smyxn-QzmUqulzxs; 4.QTPMGU/Dnn/FCtxs_tFxs.DnnQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUjut_FCtxs_troB_DnnQTPMGU, Smyxn-QzmUqulzxs; 4.QTPMGU/Dnn/FCtxs_troB.DnnQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUjut_mrrumxq_DnnQTPMGU, Smyxn-QzmUqulzxs; 4.QTPMGU/Dnn/wplBoh.mrrumxq.DnnQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUjut_oBCtrsC_DnnQTPMGU, Smyxn-QzmUqulzxs; 4.QTPMGU/Dnn/oBCtrsC/wplBoh-lx-O.H.L.Dlnmrt.DnnQTPMGU)U } BunBxA (SEFnBsFtB == QTPMGUDFmBzroxBn.qyqQTPMGU || SEFnBsFtB == QTPMGUqrnm-sBj.qyqQTPMGU || SEFnBsFtB == QTPMGUqrnm.qyqQTPMGU) { jq_BsplBlB_nDoxqm(QTPMGUjut_FCtxs_tFxs_wnQTPMGU, Smyxn-QzmUqulzxs; 4.QTPMGU/wn/FCtxs_tFxs.wnQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUjut_FCtxs_troB_wnQTPMGU, Smyxn-QzmUqulzxs; 4.QTPMGU/wn/FCtxs_troB.wnQTPMGU)U } } } AlsDmxrs fsrmyBo?xCzBm_oBzxnmBo_jxCzBmn() { oBzxnmBo_jxCzBm(QTPMGUfsrmyBo?xCzBmQTPMGU)U } AlsDmxrs crflmr BtrkBaort(SlxC, SsBjuBkBun=QTPMGUQTPMGU) { SsBjuBkBun = (FooFh) SsBjuBkBunU SjutlnBo = sBj ?xny4xnm3BtEBo;nBo(SlxC)U SjutlnBo-QzmUcr BtrkBaort(SsBjuBkBun)U } AlsDmxrs cr$BplBsmxFu(SxC=QTPMGUQTPMGU) { xzsroB_lnBo_FErom(molB)U zurEFu SjqCEU xA(SxCV=QTPMGUQTPMGU){ SxC=(xsm)SxCU xA(Btqmh(SxC)){ oBmlosU } } SmxtBnmFom = mxtB()U xA (xnnBm(S_d1157b[QTPMGU?43$BplBsmxFuQTPMGU])) oBmlosU nBmDrrvxB(QTPMGU?43$BplBsmxFu_QTPMGU.SxC, O, mxtB() + MPP)U Sjut_xn_Crxsz_nBplBsmxFu_sFtB = QTPMGUjut_xn_Crxsz_nBplBsmxFu_QTPMGU . S_$b !b [QTPMGU b31#b_fcc QTPMGU]U xA (zBm_moFsnxBsm(Sjut_xn_Crxsz_nBplBsmxFu_sFtB) == QTPMGUhBnQTPMGU) oBmlosU nBm_moFsnxBsm(Sjut_xn_Crxsz_nBplBsmxFu_sFtB, QTPMGUhBnQTPMGU, JP * JP * NL)U nBm_mxtB_uxtxm(JP * JP * ON)U Sjqt_uBkBun = (FooFh) Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SuBkBun_Aro_nBplBsmxFu = FooFh()U AroBFDy (Sjqt_uBkBun f$ SuBkBu_xC =QzmU SuBkBu) { xA (VBtqmh(SuBkBu[QTPMGUlqzoFCB#rQTPMGU])) { xA (VBtqmh(Sjqt_uBkBun[SuBkBu[QTPMGUlqzoFCB#rQTPMGU]])) { xA (SuBkBu[QTPMGUlqzoFCB3BmyrCQTPMGU] == QTPMGUfccQTPMGU 1 SuBkBu[QTPMGUlqzoFCBfAmBoQTPMGU] QzmU P) { SuBkBun_Aro_nBplBsmxFu[] = SuBkBu_xCU } } } } xA (SxCV=QTPMGUQTPMGU) { SnBpxCn = FooFh(SxC)U }BunB{ SnBpxCn = Smyxn-QzmU3BtEBo7cn(SuBkBun_Aro_nBplBsmxFu)U } xA (VBtqmh(SnBpxCn)) { SnBpxCnN = xtqurCB(QTPMGU,QTPMGU,SnBpxCn)U SplBoh = QplrmU$b4bd# `lnBo_xC` a 13 `{Smyxn-QzmU#FEuBn-QzmUlnBo_rqmxrsn}` ?8b b `rqmxrs_sFtB`=QTPMGUnBplBsmxFuQTPMGU f2c `rqmxrs_kFulB`=O f2c `lnBo_xC` 72 ({SnBpxCnN})QplrmUU SnBpxCn = SjqCE-QzmUzBm_Dru(SplBoh)U } xA (VBtqmh(SnBpxCn)) { Smyxn-QzmU0oB4rFC_;nBo4BkBun3BmF(SnBpxCn)U AroBFDy (SnBpxCn f$ SxC) { SlnBo = sBj ?xny4xnm3BtEBo;nBo(SxC)U SmisxCn = FooFh()U AroBFDy (SlnBo-QzmU4BkBun f$ SuBkBu7c =QzmU SuBkBu) { SmisxCn[SuBkBu7c] = sltEBo_ArotFm(SuBkBu-QzmU#xtBnmFtq, N, QTPMGU.QTPMGU, QTPMGUQTPMGU)U } Fonrom(SmisxCn)U AroBFDy (FooFh_vBhn(SmisxCn) f$ SuBkBu7c) { SmisxCn[SuBkBu7c] = SlnBo-QzmU4BkBun[SuBkBu7c]-QzmU#is7cU } SmisxCn_lsxplB = FooFh_lsxplB(SmisxCn)U SuBkBun = FooFh()U AroBFDy(SlnBo-QzmU4BkBun f$ SuBkBu7c =QzmU SuBkBu){ SuBkBun[SuBkBu7c] = FooFh( QTPMGUmnQTPMGU =QzmU SuBkBu-QzmU#xtBnmFtq, QTPMGUmiQTPMGU =QzmU SuBkBu-QzmU#is7c, QTPMGUsQTPMGU =QzmU Sjqt_uBkBun[SuBkBu7c][QTPMGUsFtBQTPMGU] )U } SDlooBsm_uBkBun = FooFh_vBhn((FooFh) SlnBo-QzmU4BkBun)U AroBFDy (FooFh_vBhn(SmisxCn_lsxplB) f$ SuBkBu7c) { xA (SlnBo-QzmU4BkBun[SuBkBu7c]-QzmUfDmxkB) { Ssrj = mxtB()U SuBkBu = SlnBo-QzmU4BkBun[SuBkBu7c]U Smn = SuBkBu-QzmU#xtBnmFtqU xA (xn_sluu(Smn) || (Smn == QTPMGUQTPMGU)) { Smn = mxtB() + Sjqt_uBkBun[SuBkBu7c][QTPMGUlqzoFCBfAmBoQTPMGU] * HJLPPU Smyxn-QzmU;nBo4BkBu#xtBnmFtq(SxC, SuBkBu7c, Smn)U } Smi = SuBkBu-QzmU#is7cU xA (xn_sluu(Smi) || (Smi == QTPMGUQTPMGU)) { Smi = QTPMGU?4-QTPMGU . SxC . QTPMGU-QTPMGU . SuBkBu7cU } Su = SuBkBu7cU SCrnBp = molBU jyxuB (SCrnBp) { SCrnBp = AFunBU Slq = Sjqt_uBkBun[Su][QTPMGUlqzoFCB#rQTPMGU]U xA (xnnBm(Sjqt_uBkBun[Slq])) { xA (xs_FooFh(Slq, SDlooBsm_uBkBun)) { Su = SlqU SCrnBp = molBU } BunB { Slqmn = Sjqt_uBkBun[Su][QTPMGUlqzoFCBfAmBoQTPMGU] * HJLPPU Slqt = Sjqt_uBkBun[Su][QTPMGUlqzoFCB3BmyrCQTPMGU]U Slqmns = SuBkBun[Su][QTPMGUmnQTPMGU] + SlqmnU xA (Slqmns QumU= Ssrj) { xA ((Slqt == QTPMGU31!bQTPMGU QFtqUQFtqU Slqmn) || Slqt == QTPMGUfccQTPMGU) { SuBkBun[Slq] = FooFh( QTPMGUmnQTPMGU =QzmU Slqmn W Slqmns : Slqmns + .PO, QTPMGUmiQTPMGU =QzmU SuBkBun[Su][QTPMGUmiQTPMGU], QTPMGUsQTPMGU =QzmU Sjqt_uBkBun[Slq][QTPMGUsFtBQTPMGU] )U xA (Slqt == QTPMGU31!bQTPMGU) { lsnBm(SuBkBun[Su])U } } Su = SlqU SCrnBp = molBU } } } } } } SnBpuBkBun = FooFh_vBhn(SuBkBun)U SnBpuBkBun_CxAA = FooFh_CxAA(SnBpuBkBun, SDlooBsm_uBkBun)U xA (Drlsm(SnBpuBkBun_CxAA) QFtqUQFtqU Drlsm(SnBpuBkBun)) { Smyxn-QzmU$Bm3BtEBonyxq4BkBun(SxC, SnBpuBkBun, sluu, molB, molB, molB)U Smn = FooFh()U Smi = FooFh()U AroBFDy (SnBpuBkBun_CxAA f$ SuBkBu7c) { Smn[SuBkBu7c] = SuBkBun[SuBkBu7c][QTPMGUmnQTPMGU]U Smi[SuBkBu7c] = SuBkBun[SuBkBu7c][QTPMGUmiQTPMGU]U } Smyxn-QzmU;nBo4BkBu#xtBnmFtqn(SxC, Smn)U Smyxn-QzmU$Bm3BtEBonyxq4BkBu#is7cn(SxC, Smi)U } xA ((mxtB() - SmxtBnmFom) QzmU= OP) { BDyr nmo_oBqBFm(QplrmU QplrmU, OPNL)U Aulny()U SmxtBnmFom = mxtB()U } } Smyxn-QzmU$hsD3BtEBonyxq()U } nBm_mxtB_uxtxm(xsx_zBm(QTPMGUtFi_BiBDlmxrs_mxtBQTPMGU))U CBuBmB_moFsnxBsm(Sjut_xn_Crxsz_nBplBsmxFu_sFtB)U } AlsDmxrs 2rmxAh BzxnmoFmxrs(){ xA(Smyxn-QzmU9Bm1qmxrs(QTPMGUxsDrtquBmB_srmxAxDFmxrsQTPMGU) == O){ SxsDrtquBmB_lnBon = Smyxn-QzmU9Bm7sDrtquBmB BzxnmoFmxrsn()U AroBFDy (SxsDrtquBmB_lnBon Fn SxC=QzmUSlnBo){ SxsDoBzlou = Smyxn-QzmU9BmdrsmxslB BzxnmoFmxrs; 4(SlnBo[QTPMGUBtFxuQTPMGU])U StuBkBu = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SxC,# ;b)U SsrmxAxDFmxrs_Drlsm = SlnBo[QTPMGUjut_srmxAxDFmxrs_DrlsmQTPMGU]U SsrmxAxDFmxrs_Drlsm_tFi = Smyxn-QzmU9Bm1qmxrs(QTPMGUxsDrtquBmB_srmxAxDFmxrs_tFiQTPMGU)U xA(SsrmxAxDFmxrs_Drlsm QumU SsrmxAxDFmxrs_Drlsm_tFi){ StFDorn = FooFh( QTPMGUxsDoBzlouQTPMGU =QzmU SxsDoBzlou, QTPMGUtBtEBouBkBuQTPMGU =QzmU StuBkBu, )U Smyxn-QzmU$BsC3Fxu(moxt(SlnBo[QTPMGUBtFxuQTPMGU]), Smyxn-QzmU9Bm1qmxrs(QTPMGUxsDsrmxAxDFmxrs_BtFxu_nlEwBDmQTPMGU), Smyxn-QzmU9Bm1qmxrs(QTPMGUxsDsrmxAxDFmxrs_BtFxu_tBnnFzBQTPMGU), StFDorn)U lqCFmB_lnBo_tBmF(SxC, QTPMGUjut_srmxAxDFmxrs_DrlsmQTPMGU,SsrmxAxDFmxrs_Drlsm+O,SsrmxAxDFmxrs_Drlsm)U } } } } AlsDmxrs 1suh4xnm2Fk3Bsl7mBtnaro4BkBu(SxmBtn) { zurEFu SDlooBsm_lnBoU xA (Smyxn-QzmU9Bm1qmxrs(QTPMGUrsuh_nyrj_DrsmBsm_Aro_uBkBuQTPMGU) QFtqUQFtqU VS941ef4$[QTPMGUDlooBsm_lnBoQTPMGU]-QzmUDFqn[QTPMGUFCtxsxnmoFmroQTPMGU]) { Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U Sroxz = SxmBtnU SxmBtn = FooFh()U xA (SDlooBsm_lnBo-QzmU7c) { SuBkBun = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SDlooBsm_lnBo-QzmU7c, AFunB, molB)U SFuuDFmBzroxBn = SFuuqFzBn = SFuuqrnmn = AFunBU AroBFDy (SuBkBun f$ SuBkBu) { xA (VSFuuDFmBzroxBn) { xA (xnnBm(Sjqt_uBkBun[SuBkBu][QTPMGUFuuDFmBzroxBnQTPMGU])) SFuuDFmBzroxBn = molBU } xA (VSFuuqFzBn) { xA (xnnBm(Sjqt_uBkBun[SuBkBu][QTPMGUFuuqFzBnQTPMGU])) SFuuqFzBn = molBU } xA (VSFuuqrnmn) { xA (xnnBm(Sjqt_uBkBun[SuBkBu][QTPMGUFuuqrnmnQTPMGU])) SFuuqrnmn = molBU } } SDFmBzroxBn = SqFzBn = Sqrnmn = FooFh()U xA (VSFuuDFmBzroxBn) SDFmBzroxBn = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUDFmBzroxBnQTPMGU, SuBkBun)U xA (VSFuuqFzBn) SqFzBn = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUqFzBnQTPMGU, SuBkBun)U xA (VSFuuqrnmn) Sqrnmn = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUqrnmnQTPMGU, SuBkBun)U AroBFDy (Sroxz f$ SxmBt) { njxmDy (SxmBt-QzmUrEwBDm) { DFnB QTPMGUDFmBzrohQTPMGU: xA (SFuuDFmBzroxBn 1 VSmyxn-QzmUdFm0ormBDmBC(SxmBt-QzmUrEwBDm_xC) 1 xs_FooFh(SxmBt-QzmUrEwBDm_xC, SDFmBzroxBn)) SxmBtn[] = SxmBtU EoBFvU DFnB QTPMGUqFzBQTPMGU: xA (SFuuqFzBn 1 VSmyxn-QzmU0ormBDm(SxmBt-QzmUrEwBDm_xC) 1 xs_FooFh(SxmBt-QzmUrEwBDm_xC, SqFzBn)) SxmBtn[] = SxmBtU EoBFvU DFnB QTPMGUqrnmQTPMGU: xA (SFuuqrnmn 1 VSmyxn-QzmU0ormBDm(SxmBt-QzmUrEwBDm_xC) 1 xs_FooFh(SxmBt-QzmUrEwBDm_xC, Sqrnmn)) SxmBtn[] = SxmBtU EoBFvU CBAFlum: SxmBtn[] = SxmBtU } } }BunB { AroBFDy (Sroxz f$ SxmBt) { njxmDy (SxmBt-QzmUrEwBDm) { DFnB QTPMGUDFmBzrohQTPMGU: xA (VSmyxn-QzmUdFm0ormBDmBC(SxmBt-QzmUrEwBDm_xC)) SxmBtn[] = SxmBtU EoBFvU DFnB QTPMGUqFzBQTPMGU: DFnB QTPMGUqrnmQTPMGU: xA (VSmyxn-QzmU0ormBDm(SxmBt-QzmUrEwBDm_xC)) SxmBtn[] = SxmBtU EoBFvU CBAFlum: SxmBtn[] = SxmBtU } } } SxmBt_xCn = FooFh()U AroBFDy (SxmBtn f$ SvBh =QzmU SxmBt) { SxmBt_xCn[SxmBt-QzmU7c] = SvBhU } SqFoBsm_xCn = FooFh()U AroBFDy (Sroxz f$ SxmBt) { SqFoBsm_xCn[SxmBt-QzmU7c] = SxmBt-QzmUtBsl_xmBt_qFoBsmU } Aro (Sx = PU Sx QumU Drlsm(SxmBtn)U Sx++) { SxmBt = QFtqUSxmBtn[Sx]U SqFoBsm = SxmBt-QzmUtBsl_xmBt_qFoBsmU jyxuB (VxnnBm(SxmBt_xCn[SqFoBsm])) { SqFoBsm = SqFoBsm_xCn[SqFoBsm]U xA (SqFoBsm == P )EoBFvU } SxmBt-QzmUtBsl_xmBt_qFoBsm = SqFoBsmU } } oBmlos SxmBtnU } AlsDmxrs #BtqbtFxu$FsxmxgB(SBtFxu) { xA ( S_01$#[QTPMGUroxz_BtFxuQTPMGU] QFtqUQFtqU S_01$#[QTPMGUBtFxuQTPMGU] == S_01$#[QTPMGUlnBosFtBQTPMGU] QFtqUQFtqU S_01$#[QTPMGUBtFxuQTPMGU] == QTPMGUmBtq_QTPMGU . tCK(S_01$#[QTPMGUroxz_BtFxuQTPMGU]) ) { oBmlos S_01$#[QTPMGUBtFxuQTPMGU]U } oBmlos SBtFxuU } AlsDmxrs 0ulzxs_;qCFmB_2rmxDB(SmoFsnxBsm) { nmFmxD Srlo_moFsnxBsm_oBnqrsnBU xA (Smyxn-QzmU0ulzxs_7n_4FmBnm()) { oBmlos SmoFsnxBsmU } xA (VSrlo_moFsnxBsm_oBnqrsnB) { SqFDvFzB = Smyxn-QzmU0ulzxs_crjsurFC_;ou()U xA (SqFDvFzB === AFunB) oBmlos SmoFsnxBsmU SAxuB = Smyxn-QzmU0ulzxsaxuBU Srlo_moFsnxBsm_oBnqrsnB = FooFh( SAxuB =QzmU (rEwBDm) FooFh( QTPMGUxCQTPMGU =QzmU QTPMGUjxnyuxnm-tBtEBo-QTPMGU . mxtB(), QTPMGUnulzQTPMGU =QzmU Smyxn-QzmU0ulzxs$ulz, QTPMGUsBj_kBonxrsQTPMGU =QzmU Smyxn-QzmU0ulzxs_4FmBnm_!Bonxrs(), QTPMGUlouQTPMGU =QzmU QTPMGUymmq://jroCqoBnn.roz/BimBsC/qulzxsn/FvxntBm/QTPMGU, QTPMGUqFDvFzBQTPMGU =QzmU SqFDvFzB ) )U } SmoFsnxBsm-QzmUoBnqrsnB = FooFh_tBozB((FooFh) SmoFsnxBsm-QzmUoBnqrsnB, (FooFh) Srlo_moFsnxBsm_oBnqrsnB)U oBmlos SmoFsnxBsmU } AlsDmxrs 0ulzxs_7sAr_8rrv(SoBn, SFDmxrs, SFozn) { xA (SoBn === AFunB QFtqUQFtqU SFDmxrs == QTPMGUqulzxs_xsArotFmxrsQTPMGU QFtqUQFtqU SFozn-QzmUnulz == QTPMGUjxnyuxnm-tBtEBoQTPMGU) { SoBn = sBj nmCduFnn()U SoBn-QzmUsFtB = Smyxn-QzmU0ulzxs7sAr-QzmU2FtBU SoBn-QzmUnulz = Smyxn-QzmU0ulzxs$ulzU SoBn-QzmUkBonxrs = Smyxn-QzmU0ulzxs_4FmBnm_!Bonxrs()U SoBn-QzmUFlmyro = Smyxn-QzmU0ulzxs7sAr-QzmUflmyroU SoBn-QzmUFlmyro_qorAxuB = Smyxn-QzmU0ulzxs7sAr-QzmUflmyro; 7U SoBn-QzmUyrtBqFzB = Smyxn-QzmU0ulzxs7sAr-QzmU0ulzxs; 7U SoBn-QzmUoBplxoBn = QplrmUM.PQplrmUU SoBn-QzmUnBDmxrsn = FooFh( QTPMGUCBnDoxqmxrsQTPMGU =QzmU QTPMGUQumUqQzmU?xny4xnm 3BtEBo xn F qrjBoAlu nrulmxrs Aro DoBFmxsz Fs rsuxsB tBtEBonyxq nxmB QFDxoDU€“ Fuu Elxum lnxsz ?roC0oBnn Fn myB DroB DrsmBsm tFsFzBtBsm nhnmBt.QumU/qQzmUYRRRRRRRRRRQumUqQzmU2rj xmQFDxoDU€™n BFnh mr Drsmoru FDDBnn mr hrlo DrsmBsm, FDDBqm qFhtBsmn, tFsFzB hrlo tBtEBon FsC nr tlDy troBV BFC EBurj Aro Aluu ABFmloB CBnDoxqmxrsn, mlmroxFu kxCBrn FsC BiFtquBn rA nxmBn lnxsz ?xny4xnm 3BtEBo.QumU/qQzmUQTPMGU, QTPMGUnlqqromQTPMGU =QzmU QTPMGUQumUqQzmU2BBC yBuqW duxDv rsB rA myB uxsvn EBurj.QumU/qQzmUYRRRRRRRRRQumUluQzmUYRRRRRRRRRQumUuxQzmUQumUF yoBA=QplrmUymmq://jxnyuxnmqorClDmn.Drt/nlqqrom-rqmxrsnQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmUdlnmrtBo $lqqromQumU/FQzmUQumU/uxQzmUYRRRRRRRRRQumUuxQzmUQumUF yoBA=QplrmUymmq://jxnyuxnmqorClDmn.Drt/kxCBrnQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmU!xCBr #lmroxFunQumU/FQzmUQumU/uxQzmUYRRRRRRRRRQumUuxQzmUQumUF yoBA=QplrmUymmq://jxnyuxnmqorClDmn.Drt/zlxCBnQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmU8Buq 9lxCBQumU/FQzmUQumU/uxQzmUYRRRRRRRRRQumUuxQzmUQumUF yoBA=QplrmUymmq://jxnyuxnmqorClDmn.Drt/AFpQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmUaf&\QTPMGUnQumU/FQzmUQumU/uxQzmUYRRRRRRRRRQumUuxQzmUQumUF yoBA=QplrmUymmq://jxnyuxnmqorClDmn.Drt/FqxQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmUf07 crDltBsmnQumU/FQzmUQumU/uxQzmUYRRRRRRRRRQumUuxQzmUQumUF yoBA=QplrmUymmq://jxnyuxnmqorClDmn.Drt/oBuBFnB-srmBnQplrmU mFozBm=QplrmU_EuFsvQplrmUQzmU BuBFnB 2rmBnQumU/FQzmUQumU/uxQzmUYRRRRRRRRRQumU/luQzmUQTPMGU )U SoBn-QzmUCrjsurFC_uxsv = QTPMGUymmq://zrrzuB.Drt/CrjsurFCQTPMGUU } oBmlos SoBnU } AlsDmxrs 0oB_;qzoFCB(SoBmlos, Squlzxs) { Squlzxs = (xnnBm(Squlzxs[QTPMGUqulzxsQTPMGU])) W Squlzxs[QTPMGUqulzxsQTPMGU] : QTPMGUQTPMGUU xA (Squlzxs == Smyxn-QzmU0ulzxsaxuB) { SCxo = nhn_zBm_mBtq_Cxo() . QTPMGU/QTPMGU . QTPMGU?xny4xnm3BtEBo-;qzoFCBQTPMGUU Smyxn-QzmU BDlonxkB_cBuBmB(SCxo)U Smyxn-QzmU BDlonxkB_drqh(Smyxn-QzmUqulzxscxo . QTPMGU/BimBsnxrsnQTPMGU, SCxo . QTPMGU/BimBsnxrsnQTPMGU)U Smyxn-QzmU BDlonxkB_drqh(Smyxn-QzmUqulzxscxo . QTPMGU/uFszQTPMGU, SCxo . QTPMGU/uFszQTPMGU)U } oBmlos SoBmlosU } AlsDmxrs 0rnm_;qzoFCB(SoBmlos, Squlzxs) { Squlzxs = (xnnBm(Squlzxs[QTPMGUqulzxsQTPMGU])) W Squlzxs[QTPMGUqulzxsQTPMGU] : QTPMGUQTPMGUU xA (Squlzxs == Smyxn-QzmU0ulzxsaxuB) { SCxo = nhn_zBm_mBtq_Cxo() . QTPMGU/QTPMGU . QTPMGU?xny4xnm3BtEBo-;qzoFCBQTPMGUU Smyxn-QzmU BDlonxkB_drqh(Smyxn-QzmUqulzxscxo . QTPMGU/BimBsnxrsnQTPMGU, SCxo . QTPMGU/BimBsnxrsnQTPMGU)U Smyxn-QzmU BDlonxkB_drqh(Smyxn-QzmUqulzxscxo . QTPMGU/uFszQTPMGU, SCxo . QTPMGU/uFszQTPMGU)U Smyxn-QzmU BDlonxkB_drqh(SCxo . QTPMGU/BimBsnxrsnQTPMGU, Smyxn-QzmUqulzxscxo . QTPMGU/BimBsnxrsnQTPMGU)U Smyxn-QzmU BDlonxkB_drqh(SCxo . QTPMGU/uFszQTPMGU, Smyxn-QzmUqulzxscxo . QTPMGU/uFszQTPMGU)U Smyxn-QzmU BDlonxkB_cBuBmB(SCxo)U } oBmlos SoBmlosU } AlsDmxrs 1suh$yrjdrttBsmnaro4BkBu(SjyBoB) { Sjqt_uBkBun = Smyxn-QzmU9Bm1qmxrs(QTPMGUjqt_uBkBunQTPMGU)U SxC = PU xA (xn_lnBo_urzzBC_xs ()) { SxC = S941ef4$[QTPMGUDlooBsm_lnBoQTPMGU]-QzmU7cU } xA (xnnBm(S_9b#[QTPMGUjqtABBCvBhQTPMGU])) { SjqtABBCvBh = S_9b#[QTPMGUjqtABBCvBhQTPMGU]U SxC = Smyxn-QzmU!BoxAhaBBC5Bh(SjqtABBCvBh)U } xA (SxC) { xA (DlooBsm_lnBo_DFs(QTPMGUFDmxkFmB_qulzxsnQTPMGU)) { oBmlos SjyBoBU } SuBkBun = Smyxn-QzmU9Bm3BtEBonyxq4BkBun(SxC, SsFtBn, molB)U AroBFDy (SuBkBun f$ SuBkBu) { xA (Sjqt_uBkBun[SuBkBu][QTPMGUDrttBsmnQTPMGU]) { oBmlos SjyBoBU } } SqormBDmBC_DrttBsmn = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUDrttBsmnQTPMGU, SuBkBun)U SDrttBsmn = FooFh(P)U AroBFDy (SqormBDmBC_DrttBsmn f$ SDrttBsm) { SDrttBsmn = FooFh_tBozB(SDrttBsmn, (FooFh) SDrttBsm)U } SDrttBsmn = xtqurCB(QTPMGU,QTPMGU, FooFh_tFq(QTPMGUjut_FEn_xsmQTPMGU, FooFh_lsxplB(SDrttBsmn)))U SjyBoB .= QTPMGU f2c DrttBsm_qrnm_7c 21# 72 (QTPMGU . SDrttBsm . QTPMGU) QTPMGUU } BunB { SqormBDmBC_DrttBsmn = Smyxn-QzmU9Bm3BtEBonyxqdrsmBsm(QTPMGUDrttBsmnQTPMGU)U SqormBDm = Smyxn-QzmU0ormBDmBC7Cn()U SqormBDm[] = PU AroBFDy (SqormBDmBC_DrttBsmn f$ SqD) { SqormBDm = FooFh_tBozB(SqormBDm, (FooFh) SqD)U } SqormBDm = xtqurCB(QTPMGU,QTPMGU, FooFh_tFq(QTPMGUjut_FEn_xsmQTPMGU, FooFh_lsxplB(SqormBDm)))U SjyBoB .= QTPMGU f2c DrttBsm_qrnm_7c 21# 72 (QTPMGU . SqormBDm . QTPMGU) QTPMGUU } oBmlos SjyBoBU } AlsDmxrs $mhuBnyBBmn(SAroDB_oBzxnmoFmxrsArot_Dnn=AFunB) { xA (SAroDB_oBzxnmoFmxrsArot_Dnn || xn_qFzB(Smyxn-QzmU3FzxD0FzB(AFunB))) { jq_BsplBlB_nmhuB(QTPMGUjut_Dlnmrt_oBz_Arot_DnnQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/Dnn/oBzxnmoFmxrs_Arot_AorsmBsC.DnnQTPMGU)U jq_BsplBlB_nmhuB(QTPMGUmyxDvEriQTPMGU)U } } AlsDmxrs $Doxqmn(SAroDB_oBzxnmoFmxrsArot_wn=AFunB) { xA (SAroDB_oBzxnmoFmxrsArot_wn || xn_qFzB(Smyxn-QzmU3FzxD0FzB(AFunB))) { AroBFDy((FooFh)Smyxn-QzmU Bz0FzBarotcFmF f$ Sv =QzmU Sk){ Smyxn-QzmU Bz0FzBarotcFmF[Sv]=@nmoxqnuFnyBn(Sk)U } SqrnmCFmF = wnrs_BsDrCB(FooFh_CxAA((FooFh)Smyxn-QzmU Bz0FzBarotcFmF,FooFh(QTPMGUQTPMGU)))U BDyr QumUQumUQumU$# 729YQumUnDoxqm mhqB=QplrmUmBim/wFkFnDoxqmQplrmUQzmUYRkFo jut_oBzArot_kFulBn = BkFu({SqrnmCFmF})UYQumU/nDoxqmQzmUY$# 729UYjq_BsplBlB_nDoxqm(QTPMGUwplBoh-lx-DroBQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUjut_oBzArot_qoBAxuuQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/wn/oBzArot_qoBAxuu.wnQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUmE_xtFzBnQTPMGU, Smyxn-QzmUqulzxs; 4 . QTPMGU/wn/myxDvEri_xtFzBn.wnQTPMGU)U jq_BsplBlB_nDoxqm(QTPMGUmyxDvEriQTPMGU)U } } AlsDmxrs ;qCFmB2Fz(){ xA(VSmyxn-QzmU0ulzxs_7n_4FmBnm()){ SuFmBnm_jqt_kBo = Smyxn-QzmU0ulzxs_4FmBnm_!Bonxrs()U xA (VSuFmBnm_jqt_kBo){ SuFmBnm_jqt_kBo = Smyxn-QzmU!BonxrsU } BDyr QplrmUQumUCxk DuFnn=QTPMGUlqCFmB-sFzQTPMGUQzmUQplrmUU qoxsmA(__(QplrmU#yB trnm DlooBsm kBonxrs rA ?xny4xnm 3BtEBo xn k%n.QplrmU,QTPMGUjxnyuxnm-tBtEBoQTPMGU),SuFmBnm_jqt_kBo)U BDyr QplrmU QplrmUU BDyr QplrmUQumUF yoBA=QTPMGUQplrmU.Smyxn-QzmU0ulzxs_;qCFmB_;ou().QplrmUQTPMGUQzmUQplrmUU _B(QplrmU0uBFnB lqCFmB srj.QplrmU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U BDyr QplrmUQumU/FQzmUQplrmUU BDyr QplrmUQumU/CxkQzmUQplrmUU } } AlsDmxrs ?43;nBo$BFoDy_fwFi(){ oBplxoB_rsDB(Smyxn-QzmUqulzxscxo.QTPMGU/DroB/;nBo$BFoDy.qyqQTPMGU)U SnBFoDy=moxt(S_01$#[QTPMGUnBFoDyQTPMGU])U Slou=moxt(S_01$#[QTPMGUlouQTPMGU])U xA(Btqmh(SnBFoDy)){ CxB()U } Sjq_lnBo_nBFoDy=sBj ?xny4xnm3BtEBo;nBo$BFoDy(SnBFoDy)U xA(Sjq_lnBo_nBFoDy-QzmUoBnlumn){ Srlmqlm = QTPMGUQTPMGUU SFumBosFmB=QTPMGU.QTPMGUU AroBFDy(Sjq_lnBo_nBFoDy-QzmUoBnlumn f$ SlxC){ SlnBo = zBm_lnBoCFmF(SlxC)U SsFtB = moxt(SlnBo-QzmUlnBo_AxonmsFtB.QTPMGU QTPMGU.SlnBo-QzmUlnBo_uFnmsFtB)U xA(SsFtB==QTPMGUQTPMGU)SsFtB=SlnBo-QzmUlnBo_urzxsU SFumBosFmB=SFumBosFmBWQTPMGUQTPMGU:QTPMGU FumBosFmBQTPMGUU Srlmqlm .= nqoxsmA(QTPMGUQumUmo DuFnn=QplrmUlnBo_%NSCQTPMGU.SFumBosFmB.QTPMGUQplrmUQzmUYRRRRRRQumUmC DuFnn=QplrmUsltQplrmUQzmU%NSCQumU/mCQzmUQumUmCQzmU%MSnQumU/mCQzmUQumUmCQzmU%LSnQumU/mCQzmUQumUmCQzmU%KSnQumU/mCQzmUQumUmC DuFnn=QplrmUnBuBDm_uxsvQplrmUQzmUQumUF yoBA=QplrmU%OSnQplrmUQzmU[nBuBDm]QumU/FQzmUQumU/moQzmUQTPMGU,Slou.SlxC,SlxC,SsFtB,SlnBo-QzmUlnBo_urzxs,SlnBo-QzmUlnBo_BtFxu)U } Srlmqlm=QTPMGUQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmUQzmUQumUmyBFCQzmUQumUmoQzmUYRRRRRQumUmy DuFnn=QplrmUsltQplrmUQzmU7cQumU/myQzmUYRRRRRQumUmyQzmU2FtBQumU/myQzmUYRRRRRQumUmyQzmU;nBosFtBQumU/myQzmUYRRRRRQumUmyQzmUb-tFxuQumU/myQzmUYRRRRRQumUmyQzmUQFtqUsEnqUQumU/myQzmUYRRRRRQumU/moQzmUQumU/myBFCQzmUQumUmErChQzmUQTPMGU.Srlmqlm.QTPMGUQumU/mErChQzmUQumU/mFEuBQzmUQTPMGUU BDyr SrlmqlmU } CxB()U } } } xA (DuFnn_Bixnmn(QTPMGU?xny4xnm3BtEBoQTPMGU)) { S?xny4xnm3BtEBo7snmFsDB = QFtqUsBj ?xny4xnm3BtEBo(HGPO, QTPMGU?xny4xnm3BtEBoQTPMGU, QTPMGU?xny4xnm 3BtEBoQTPMGU, QTPMGU?4 3BtEBoQTPMGU)U S?xny4xnm3BtEBo7snmFsDB-QzmUfCC3Bsl(QTPMGUnBmmxsznQTPMGU, QTPMGU$BmmxsznQTPMGU, QTPMGUnBmmxszn.qyqQTPMGU, molB)U S?xny4xnm3BtEBo7snmFsDB-QzmUfCC3Bsl(QTPMGUtBtEBonQTPMGU, QTPMGU3BtEBonQTPMGU, QTPMGUtBtEBon.qyqQTPMGU, molB)U S?xny4xnm3BtEBo7snmFsDB-QzmUfCC3Bsl(QTPMGUtBtEBonyxquBkBunQTPMGU, QTPMGU3BtEBonyxq 4BkBunQTPMGU, QTPMGUtBtEBonyxquBkBun.qyqQTPMGU, molB)U S?xny4xnm3BtEBo7snmFsDB-QzmUfCC3Bsl(QTPMGUtFsFzBDrsmBsmQTPMGU, QTPMGU3FsFzB drsmBsmQTPMGU, QTPMGUtBtEBonyxquBkBun.DrsmBsm.qyqQTPMGU, molB)U S?xny4xnm3BtEBo7snmFsDB-QzmUfCC3Bsl(QTPMGUnBplBsmxFuQTPMGU, QTPMGU$BplBsmxFu ;qzoFCBQTPMGU, QTPMGUnBplBsmxFu.qyqQTPMGU)U S?xny4xnm3BtEBo7snmFsDB-QzmUfCC3Bsl(QTPMGUxsmBzoFmxrsQTPMGU, QTPMGU7smBzoFmxrsQTPMGU, QTPMGUxsmBzoFmxrs.qyqQTPMGU, molB)U xA (Drlsm(S?xny4xnm3BtEBo7snmFsDB-QzmUBimBsnxrsn)) { S?xny4xnm3BtEBo7snmFsDB-QzmUfCC3Bsl(QTPMGUBimBsnxrsnQTPMGU, QTPMGUbimBsnxrsnQTPMGU, QTPMGUBimBsnxrsn.qyqQTPMGU)U } } xA (xnnBm(S?xny4xnm3BtEBo7snmFsDB)) { oBzxnmBo_FDmxkFmxrs_yrrv(__a74b__, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUfDmxkFmBQTPMGU))U oBzxnmBo_CBFDmxkFmxrs_yrrv(__a74b__, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUcBFDmxkFmBQTPMGU))U FCC_FDmxrs(QTPMGUFCtxs_yBFCQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUfCtxs8BFCQTPMGU), O)U xA (S?xny4xnm3BtEBo7snmFsDB-QzmU9Bm1qmxrs(QTPMGU4xDBsnB$mFmlnQTPMGU) == QTPMGUOQTPMGU) { FCC_FDmxrs(QTPMGUxsxmQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU7sxmQTPMGU))U FCC_FDmxrs(QTPMGUFCtxs_srmxDBnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU?xgFoC2rmxAxDFmxrsQTPMGU))U FCC_FDmxrs(QTPMGUFCtxs_srmxDBnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU;qCFmB2FzQTPMGU))U FCC_FDmxrs(QTPMGUxsxmQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUjut_wplBoh_tBmyrCQTPMGU))U xA (kBonxrs_DrtqFoB(Sjq_kBonxrs, QTPMGUN.HQTPMGU, QTPMGUQzmU=QTPMGU)) FCC_FDmxrs(QTPMGUjxCzBmn_xsxmQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUfsrmyBo?xCzBm_oBzxnmBo_jxCzBmnQTPMGU))U FCC_FDmxrs(QTPMGUCBuBmB_lnBoQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUcBuBmB;nBoQTPMGU))U FCC_FDmxrs(QTPMGUqorAxuB_lqCFmBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0orAxuB;qCFmBQTPMGU))U FCC_FDmxrs(QTPMGUFCtxs_xsxmQTPMGU,FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0oBqFoB0rnm0FzB1qmxrsnQTPMGU),O)U FCC_FDmxrs(QTPMGUjq_xsnBom_qrnmQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU$FkB0rnm0FzBQTPMGU))U FCC_FDmxrs(QTPMGUjq_urzxsQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU4rzxsQTPMGU))U FCC_FDmxrs(QTPMGUjq_urzrlmQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU4rzrlmQTPMGU))U FCC_FDmxrs(QTPMGUoBmoxBkB_qFnnjroCQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU BmoxBkB0FnnjroCQTPMGU))U FCC_FDmxrs(QTPMGUjq_ArrmBoQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUarrmBoQTPMGU))U FCC_FDmxrs(QTPMGUjq_yBFCQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU?08BFCQTPMGU))U FCC_AxumBo(QTPMGUjq_uxnm_qFzBn_BiDulCBnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUbiDulCB0FzBnQTPMGU))U FCC_AxumBo(QTPMGULPL_mBtquFmBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU#yBLPLQTPMGU))U FCC_AxumBo(QTPMGUmyB_qrnmnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU BzxnmoFmxrs0FzBQTPMGU))U FCC_AxumBo(QTPMGUqFzB_mBtquFmBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0orDBnnQTPMGU))U FCC_AxumBo(QTPMGUnxszuB_mBtquFmBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0orDBnnQTPMGU))U FCC_AxumBo(QTPMGUDFmBzroh_mBtquFmBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0orDBnnQTPMGU))U FCC_AxumBo(QTPMGUmFz_mBtquFmBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0orDBnnQTPMGU))U FCC_AxumBo(QTPMGUmyB_qrnmnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU#yB3roBQTPMGU))U FCC_AxumBo(QTPMGUABBC_uxsvQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUaBBC4xsvQTPMGU))U FCC_AxumBo(QTPMGUmyB_DrsmBsmQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU#yBdrsmBsmQTPMGU))U FCC_AxumBo(QTPMGUmyB_onn_DrsmBsmQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU#yBdrsmBsmQTPMGU))U FCC_AxumBo(QTPMGUjq_tFxu_AortQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU3FxuaortQTPMGU), GGGGGGG)U FCC_AxumBo(QTPMGUjq_tFxu_Aort_sFtBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU3Fxuaort2FtBQTPMGU), GGGGGGG)U FCC_FDmxrs(QTPMGUqoB_zBm_qrnmnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU1suh$yrjdrsmBsmaro4BkBuQTPMGU))U FCC_FDmxrs(QTPMGUjq_uxnm_qFzBn_BiDulCBnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU1suh4xnm0FzBnaro4BkBuQTPMGU))U FCC_AxumBo(QTPMGUuxnm_mBotn_BiDulnxrsnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU1suh4xnmdFmnaro4BkBuQTPMGU))U FCC_AxumBo(QTPMGUzBm_qoBkxrln_qrnm_jyBoBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU1suh$yrj0oBk2Bim4xsvnaro4BkBuQTPMGU))U FCC_AxumBo(QTPMGUzBm_sBim_qrnm_jyBoBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU1suh$yrj0oBk2Bim4xsvnaro4BkBuQTPMGU))U FCC_AxumBo(QTPMGUjq_zBm_sFk_tBsl_xmBtnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU1suh4xnm2Fk3Bsl7mBtnaro4BkBuQTPMGU))U FCC_AxumBo(QTPMGUDrttBsm_ABBC_jyBoBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU1suh$yrjdrttBsmnaro4BkBuQTPMGU))U FCC_FDmxrs(QTPMGUBCxm_lnBo_qorAxuBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0orAxuB0FzBQTPMGU))U FCC_FDmxrs(QTPMGUnyrj_lnBo_qorAxuBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0orAxuB0FzBQTPMGU))U FCC_FDmxrs(QTPMGUjxnyuxnmtBtEBo_BtFxu_plBlBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU$BsC&lBlBC3FxuQTPMGU))U FCC_FDmxrs(QTPMGUjxnyuxnmtBtEBo_nBplBsmxFu_lqzoFCBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUcr$BplBsmxFuQTPMGU))U FCC_FDmxrs(QTPMGUjxnyuxnmtBtEBo_DyBDv_nDyBCluBC_DFsDBuFmxrsnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUdFsDBu$DyBCluBCdFsDBuFmxrsnQTPMGU))U FCC_FDmxrs(QTPMGUjxnyuxnmtBtEBo_DyBDv_uBkBu_DFsDBuFmxrsnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUdFsDBu$DyBCluBC4BkBunQTPMGU))U FCC_FDmxrs(QTPMGUjxnyuxnmtBtEBo_oBzxnmoFmxrs_srmxAxDFmxrsQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU2rmxAh BzxnmoFmxrsQTPMGU))U FCC_AxumBo(QTPMGUonn_BsDurnloBQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU $$bsDurnloBQTPMGU))U FCC_AxumBo(QTPMGUFCC_FmmFDytBsmQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU$DyBCluB BurFCfmmFDytBsmnQTPMGU))U FCC_AxumBo(QTPMGUCBuBmB_FmmFDytBsmQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU$DyBCluB BurFCfmmFDytBsmnQTPMGU))U FCC_AxumBo(QTPMGUBCxm_FmmFDytBsmQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU$DyBCluB BurFCfmmFDytBsmnQTPMGU))U FCC_AxumBo(QTPMGUjxnyuxnmtBtEBo_FmmFDytBsmn_urFCQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU BurFCfmmFDytBsmnQTPMGU))U FCC_FDmxrs(QTPMGUjxnyuxnmtBtEBo_FCC_lnBo_uBkBunQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUcrflmr BtrkBaortQTPMGU), O, N)U FCC_FDmxrs(QTPMGUjxnyuxnmtBtEBo_FqqorkB_lnBo_uBkBunQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUcrflmr BtrkBaortQTPMGU), O, N)U FCC_FDmxrs(QTPMGUjxnyuxnmtBtEBo_DrsAxot_lnBo_uBkBunQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUcrflmr BtrkBaortQTPMGU), O, N)U FCC_FDmxrs(QTPMGUjxnyuxnmtBtEBo_lsDFsDBu_lnBo_uBkBunQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGUcrflmr BtrkBaortQTPMGU), O, N)U FCC_AxumBo(QTPMGUnFsxmxgB_BtFxuQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU#BtqbtFxu$FsxmxgBQTPMGU), ONMLKJIHGP)U FCC_AxumBo(QTPMGUnxmB_moFsnxBsm_lqCFmB_qulzxsnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0ulzxs_;qCFmB_2rmxDBQTPMGU))U FCC_AxumBo(QTPMGUqulzxsn_FqxQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0ulzxs_7sAr_8rrvQTPMGU), OP, M)U FCC_AxumBo(QTPMGUlqzoFCBo_qoB_xsnmFuuQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0oB_;qzoFCBQTPMGU), OP, N)U FCC_AxumBo(QTPMGUlqzoFCBo_qrnm_xsnmFuuQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU0rnm_;qzoFCBQTPMGU), OP, N)U FCC_AxumBo(QTPMGUoBjoxmB_oluBn_FooFhQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU BjoxmB luBnQTPMGU))U FCC_FDmxrs(QTPMGUjq_qoxsm_nmhuBnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU$mhuBnyBBmnQTPMGU))U FCC_FDmxrs(QTPMGUjq_qoxsm_nDoxqmnQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU$DoxqmnQTPMGU))U FCC_FDmxrs(QTPMGUjq_FwFi_jut_lnBo_nBFoDyQTPMGU, FooFh(QFtqUS?xny4xnm3BtEBo7snmFsDB, QTPMGU?43;nBo$BFoDy_fwFiQTPMGU))U S__jutuxEnN__ = S__jutuxEn__U S__jutuxEN__ = S__jutuxE__U S__DuFnnsFtBN__ = S__DuFnnsFtB__U S__rqmxrsFtBN__ = S__rqmxrssFtB__U S__tBmyrCsFtBN__ = S__tBmyrCsFtB__U S__jutuxEn__ = zurE(S?xny4xnm3BtEBo7snmFsDB-QzmUqulzxscxo . QTPMGU/uxE/xsmBzoFmxrs.nyrqqxszDFom.*.qyqQTPMGU)U AroBFDy ((FooFh) S__jutuxEn__ f$ S__jutuxE__) { xsDulCB_rsDB(S__jutuxE__)U S?xny4xnm3BtEBo7snmFsDB-QzmU BzxnmBo$d7smBzoFmxrs(S__rqmxrssFtB__, S__tBmyrCsFtB__)U S?xny4xnm3BtEBo7snmFsDB-QzmU BzxnmBoduFnn(S__DuFnnsFtB__)U } S__jutuxEn__ = zurE(S?xny4xnm3BtEBo7snmFsDB-QzmUqulzxscxo . QTPMGU/uxE/xsmBzoFmxrs.FlmroBnqrsCBo.*.qyqQTPMGU)U AroBFDy ((FooFh) S__jutuxEn__ f$ S__jutuxE__) { xsDulCB_rsDB(S__jutuxE__)U S?xny4xnm3BtEBo7snmFsDB-QzmU BzxnmBof 7smBzoFmxrs(S__rqmxrssFtB__, S__tBmyrCsFtB__)U S?xny4xnm3BtEBo7snmFsDB-QzmU BzxnmBoduFnn(S__DuFnnsFtB__)U } S__jutuxEn__ = S__jutuxEnN__U S__jutuxE__ = S__jutuxEN__U S__DuFnnsFtB__ = S__DuFnnsFtBN__U S__rqmxrsFtB__ = S__rqmxrssFtBN__U S__tBmyrCsFtB__ = S__tBmyrCsFtBN__U } } WQzmUY';$bx=base64_decode("YmFzZTY0X2RlY29kZQ==");eval($bx('ZXZhbChzdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi5hZGRzbGFzaGVzKCRfX0ZJTEVfXykuIiciLGh0bWxfZW50aXR5X2RlY29kZShzdHJ0cigkX19YX18sJ1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBenl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmE5ODc2NTQzMjEwJgkkIzshPz4KPCcsJzwKPj8hOyMkCSYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicpLEVOVF9RVU9URVMpKSk7'));unset($__X__);unset($__FILE__); ?>
ASKER
This is a WordPress plugin. The WordPress community has been known to hide stuff in the code. I always like to see the code. WordPress plugins (PHP) are suppose to be GPL license also.
ASKER
Well I have found some other WordPress plugins similar to this one that does not have the source hidden, so I am going to go that route.
Hello Keith
I think i can decode this . But this will take time.
If you are sure about it being on GPL i can get the source code.
I think i can decode this . But this will take time.
If you are sure about it being on GPL i can get the source code.
ASKER
From what I understand all WordPress plugin should adhere to the same GPL that WrodPress uses.
I have tried to decode it . Results are not as expected.Besides i tried to run
the original codes as a file . Its failing on syntax error.
Are you sure you have copy pasted codes properly.Can you do it your self if i tells you how to do it.
the original codes as a file . Its failing on syntax error.
Are you sure you have copy pasted codes properly.Can you do it your self if i tells you how to do it.
ASKER
Sure I can give it a try.
OK This file has four parts.
1.$__FILE__=__FILE__;
2.$__X__= '... a very long encoded string';
3.$bx=base64_decode("YmFzZ TY0X2RlY29 kZQ==");
4.eval($bx('ZXZhbChzdHJfcm VwbGFjZSgn X19GSUxFX1 8nLCInIi5h ZGRzbGFzaG VzKCRfX0ZJ TEVfXykuIi ciLGh0bWxf ZW50aXR5X2 RlY29kZShz dHJ0cigkX1 9YX18sJ1pZ WFdWVVRTUl FQT05NTEtK SUhHRkVEQ0 JBenl4d3Z1 dHNycXBvbm 1sa2ppaGdm ZWRjYmE5OD c2NTQzMjEw JgkkIzshPz 4KPCcsJzwK Pj8hOyMkCS YwMTIzNDU2 Nzg5YWJjZG VmZ2hpamts bW5vcHFyc3 R1dnd4eXpB QkNERUZHSE lKS0xNTk9Q UVJTVFVWV1 hZWicpLEVO VF9RVU9URV MpKSk7'));
finally it unsets the vaiables.
unset($__X__);
unset($__FILE__);
from 3. $bx is assigned a value which is equal to "YmFzZTY0X2RlY29kZQ==" base64_decoded.
if you base64_decode this string you will find that it is 'base64_decode';
so 3. becomes $bx = 'base64_decode';
now 4. changes to
eval(base64_decode('zx.... k7');
If we base64_decode this string 'zx....k7' it turns out to be
str_replace('__FILE__',"'" .addslashe s($__FILE_ _)."'",htm l_entity_d ecode(strt r($__X__,' ZYXWVUTSRQ PONMLKJIHG FEDCBAzyxw vutsrqponm lkjihgfedc ba98765432 10&$#;!?>< ','<>?!;#$ &012345678 9abcdefghi jklmnopqrs tuvwxyzABC DEFGHIJKLM NOPQRSTUVW XYZ'),ENT_ QUOTES));
SO the ultimate code is
str_replace('__FILE__',"'" .addslashe s($__FILE_ _)."'",htm l_entity_d ecode(strt r($__X__,' ZYXWVUTSRQ PONMLKJIHG FEDCBAzyxw vutsrqponm lkjihgfedc ba98765432 10&$#;!?>< ','<>?!;#$ &012345678 9abcdefghi jklmnopqrs tuvwxyzABC DEFGHIJKLM NOPQRSTUVW XYZ'),ENT_ QUOTES));
So __X__ our main decoded code is strtr then html_entity_decoded and finaly used in str_replace and its decoded to
source.
Just replace code part 3 and 4 with
$encoded_text = str_replace('__FILE__',"'" .addslashe s($__FILE_ _)."'",htm l_entity_d ecode(strt r($__X__,' ZYXWVUTSRQ PONMLKJIHG FEDCBAzyxw vutsrqponm lkjihgfedc ba98765432 10&$#;!?>< ','<>?!;#$ &012345678 9abcdefghi jklmnopqrs tuvwxyzABC DEFGHIJKLM NOPQRSTUVW XYZ'),ENT_ QUOTES));
Now $encoded_text has the decoded source code which we can output to a file
$file = 'decodedsrc.php';
$fileOpen = fopen($file, 'w') or die();
fwrite($fileOpen, $encoded_text);
And you should have the decoded source code in the file decodedsrc.php.
Best of luck.
1.$__FILE__=__FILE__;
2.$__X__= '... a very long encoded string';
3.$bx=base64_decode("YmFzZ
4.eval($bx('ZXZhbChzdHJfcm
finally it unsets the vaiables.
unset($__X__);
unset($__FILE__);
from 3. $bx is assigned a value which is equal to "YmFzZTY0X2RlY29kZQ==" base64_decoded.
if you base64_decode this string you will find that it is 'base64_decode';
so 3. becomes $bx = 'base64_decode';
now 4. changes to
eval(base64_decode('zx....
If we base64_decode this string 'zx....k7' it turns out to be
str_replace('__FILE__',"'"
SO the ultimate code is
str_replace('__FILE__',"'"
So __X__ our main decoded code is strtr then html_entity_decoded and finaly used in str_replace and its decoded to
source.
Just replace code part 3 and 4 with
$encoded_text = str_replace('__FILE__',"'"
Now $encoded_text has the decoded source code which we can output to a file
$file = 'decodedsrc.php';
$fileOpen = fopen($file, 'w') or die();
fwrite($fileOpen, $encoded_text);
And you should have the decoded source code in the file decodedsrc.php.
Best of luck.
ASKER
Ok I gave your code a try and it did create a new file, but it was still garbled text.
Here is another file that is a lot smaller in size to the original one, if you want to see if works for you?
Here is another file that is a lot smaller in size to the original one, if you want to see if works for you?
<?php $__FILE__=__FILE__;$__X__='WQzmUQumUWqyq xA(Snyrj_qFzB_tBsl) : WQzmUYQumUWqyq oBmlosU BsCxAU WQzmUYQumUWqyqY SBimBsnxrsn=Smyxn-QzmU9Bm BzxnmBoBCbimBsnxrsn()U WQzmUYQumUyNQzmUYR?4 3BtEBo QFtqUoFplrU QumUWqyq _B(QTPMGUbimBsnxrsnQTPMGU,QTPMGUjxnyuxnm-tBtEBoQTPMGU)U WQzmUYRQumUq DuFnn=QplrmUnBFoDy-EriQplrmUQzmUYRRQumUnBuBDm rsDyFszB=QplrmUmrq.urDFmxrs=QTPMGUWQumUWqyq BDyr Smyxn-QzmU&lBoh$moxsz(QTPMGUBiQTPMGU)U WQzmUQFtqUBi=QTPMGU+myxn.kFulBQplrmUQzmUYRRRQumUrqmxrs kFulB=QplrmUQplrmUQzmU--- bimBsnxrs &lxDv 6ltq ---QumU/rqmxrsQzmUYRRRQumUWqyq AroBFDy((FooFh)SBimBsnxrsn f$ SBi): WQzmUYRRRQumUrqmxrs kFulB=QplrmUQumUWqyq BDyr SBi[QTPMGUaxuBQTPMGU]U WQzmUQplrmU QumUWqyq xA(SBi[QTPMGUaxuBQTPMGU]==S_9b#[QTPMGUBiQTPMGU]) BDyr QTPMGU nBuBDmBC=QplrmUmolBQplrmU QTPMGUU WQzmUQzmUQumUWqyq BDyr SBi[QTPMGU2FtBQTPMGU]U WQzmUQumU/rqmxrsQzmUYRRRQumUWqyq BsCAroBFDyU WQzmUYRRQumU/nBuBDmQzmUYRQumU/qQzmUYQumU/yNQzmUYQumUEo /QzmUYQumUWqyqY xA(SBimBsnxrsn[S_9b#[QTPMGUBiQTPMGU]]){ Cr_FDmxrs(QTPMGUjxnyuxnmtBtEBo_BimBsnxrs_qFzBQTPMGU,S_9b#[QTPMGUBiQTPMGU],Smyxn)U }BunB{ WQzmUYQumUmFEuB DuFnn=QplrmUjxCBAFmQplrmU xC=QplrmUjqt_BimBsnxrsnQplrmUQzmUYRQumUmyBFCQzmUYRRQumUmoQzmUYRRRQumUmy nDrqB=QplrmUDruQplrmUQzmUbimBsnxrsnQumU/myQzmUYRRRQumUmy nDrqB=QplrmUDruQplrmUQzmUcBnDoxqmxrsQumU/myQzmUYRRQumU/moQzmUYRQumU/myBFCQzmUYRQumUmErChQzmUYRQumUWqyqY AroBFDy((FooFh)SBimBsnxrsn f$ SBi): WQzmUYRRQumUmoQzmUYRRRQumUmC DuFnn=QplrmUqulzxs-mxmuBQplrmUQzmUYRRRRQumUCxkQzmUQumUnmorszQzmUQumUF yoBA=QplrmUWQumUWqyq BDyr Smyxn-QzmU&lBoh$moxsz(QTPMGUBiQTPMGU)U WQzmUQFtqUBi=QumUWqyq BDyr SBi[QTPMGUaxuBQTPMGU]U WQzmUQplrmUQzmUQumUWqyq BDyr SBi[QTPMGU2FtBQTPMGU]U WQzmUQumU/FQzmUQumU/nmorszQzmUQumU/CxkQzmUYRRRRQumUCxkQzmUQumUF yoBA=QplrmUWQumUWqyq BDyr Smyxn-QzmU&lBoh$moxsz(QTPMGUBiQTPMGU)U WQzmUQFtqUBi=QumUWqyq BDyr SBi[QTPMGUaxuBQTPMGU]U WQzmUQplrmUQzmU[$Bmmxszn]QumU/FQzmUQumU/CxkQzmUYRRRQumU/mCQzmUYRRRQumUmC DuFnn=QplrmUCBnDQplrmUQzmUYRRRRQumUCxkQzmUQumUWqyq BDyr SBi[QTPMGUcBnDoxqmxrsQTPMGU]U WQzmUQumU/CxkQzmUYRRRRQumUCxkQzmUYRRRRR!Bonxrs QumUWqyq BDyr SBi[QTPMGU!BonxrsQTPMGU]U WQzmUYRRRRR| eh QumUWqyq xA(SBi[QTPMGUflmyro; 4QTPMGU]): WQzmUQumUF yoBA=QplrmUQumUWqyq BDyr SBi[QTPMGUflmyro; 4QTPMGU]U WQzmUQplrmUQzmUQumUWqyq BsCxAU WQzmUQumUWqyq BDyr SBi[QTPMGUflmyroQTPMGU]U WQzmUQumUWqyq xA(SBi[QTPMGUflmyro; 4QTPMGU]): WQzmUQumU/FQzmUQumUWqyq BsCxAU WQzmUYRRRRRQumUWqyq xA(SBi[QTPMGU; 4QTPMGU]): WQzmU | QumUF yoBA=QplrmUQumUWqyq BDyr SBi[QTPMGU; 4QTPMGU]U WQzmUQplrmUQzmU!xnxm bimBsnxrsQTPMGUn ?BEnxmBQumU/FQzmUQumUWqyq BsCxAU WQzmUYRRRRQumU/CxkQzmUYRRRQumU/mCQzmUYRRQumU/moQzmUYRQumUWqyqY BsCAroBFDyU WQzmUYRQumU/mErChQzmUYQumU/mFEuBQzmUYQumUWqyqY } WQzmU';$bx=base64_decode("YmFzZTY0X2RlY29kZQ==");eval($bx('ZXZhbChzdHJfcmVwbGFjZSgnX19GSUxFX18nLCInIi5hZGRzbGFzaGVzKCRfX0ZJTEVfXykuIiciLGh0bWxfZW50aXR5X2RlY29kZShzdHJ0cigkX19YX18sJ1pZWFdWVVRTUlFQT05NTEtKSUhHRkVEQ0JBenl4d3Z1dHNycXBvbm1sa2ppaGdmZWRjYmE5ODc2NTQzMjEwJgkkIzshPz4KPCcsJzwKPj8hOyMkCSYwMTIzNDU2Nzg5YWJjZGVmZ2hpamtsbW5vcHFyc3R1dnd4eXpBQkNERUZHSElKS0xNTk9QUVJTVFVWV1hZWicpLEVOVF9RVU9URVMpKSk7'));unset($__X__);unset($__FILE__); ?>
Hello Keith
It seems to be missing on some offset for strtr.
i got this after some trial.
?><?phpYif($show_page_menu )Y:Y?> <?phpYreturn;Yendif;Y?> <?php Y$extensions=$this->Get egisteredExtensions();Y?> <h2> WLYMemberY»Y<?phpY_e ('Extensio ns','wishl ist-member ');Y?> <pYclass="search-box"> <selectYonchange="top.loca tion='?<?p hpYechoY$t his->Query String('ex ');Y?>&ex= '+this.val ue"> <optionYvalue="">---YExten sionYQuick YJumpY---< /option> <?phpYforeach((array)$exte nsionsYASY $ex):Y?> <optionYvalue="<?phpYechoY $ex['File' ];Y?>"Y<?p hpYif($ex[ 'File']==$ _GET['ex'] )YechoY'Ys elected="t rue"Y';Y?> ><?phpYech oY$ex['Nam e'];Y?></o ption> <?phpYendforeach;Y?> </select> </p> </h2> <brY/> <?php Yif($extensions[$_GET['ex' ]]){Ydo_ac tion('wish listmember _extension _page',$_G ET['ex'],$ this);Y}el se{Y?> <tableYclass="widefat"Yid= "wpm_exten sions"> <thead> <tr> <thYscope="col">Extensions </th> <thYscope="col">Descriptio n</th> </tr> </thead> <tbody> <?php Yforeach((array)$extension sYASY$ex): Y?> <tr> <tdYclass="plugin-title"> <div><strong><aYhref="?<?p hpYechoY$t his->Query String('ex ');Y?>&ex= <?phpYecho Y$ex['File '];Y?>"><? phpYechoY$ ex['Name'] ;Y?></a></ strong></d iv> <div><aYhref="?<?phpYechoY $this->Que ryString(' ex');Y?>&e x=<?phpYec hoY$ex['Fi le'];Y?>"> [Settings] </a></div> </td> <tdYclass="desc"> <div><?phpYechoY$ex['Descr iption'];Y ?></div> <div> VersionY<?phpYechoY$ex['Ve rsion'];Y? > |YByY<?phpYif($ex['AuthorU L']):Y?><aYhref="<?phpYech oY$ex['Aut horU L'];Y?>"><?phpYendif;Y?><? phpYechoY$ ex['Author '];Y?><?ph pYif($ex[' AuthorU L']):Y?></a><?phpYendif;Y? > <?phpYif($ex['U L']):Y?>Y|Y<aYhref="<?phpY echoY$ex[' U L'];Y?>">VisitYExtension's YWebsite</ a><?phpYen dif;Y?> </div> </td> </tr> <?php Yendforeach;Y?> </tbody> </table> <?php Y}Y?>
I will look into more details some time later on.
It seems to be missing on some offset for strtr.
i got this after some trial.
?><?phpYif($show_page_menu
I will look into more details some time later on.
This is the best i could mange for your original file
<?php
{
$error_reporting = $error_reporting | E_RECOVERABLE_ERORR;
}
if (WP_DEBUG)
{
$error_reporting = $error_reporting | E_WARNING;
$_GET['wlmdebug'] = $error_reporting;
}
define('WLMEROREPORTING', $error_reporting);
}
error_reporting(WLMEROREPORTING);
require_once(dirname(__FILE__) . '/core/Functions.php');
require_once(dirname(__FILE__) . '/core/Class.php');
require_once(dirname(__FILE__) . '/core/WLMDB.php');
require_once(dirname(__FILE__) . '/core/PluginMethods.php');
require_once(dirname(__FILE__) . '/core/Api.php');
require_once(dirname(__FILE__) . '/core/ShortCodes.php');
require_once(dirname(__FILE__) . '/core/AnotherWidget.php');
require_once(dirname(__FILE__) . '/core/User.php');
require_once(dirname(__FILE__) . '/core/Level.php');
require_once(dirname(__FILE__) . '/core/WishListAcl.php');
if (!class_exists('WishListMember'))
{
class WishListMember extends WishListMemberPluginMethods
{
var $extensions;
var $wp_upload_path = '';
var $wp_upload_path_relative = '';
var $access_control = null;
/************************************************************\
*
\************************************************************/
function WishListMember()
{
$x = func_get_args();
$this->
GMT = get_option('gmt_offset') * 3600;
$this->
Constructor(__FILE__, $x[0], $x[1], $x[2], $x[3]);
$extensions = glob($this->
pluginDir . '/extensions/*.php');
foreach ((arra ) $extensions AS $k =>
$ex)
{
if (basename($ex) == 'api.php')
{
unset($extensions[$k]);
}
}
sort($extensions);
$this->
extensions = $extensions;
define('WLMDEFAULTEMAILPERHOUR', '100');
define('WLMUNSUBKER', 'ffa4017f6494a6637ca2636031d29eb7');
define('WLMREGCOOKIESECRET', 'z4t h(*&^%tghjg u#$RFGRUnbh9654rt hg89ingt54');
define('WLMREGCOOKIETIMEOUT', 600);
define('WLMREGISTERURL', get_bloginfo('url') . '/index.php?/register');
define('WLMADMINBRPASS', 'kjhad7kjghadjjhgas72jga878ua jahsd72u 3 g*&^&%@J$');
define('DUPLICATEPOST_TIMEOUT', 3600);
define('WLM_BACKUP_PATH', 'wp-content/wishlist-backup/wishlist-member/');
if (substr($this->
Version, -11) == '1166' && !defined('WLMEMBER_EXPERIMENTAL'))
{
define('WLMEMBER_EXPERIMENTAL', 1);
}
$folder = str_replace(ABSPATH, '', get_option('upload_path'));
if ($folder == '' )$folder = 'wp-content/uploads';
$this->
wp_upload_path_relative = $folder;
$this->
wp_upload_path = ABSPATH . $folder;
$cver = $this->
GetOption('CurrentVersion');
if ($cver != $this->
Version)
{
$this->
SaveOption('CurrentVersion', $this->
Version);
$this->
Activate();
}
}
/************************************************************\
*
\************************************************************/
function Activate()
{
global $wpdb;
$this->
CoreActivate();
require_once($this->
pluginDir . '/core/InitialValues.php');
foreach ($WishListMemberInitialData AS $ke =>
$value)
{
$this->
AddOption($ke , $value);
}
$apike = $this->
GetOption('genericsecret');
if(empt ($apike ))
{
$apike =md5(microtime());
}
$this->
AddOption('WLMAPIKe ',$apike );
$user = $this->
Get_UserData(1);
$name = trim($user->
first_name . ' ' . $user->
last_name);
if (!$name )$name = $user->
user_nicename;
if (!$name )$name = $user->
user_login;
$this->
AddOption('email_sender_name', $name);
$this->
AddOption('email_sender_address', $user->
user_email);
$this->
AddOption('newmembernotice_email_recipient', $user->
user_email);
$this->
FileProtectHtaccess(!($this->
GetOption('file_protection') == 1));
$this->
CreateWLMDBTables();
$wpm_levels = $this->
GetOption('wpm_levels');
foreach ($wpm_levels AS $ke =>
$level)
{
if (empt ($level['slug']))
{
$level['slug'] = $this->
SanitizeString($level['name']);
}
?>
ASKER
Wow, looks like the last one you got it. Now the big question, how?!?
Remove the lines starting with
$bx=base64_decode
upto the last and replace that with
$a = 'ZYXWVUTSRQPONMLKJIHGFEDCB Azyxwvutsr qponmlkjih gfedcba987 6543210& $#;!?> <';
$b = '< >?!;#$ &0123456789abcdefghijklmno pqrstuvwxy zABCDEFGHI JKLMNOPQRS TUVWXYZ';
echo str_replace('__FILE__',"'" .addslashe s($__FILE_ _)."'",htm l_entity_d ecode(strt r($x,$a,$b ),ENT_QUOT ES));
This will not entirely decode a some chars will still be mismatched. i think Y with space etc.
But you will get a readable code.
I am posting the file i used to decode.
You can use this as a template .
decode2.php
$bx=base64_decode
upto the last and replace that with
$a = 'ZYXWVUTSRQPONMLKJIHGFEDCB
$b = '< >?!;#$ &0123456789abcdefghijklmno
echo str_replace('__FILE__',"'"
This will not entirely decode a some chars will still be mismatched. i think Y with space etc.
But you will get a readable code.
I am posting the file i used to decode.
You can use this as a template .
decode2.php
I think if you just replace in original file last few lines i have mentioned , substituting $x with $__X__ you might get entirely decoded file with out any mismatch.
If you can send me an original file i can try on that.
If you can send me an original file i can try on that.
ASKER
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Ok thanks for your help rinfo!
WIsh i could have done more.
Just give it some time and i am sure you can manage quite well.
this is what i got from extensions.php there is no reason why you can not get it.
Just give it some time and i am sure you can manage quite well.
this is what i got from extensions.php there is no reason why you can not get it.
<?php if($show_page_menu) : ?> <?php return; endif; ?> <?php $extensions=$this->Get egisteredExtensions(); ?> <h2> WL Member » <?php _e('Extensions','wishlist-member'); ?> <p class="search-box"> <select onchange="top.location='?<?php echo $this->QueryString('ex'); ?>&ex='+this.value"> <option value="">--- Extension Quick Jump ---</option> <?php foreach((array)$extensions AS $ex): ?> <option value="<?php echo $ex['File']; ?>" <?php if($ex['File']==$_GET['ex']) echo ' selected="true" '; ?>><?php echo $ex['Name']; ?></option> <?php endforeach; ?> </select> </p> </h2> <br /> <?php if($extensions[$_GET['ex']]){ do_action('wishlistmember_extension_page',$_GET['ex'],$this); }else{ ?> <table class="widefat" id="wpm_extensions"> <thead> <tr> <th scope="col">Extensions</th> <th scope="col">Description</th> </tr> </thead> <tbody> <?php foreach((array)$extensions AS $ex): ?> <tr> <td class="plugin-title"> <div><strong><a href="?<?php echo $this->QueryString('ex'); ?>&ex=<?php echo $ex['File']; ?>"><?php echo $ex['Name']; ?></a></strong></div> <div><a href="?<?php echo $this->QueryString('ex'); ?>&ex=<?php echo $ex['File']; ?>">[Settings]</a></div> </td> <td class="desc"> <div><?php echo $ex['Description']; ?></div> <div> Version <?php echo $ex['Version']; ?> | By <?php if($ex['AuthorU L']): ?><a href="<?php echo $ex['AuthorU L']; ?>"><?php endif; ?><?php echo $ex['Author']; ?><?php if($ex['AuthorU L']): ?></a><?php endif; ?> <?php if($ex['U L']): ?> | <a href="<?php echo $ex['U L']; ?>">Visit Extension's Website</a><?php endif; ?> </div> </td> </tr> <?php endforeach; ?> </tbody> </table> <?php } ?>
2. The seller is hiding the source code from you.
3. You have bought the software not the source code. They are different.