package Ġcom . sed mell uq . discord . lav ap layer . source . youtube Ċ Ċ import Ġcom . sed mell uq . discord . lav ap layer . source . youtube . Y outube Cipher Operation Type .* Ċ Ċ /** Ċ Ġ* ĠDescri bes Ġone Ġsignature Ġcipher Ċ Ġ*/ Ċ class ĠY outube Signature Cipher Ġ{ ĊĠĠĠ Ġprivate Ġval Ġoperations Ġ= Ġmutable ListOf < Y outube Cipher Operation >() ĊĊĠĠĠ Ġvar Ġscript Timestamp Ġ= Ġ"" ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return ĠTrue Ġif Ġthe Ġcipher Ġcontains Ġno Ġoperations . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġval ĠisEmpty : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġoperations . isEmpty () ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġtext ĠText Ġto Ġapply Ġthe Ġcipher Ġon ĊĠĠĠĠ Ġ* Ġ@ return ĠThe Ġresult Ġof Ġthe Ġcipher Ġon Ġthe Ġinput Ġtext ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġapply ( text : ĠString ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠStringBuilder ( text ) ĊĠĠĠĠĠĠĠ Ġfor Ġ( operation Ġin Ġoperations ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( operation . type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSW AP Ġ-> Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġoperation . parameter Ġ% Ġtext . length ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtemp Ġ= Ġbuilder [ 0 ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Char At ( 0 , Ġbuilder [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . set Char At ( position , Ġtemp ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRE VERSE Ġ-> Ġbuilder . reverse () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠS LIC E , ĠSPL ICE Ġ-> Ġbuilder . delete ( 0 , Ġoperation . parameter ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġbuilder . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ param Ġoperation ĠThe Ġoperation Ġto Ġadd Ġto Ġthis Ġcipher ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd Operation ( operation : ĠY outube Cipher Operation ) Ġ{ ĊĠĠĠĠĠĠĠ Ġoperations . add ( operation ) ĊĠĠĠ Ġ} Ċ } Ċ