using System; 
using System.Text .RegularExpressions ; 
using System.Collections .Generic ; 
using System.Linq ; 
 
public class Test
{ 
 	private static  string LookupReplace( string text,  List< string>  newList) 
 	{ 
		return  "~"  +  newList.IndexOf ( text) .ToString ( )  +  "~" ; 
 	} 
 
  	private static  string NumberedReplace( ) 
 	{ 
		i++; 
		return  "~"  +  i.ToString ( )  +  "~" ; 
 	} 
 
    public static  int  i =  - 1 ; 
 
    public static  void  Main( ) 
    {    
        string text =  "iif(instr(|Wellington, New Zealand|,|,|)>0,|Wellington, New Zealand|,|Wellington, New Zealand| & |, | & |New Zealand|) & | to | & iif(instr(|Jeddah, Saudi Arabia|,|,|)>0,|Jeddah, Saudi Arabia|,|Jeddah, Saudi Arabia| & |, | & |Saudi Arabia|) & iif(|Jeddah, Saudi Arabia|=||,||,| via | & |Jeddah, Saudi Arabia|)" ; 
        var re =  new Regex( @"\|.*?\|" ) ; 
        var newList =  re.Matches ( text) 
            			.OfType < Match> ( ) 
            			.Select ( m =>  m.Value ) 
    					.ToList ( ) ; 
        string result =  re.Replace ( text,  x =>  LookupReplace( x.Value ,  newList) ) ; 
        Console.WriteLine ( result) ; 
 
        result =  re.Replace ( text,  x =>  NumberedReplace( ) ) ; 
        Console.WriteLine ( result) ; 
    } 
 
} 
 
				dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uVGV4dC5SZWd1bGFyRXhwcmVzc2lvbnM7CnVzaW5nIFN5c3RlbS5Db2xsZWN0aW9ucy5HZW5lcmljOwp1c2luZyBTeXN0ZW0uTGlucTsKCnB1YmxpYyBjbGFzcyBUZXN0CnsKIAlwcml2YXRlIHN0YXRpYyBzdHJpbmcgTG9va3VwUmVwbGFjZShzdHJpbmcgdGV4dCwgTGlzdDxzdHJpbmc+IG5ld0xpc3QpCiAJewoJCXJldHVybiAifiIgKyBuZXdMaXN0LkluZGV4T2YodGV4dCkuVG9TdHJpbmcoKSArICJ+IjsKIAl9CiAJCiAgCXByaXZhdGUgc3RhdGljIHN0cmluZyBOdW1iZXJlZFJlcGxhY2UoKQogCXsKCQlpKys7CgkJcmV0dXJuICJ+IiArIGkuVG9TdHJpbmcoKSArICJ+IjsKIAl9CiAJCiAgICBwdWJsaWMgc3RhdGljIGludCBpID0gLTE7CiAgICAKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBNYWluKCkKICAgIHsgICAKICAgICAgICBzdHJpbmcgdGV4dCA9ICJpaWYoaW5zdHIofFdlbGxpbmd0b24sIE5ldyBaZWFsYW5kfCx8LHwpPjAsfFdlbGxpbmd0b24sIE5ldyBaZWFsYW5kfCx8V2VsbGluZ3RvbiwgTmV3IFplYWxhbmR8ICYgfCwgfCAmIHxOZXcgWmVhbGFuZHwpICYgfCB0byB8ICYgaWlmKGluc3RyKHxKZWRkYWgsIFNhdWRpIEFyYWJpYXwsfCx8KT4wLHxKZWRkYWgsIFNhdWRpIEFyYWJpYXwsfEplZGRhaCwgU2F1ZGkgQXJhYmlhfCAmIHwsIHwgJiB8U2F1ZGkgQXJhYmlhfCkgJiBpaWYofEplZGRhaCwgU2F1ZGkgQXJhYmlhfD18fCx8fCx8IHZpYSB8ICYgfEplZGRhaCwgU2F1ZGkgQXJhYmlhfCkiOwogICAgICAgIHZhciByZSA9IG5ldyBSZWdleChAIlx8Lio/XHwiKTsKICAgICAgICB2YXIgbmV3TGlzdCA9IHJlLk1hdGNoZXModGV4dCkKICAgICAgICAgICAgCQkJLk9mVHlwZTxNYXRjaD4oKQogICAgICAgICAgICAJCQkuU2VsZWN0KG0gPT4gbS5WYWx1ZSkKICAgIAkJCQkJLlRvTGlzdCgpOwogICAgICAgIHN0cmluZyByZXN1bHQgPSByZS5SZXBsYWNlKHRleHQsIHggPT4gTG9va3VwUmVwbGFjZSh4LlZhbHVlLCBuZXdMaXN0KSk7CiAgICAgICAgQ29uc29sZS5Xcml0ZUxpbmUocmVzdWx0KTsKICAgICAgICAKICAgICAgICByZXN1bHQgPSByZS5SZXBsYWNlKHRleHQsIHggPT4gTnVtYmVyZWRSZXBsYWNlKCkpOwogICAgICAgIENvbnNvbGUuV3JpdGVMaW5lKHJlc3VsdCk7CiAgICB9CiAgICAKfQ==
				
				 
				 
				 
				 
			 
			
				
			
			
				
	
		
		 
	
		
		  stdout 
			 
	
		iif(instr(~0~,~1~)>0,~0~,~0~ & ~4~ & ~5~) & ~6~ & iif(instr(~7~,~1~)>0,~7~,~7~ & ~4~ & ~12~) & iif(~7~=~14~,~14~,~16~ & ~7~)
iif(instr(~0~,~1~)>0,~2~,~3~ & ~4~ & ~5~) & ~6~ & iif(instr(~7~,~8~)>0,~9~,~10~ & ~11~ & ~12~) & iif(~13~=~14~,~15~,~16~ & ~17~)