package Ġcom . tres lines . app base Ċ Ċ import Ġandroid . content . Activity NotFoundException Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . Gravity Ċ import Ġandroid . view . View Ċ import Ġandroid . view . animation . Animation Ċ import Ġandroid . view . animation . Animation Utils Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . annotation . Anim Res Ċ import Ġandroidx . annotation . Array Res Ċ import Ġandroidx . annotation . String Res Ċ import Ġjava . util . regex . Pattern Ċ Ċ fun ĠView . setVisible ( visible : ĠBoolean ) Ġ{ ĊĠĠĠ Ġvisibility Ġ= Ġif Ġ( visible ) ĠView . VISIBLE Ġelse ĠView . GONE Ċ } ĊĊ Ċ fun ĠView . navigate To Google Play Store ( context : ĠContext , Ġapplication Id : ĠString ) Ġ{ ĊĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . startActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . ACTION _ VIEW , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse (" market :// details ? id =$ application Id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ġcatch Ġ( an fe : ĠActivity NotFoundException ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . startActivity ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIntent ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠIntent . ACTION _ VIEW , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠUri . parse (" http :// play . google . com / store / apps / details ? id =$ application Id ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠView . showMessage ( context : ĠContext , Ġ@ String Res Ġmsg : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġtoast Ġ= ĠToast . makeText ( context , Ġmsg , ĠToast . LENGTH _ LONG ) ĊĠĠĠ Ġtoast . set Gravity ( Gravity . CENTER , Ġ 0 , Ġ 0 ) ĊĠĠĠ Ġtoast . show () Ċ } Ċ Ċ fun ĠView . load Animation ( context : ĠContext , Ġ@ Anim Res Ġanim : ĠInt ): ĠAnimation Ġ{ ĊĠĠĠ Ġreturn ĠAnimation Utils . load Animation ( ĊĠĠĠĠĠĠĠ Ġcontext , ĊĠĠĠĠĠĠĠ Ġanim ĊĠĠĠ Ġ) Ċ } Ċ Ċ fun ĠView . share ( context : ĠContext , Ġ@ String Res Ġtitle Id : ĠInt , Ġ@ String Res Ġrecommendation Text Id : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġi Ġ= ĠIntent ( Intent . ACTION _ SEND ) ĊĠĠĠ Ġi . type Ġ= Ġ" text / plain " ĊĠĠĠ Ġi . putExtra ( Intent . EXTRA _ SUBJECT , Ġcontext . getText ( R . string . app _ name )) ĊĠĠĠ Ġi . putExtra ( ĊĠĠĠĠĠĠĠ ĠIntent . EXTRA _ TEXT , ĊĠĠĠĠĠĠĠ Ġcontext . getText ( recommend ation Text Id ) ĊĠĠĠ Ġ) ĊĠĠĠ Ġcontext . startActivity ( Intent . create Chooser ( i , Ġcontext . getText ( title Id ))) Ċ } Ċ Ċ fun ĠView . open Web Page ( context : ĠContext , Ġurl : ĠString ) Ġ{ ĊĠĠĠ Ġval Ġwebpage : ĠUri Ġ= ĠUri . parse ( url ) ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW , Ġwebpage ) ĊĠĠĠ Ġif Ġ( intent . resolve Activity ( context . package Manager ) Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontext . startActivity ( intent ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ /** Ċ Ġ* Ġ Ġ< string - array Ġname =" email Array Id "> Ċ Ġ* ĠĠĠĠĠ Ġ< item > your address @ email . com </ item > Ċ Ġ* Ġ Ġ</ string - array > Ċ Ġ*/ Ċ fun ĠView . send Email ( subject : ĠString , Ġtext : ĠString , Ġ@ Array Res Ġemail Array Id : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ SEND ) ĊĠĠĠ Ġintent . type Ġ= Ġ" application / octet - stream " ĊĠĠĠ Ġintent . putExtra ( Intent . EXTRA _ SUBJECT , Ġsubject ) ĊĠĠĠ Ġval Ġto : ĠArray < String > Ġ= Ġresources . getString Array ( email Array Id ) ĊĠĠĠ Ġintent . putExtra ( Intent . EXTRA _ EMAIL , Ġto ) ĊĠĠĠ Ġintent . putExtra ( Intent . EXTRA _ TEXT , Ġtext ) ĊĠĠĠ Ġcontext . startActivity ( Intent . create Chooser ( intent , Ġ" Send ĠFeedback ... ")) Ċ } Ċ Ċ fun ĠView . is Email ( email : ĠString ): ĠBoolean Ġ{ ĊĠĠĠ Ġval Ġptr : ĠPattern Ġ= ĠPattern . compile ( ĊĠĠĠĠĠĠĠ Ġ"( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: (?: (?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* @ (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* |( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *) * \\ < (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: @ (?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* )) *( ?: ,@ (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* )) *) * :( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *) ?( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* @ (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* \\ >( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *) |( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *) * :( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: (?: (?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* @ (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* |( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *) * \\ < (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: @ (?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* )) *( ?: ,@ (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* )) *) * :( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *) ?( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* @ (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* \\ >( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: , \\ s *( ?: (?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* @ (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* |( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *) * \\ < (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: @ (?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* )) *( ?: ,@ (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* )) *) * :( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *) ?( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \" (?: [^ \\\" \\ r \\\\ ]| \\\\ .| (?: (?: \\ r \\ n )? [ Ġ\\ t ])) * \" (?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* @ (?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *)( ?: \\ .( ?: (?: \\ r \\ n )? [ Ġ\\ t ]) *( ?: [^ () <> @ , ;: \\\\ \" .\\ [ \\ ] Ġ\\ 0 0 0 - \\ 0 3 1 ]+ (?: (?: (?: \\ r \\ n )? [ Ġ\\ t ])+ | \\ Z |( ? =[ \\ [\" () <> @ , ;: \\\\ \" .\\ [ \\ ]])) | \\ [ ([^ \\ [ \\ ]\\ r \\\\ ]| \\\\ . )* \\ ]( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* ))* \\ >( ?: (?: \\ r \\ n )? [ Ġ\\ t ])* )) *) ?; \\ s *) " ĊĠĠĠ Ġ) ĊĠĠĠ Ġreturn Ġptr . matcher ( email . replace ("\\ s +". to Regex (), Ġ" ")). matches () Ċ }