# Print X without X (robber's thread)

This is the robber's thread of a challenge. You can view the cop's thread here

A pretty common beginner style question is to print some string, but, there's a catch!, you need to do it without using any of the characters in the string itself!

For this challenge we will find out who is the best at printing X without X. There are two threads to this, a cop's thread and a robber's thread.

In the cop's thread users will choose a language (which we will call Y) and a string (which we will call X) and write a program in language Y which takes no input and outputs X without using any of the characters in X. The cop will then post both X and Y without revealing the program they have written.

Robbers will be select cop answers and write programs in language Y which take no input and output X. They will post these "cracks" as answers in this thread. A crack need only work not be the intended solution.

Once a cop's answer is one week old, so long as it has not been cracked, the cop may reveal their program and mark it as "safe". Safe answers can no longer be cracked

Robbers will be scored by the total number of successful cracks with more cracks being better.

• Congrats on an excellent challenge with high 'replay value'. I've had a lot of fun participating on both sides, digging into a couple of languages for the first time along the way. – Dingus Aug 20 at 3:22

# Python 3, cracks @nthistle's answer

𝓹𝓻𝓲𝓷𝓽(𝓬𝓱𝓻(97)+𝓬𝓱𝓻(98)+𝓬𝓱𝓻(99)+𝓬𝓱𝓻(100)+𝓬𝓱𝓻(101)+𝓬𝓱𝓻(102)+𝓬𝓱𝓻(103)+𝓬𝓱𝓻(104)+𝓬𝓱𝓻(105)+𝓬𝓱𝓻(106)+𝓬𝓱𝓻(107)+𝓬𝓱𝓻(108)+𝓬𝓱𝓻(109)+𝓬𝓱𝓻(110)+𝓬𝓱𝓻(111)+𝓬𝓱𝓻(112)+𝓬𝓱𝓻(113)+𝓬𝓱𝓻(114)+𝓬𝓱𝓻(115)+𝓬𝓱𝓻(116)+𝓬𝓱𝓻(117)+𝓬𝓱𝓻(118)+𝓬𝓱𝓻(119)+𝓬𝓱𝓻(120)+𝓬𝓱𝓻(121)+𝓬𝓱𝓻(122)+𝓬𝓱𝓻(65)+𝓬𝓱𝓻(66)+𝓬𝓱𝓻(67)+𝓬𝓱𝓻(68)+𝓬𝓱𝓻(69)+𝓬𝓱𝓻(70)+𝓬𝓱𝓻(71)+𝓬𝓱𝓻(72)+𝓬𝓱𝓻(73)+𝓬𝓱𝓻(74)+𝓬𝓱𝓻(75)+𝓬𝓱𝓻(76)+𝓬𝓱𝓻(77)+𝓬𝓱𝓻(78)+𝓬𝓱𝓻(79)+𝓬𝓱𝓻(80)+𝓬𝓱𝓻(81)+𝓬𝓱𝓻(82)+𝓬𝓱𝓻(83)+𝓬𝓱𝓻(84)+𝓬𝓱𝓻(85)+𝓬𝓱𝓻(86)+𝓬𝓱𝓻(87)+𝓬𝓱𝓻(88)+𝓬𝓱𝓻(89)+𝓬𝓱𝓻(90)+𝓬𝓱𝓻(33)+𝓬𝓱𝓻(34)+𝓬𝓱𝓻(35)+𝓬𝓱𝓻(36)+𝓬𝓱𝓻(37)+𝓬𝓱𝓻(38)+𝓬𝓱𝓻(39)+𝓬𝓱𝓻(42)+𝓬𝓱𝓻(44)+𝓬𝓱𝓻(46)+𝓬𝓱𝓻(47)+𝓬𝓱𝓻(58)+𝓬𝓱𝓻(59)+𝓬𝓱𝓻(60)+𝓬𝓱𝓻(61)+𝓬𝓱𝓻(62)+𝓬𝓱𝓻(63)+𝓬𝓱𝓻(64)+𝓬𝓱𝓻(91)+𝓬𝓱𝓻(93)+𝓬𝓱𝓻(94)+𝓬𝓱𝓻(95)+𝓬𝓱𝓻(96)+𝓬𝓱𝓻(123)+𝓬𝓱𝓻(124)+𝓬𝓱𝓻(125)+𝓬𝓱𝓻(126))


Try it online!

• Almost exactly the same as mine, nice job! – nthistle Jul 25 at 16:12
• @nthistle Thanks! This was fun – Luis Mendo Jul 25 at 16:13
• Can someone explain why this works? – Surculose Sputum Jul 25 at 16:20
• @SurculoseSputum I took inspiration from this Q&A, which I recently read by chance. I wasn't sure it would work for builtin methods – Luis Mendo Jul 25 at 16:28
• Why this answer got more upvotes than the cops answer is the mystery of Stack Exchange. – the default. Jul 28 at 16:16

# Python 3.7, 128 bytes, cracks jez's answer

import sys
class A:__class_getitem__=chr
class B:__class_getitem__=ord
class C:__class_getitem__=sys.stdout.write
C[A[B["'"]+1]]


Try it online!

• You beat me to it! I had just realized I could use __class_getitem__ to call functions when I saw the notification. Good job! Not sure why you need three classes though. chr is totally unnecessary. – Wheat Wizard Jul 27 at 2:49
• Beat me by a minute. Alternate solution: copyright._Printer__lines='print\x28"\x28"),exit\x28)';copyright._Printer__setup.__globals__['__builtins__']['len']=eval;'%s'%copyright – Sisyphus Jul 27 at 2:51
• Love it. (and @Sisyphus's solution too). And it has introduced me to __class_getitem__ for the first time. There's no need to golf, true, but wouldn't it be fun? Try to beat my 97 bytes. – jez Jul 27 at 2:53
• @jez 29 bytes - Try it online! – Sisyphus Jul 27 at 3:02
• @Sisyphus You should have posted that as a cop answer rather than wasting it here. – pppery Jul 27 at 3:03

send("ev"+("%x"%(5+5))+"l",send("ev"+("%x"%(5+5))+"l",("%d"%(4-3))+("%d"%(4-3))+"2"+("%f"%2)[4-3]+"chr")+"uts \""+send("ev"+("%x"%(5+5))+"l",("%d"%(4-3))+("%d"%(4-3))+"2"+("%f"%2)[4-3]+"chr")+send("ev"+("%x"%(5+5))+"l","60"+("%f"%2)[4-3]+"chr")+("%f"%2)[4-3]+send("ev"+("%x"%(5+5))+"l","36"+("%f"%2)[4-3]+"chr")+("%x"%(5+5))+("%d"%(4-3))+"\"")


Try it online!

I'm gonna be honest – about an hour ago, I didn't know Ruby. But I didn't let that stop me!

Explanation: In general, my approach to these is to get some kind of eval construct, and then convert numbers to characters and combine to get any payload (as long as numbers and + allowed, and you can do the former with the language, this works).

The immediate problems with this one are that we don't have access to p, which is necessary for any(?) kind of printing in ruby (p, puts, pp, ...), we can't use a, so eval is out, and we can't use ., so it's difficult to call any methods or get attributes. For that matter, we're going to have difficulty converting numbers => characters without Integer.chr (I found some hacky ways to get it to call without using ., including overriding * for Integers, but not without using a in class).

In my quest to find reflection tricks that would be useful, I stumbled across the send method, although it took a while before I realized you didn't have to invoke it on an object. Now we're at send("eval","[payload]"), but still need a way to construct strings. I banged my head on this for a while before I realized that for the a restriction at least, I could simply use a format string with hex. ("%x" % 10) gets us a, although we need to change 10 to 5+5 in order to bypass the 1 restriction.

Great, now we have eval. Unfortunately, p is not a hex character. Not a problem, though, since we have eval! We can recover "." from ("%f"%1)[1] (changing to ("%f"%2)[4-3] to bypass 1), so now we can just send "112.chr" to eval, and we're golden.

From here it's just combining these primitives to get a payload that translates to the string puts "p<.$a1", and we're done! Edit: I just realized that I could've also just used "%c" % ... to get characters instead of the clunky trick I have for invoking .chr. For completeness, here's a much shorter version that uses this: send("ev"+("%c"%97)+"l",("%c"%(56+56))+"uts \""+("%c"%(56+56))+("%c"%60)+("%f"%2)[4-3]+("%c"%36)+("%c"%97)+("%d"%(4-3))+"\"")  • This is awesome. – histocrat Jul 25 at 20:56 • Out of curiosity, what did your original program look like? – nthistle Jul 25 at 20:59 • Very different, but I think I'll iterate on it and post another cop before surrendering :) – histocrat Jul 26 at 0:08 # Befunge-93 (FBBI), cracks @Ethan Chapman's (new) answer >g::g- :::+:+:+:+:++\::+:+:+:+:+:+\::+::+::+::+::+::++++++\::+::+:+:+:++\: v v +::+:+::+::+::\+++++::+:+::+::+:::\+++::+::+:+:+::\++++::+::+:+:+:: < > +++\:::+:+::+:+::++++\::+:+::+:+::+++\:::+::+:+:+::++++\::+::+:+:+: v v \+++:+::+::+:+::\+++:+::+::+:+::\++::+:+:+:+::\+++::+:+:+:+:::\+++: < > ::+\::+::+:++\::+:+:+:+:+:+\::+\::+:+::++$pp v v < > v v < v < X >:| Y =  Try it online! A Brief History/Explanation: I originally started writing this answer when I saw Ethan Chapman's first Befunge-93 answer, but progress was hampered by the fact that I didn't know Befunge. I took a lunch break and by the time I came back, it had already been cracked (in a different way)! My original approach was simply to use ! to get 1 on the stack (it implicitly reads a 0 off the stack), and then just duplicate (:) and add (+) that to itself to create whatever numbers I needed. Then, you can take advantage of Befunge's ability to modify the source code to write a , into some specific location and then print off the stack as ASCII characters. It was easy enough to write the following snippet that prints off the entire stack, which also only has a single , (which means it only requires one self-write). v < (Whee!) , Prints top of stack as ASCII character >:| Duplicates top of stack, then pops, going down if zero, up otherwise @ Terminates  Fortunately, this general approach didn't change too much between the two answers. The main difference is that I can no longer use ! to get a 1 on top of the stack from the empty stack (I also can't use @ to terminate, but that's not an issue, since we can just use another self-write for that). Some simple process of elimination reveals that g (pop y, x, then push value of ASCII character at location (x,y)) is just about the only way to get non-zero values onto the stack now. Since the stack is implicitly zero, the first g we hit with an empty stack will simply push the value of character at (0,0). However, unlike some more convenient languages (cough, cough, 05AB1E), we don't have builtin operators to divide by 2 that we might use to reduce this value down to 1. Thus, we need to use our ability to read again. The simplest way to do this is have the value at (0,0) be ASCII value v, and then put v-1 at (v,v). At this point, I ran into some problems with a lot of the Befunge-93 interpreters on TIO, since by default they only support a 25x80 program, and will complain about reads outside of this range. I can start with a space, which has ASCII value 32, but that's still out of bounds. Fortunately, the FBBI version works just fine, although I can't start with a space because for some reason it doesn't terminate unless you begin with a direction(?). In any case, I can recover the magic 1 by starting with > (value 62) at (0,0), then using g:: to push 62 onto the stack and duplicate it twice, then using g to read (62,62), where I have = (value 61), and then finally subtract the top two elements of the stack, 62 and 61, in order to get 1. From here, it's straightforward, if slightly painful. We just need to produce a stack that looks like our target string (in reverse order), followed by our two writes of , and @ (denoted by X and Y in the original source). While I could just duplicate the 1 several hundreds of times, I decided it was worth the effort to write a more efficient method, which encodes the target value in binary, then produces the binary decomposition on the stack, before summing (it's easy to get 1,4,16,32, for instance, because I can double with :+). This, plus the careful positioning of everything so the writes end up in the correct place, is a lot of work, so I just wrote a Python script that does it for me. from collections import defaultdict # by convention, assume there is a 1 on top of the stack def gen_stack(stack): # goal is to produce stack:list[int] def gen_single(ch): if type(ch) is chr: ch = ord(ch) binary_decomp = [] cur = ch while cur > 0: # I know this is inefficient r = (1 << (cur.bit_length() - 1)) cur -= r binary_decomp.append(r) binary_decomp = binary_decomp[::-1] total = "" value = 1 for c in binary_decomp: total += ":" while value < c: total += ":+" value *= 2 return total + "+" * (len(binary_decomp) - 1) + "\\" return "".join(gen_single(c) for c in stack) # places string segment starting at (i,j) in given direction def place_segment(prog, i, j, segment, direction=(1,0)): for k, c in enumerate(segment): prog[i + k*direction[0], j + k*direction[1]] = c return len(segment) target_string = """,0123456789"~@!""" # [x,y], use implicit grid prog = defaultdict(lambda : ' ') W = 75 offset = 0 offset += place_segment(prog, offset, 0, ">g::g-") # ends at 6,0 excl # store this for 1-recovery prog[62,62] = "=" # now have 1 on stack target_stack = list(map(ord,target_string))[::-1] target_stack.extend([ord(","),2,10]) # write , to 2,10 target_stack.extend([ord("@"),2,12]) # write @ to 2,12 stack_generation = gen_stack(target_stack) stack_generation += "" # pop the 1 stack_generation += "p" # place the @ stack_generation += "p" # place the , # program flow routing for i in range(8): prog[W,i] = "<" if (i % 2 == 1) else "v" prog[0,i] = "v" if (i % 2 == 1) else ">" # makes it more aesthetically pleasing offset += 1 row = 0 while len(stack_generation) > 0: # zig-zag segment placement until we're out if row % 2 == 0: place_segment(prog, offset, row, stack_generation[:W-offset-1]) stack_generation = stack_generation[W-offset-1:] else: place_segment(prog, W - 2, row, stack_generation[:W-offset-1], (-1,0)) stack_generation = stack_generation[W-offset-1:] row += 1 # first 8 rows were allocated for the stack generation # place the print-stack block place_segment(prog, 0, 9, "v <") place_segment(prog, 0, 10, " X") place_segment(prog, 0, 11, ">:|") place_segment(prog, 0, 12, " Y") # print prog max_y = max(k[1] for k in prog.keys()) max_x = lambda y : max([0, *[k[0] for k in prog.keys() if k[1] == y]]) # just so we don't print tons of extra spaces source = "\n".join("".join(prog[i,j] for i in range(max_x(j)+1)) for j in range(max_y+1)) print(source) # verify for c in target_string: if c in source: print("Failed check for",c)  • Very nice, similar to what I wrote but a little less verbose and a little more convoluted. I'll add my answer on the cops post. – Ethan Chapman Jul 26 at 20:19 • I think your code is angry: >:| (line 3) – Redwolf Programs Aug 18 at 14:15 # Haskell, cracks Ad Hoc Garf Hunter's answer Hard version: main=print[p|r<-[[n..m]|m<-[a|a<-['n'..],init[a|a<-['n'..],'|'<a,[a,']','<']<[a,']'..]]<[a],[a,']','<']<[a,']'..]],n<-[a|a<-init=<<[init['n','a'..]],a<'-']],p<-r,p<','||','<p,p<'.'||'.'<p,p<'['||'['<p,p<'|'||'|'<p,p<'<'||'<'<p,p<'-'||'-'<p,p<']'||']'<p,p<'m'||'m'<p,p<'a'||'a'<p,p<'i'||'i'<p,p<'n'||'n'<p,p<'p'||'p'<p,p<'r'||'r'<p,p<'t'||'t'<p,p<'='||'='<p,t<-init=<<[init=<<[init=<<[init=<<[init[t|n<-[a|a<-init=<<[init['n','a'..]],a<'-'],t<-[n..','],[n,t,'.']<[n,t..]]]]]],p<t||t<p,i<-init[a|a<-['n','['..],a<'.'],i<p||p<i]  Easy version: main=print[p|r<-[[n..m]|m<-[a|a<-['n'..],init[a|a<-['n'..],'|'<a,[a,']','<']<[a,']'..]]<[a],[a,']','<']<[a,']'..]],n<-[a|a<-init=<<[init['n','a'..]],a<'-']],p<-r,p<','||','<p,p<'.'||'.'<p,p<'['||'['<p,p<'|'||'|'<p,p<'<'||'<'<p,p<'-'||'-'<p,p<']'||']'<p,p<'m'||'m'<p,p<'a'||'a'<p,p<'i'||'i'<p,p<'n'||'n'<p,p<'p'||'p'<p,p<'r'||'r'<p,p<'t'||'t'<p,p<'='||'='<p,t<-init=<<[init=<<[init=<<[init=<<[init[t|n<-[a|a<-init=<<[init['n','a'..]],a<'-'],t<-[n..','],[n,t,'.']<[n,t..]]]]]],p<t||t<p,i<-init[a|a<-['n','['..],a<'.'],i<p||p<i,':'<p||p<':']  Found by lots of trial and error, mostly using ranges, list comprehensions and comparisons as filters. Some used tricks: • We can only ever obtain strings, never single characters (except those that are allowed). List comprehensions work around this: If s=[c] and t=[d] are single-character strings, then [[c,d..]|c<-s,d<-t] is equivalent to [[c,d..]] • init.init[1,2,3] doesn't work due to precedence. Use init=<<[init[1,2,3]] instead • Lexicographic ordering is useful! Things like [a,'.'..]>[a,'.'] (check if further terms in arithmetic sequence exist) and [a,'m'..]>[a,'m',']'] (check if next term is greater than ']') are useful checks for narrowing down characters • After we have ' ' and '~' we can construct [' '..'~'], and filter out the allowed chars using the construct p<'m'||'m'<p. However, we can't write ''', so ' has to again be generated using range tricks There are probably some shortcuts using some kind of pattern matching inside the assignment (for example, the inits could be elimited by something like [a,_,_]<-[[...]] instead of a<-init=<<[init[...]]. • I see you got some use out of the library functions other than print! Interesting approach. I'm going to have to see if I can rework this to curb this approach. – Wheat Wizard Jul 26 at 1:44 # Java (JDK), cracks user's answer class T{public static void main(String... args){if(System.out.printf(""+(char)92+(char)91+(char)59)==null){}}}  Try it online! This was pretty fun. First, we need a main method without the square brackets, which can be done with the standard main method definition replacing the square brackets with ellipsis, and then to avoid the semicolon we can wrap the print statement into an if conditional so that it executes when the condition is being checked, printing the characters according to their ascii values. • Welcome to the site! – Wheat Wizard Jul 26 at 18:57 • Thank you @AdHocGarfHunter :) – aadirag Jul 26 at 19:02 • This is almost exactly what I had. Well done! – user Jul 26 at 19:24 # C (gcc), cracks Noodle9's answer Output: #_ep Since printf, put and write are not allowed I had to use inline assembly to send data to stdout. The string "\043\137\145\160" encodes the desired output in octal notation. int main() { long r; asm ("int 0x80" : "=a" (r) : "a" (4), "b"(1), "c"("\043\137\145\160"), "d" (4)); }  Try it online! # R, cracks Dominic van Essen's challenge The string to print is 0123456789+-*/^!&|%()  My (circumvoluted) solution is: "<"=sum a=T<F aa=T<T aaa=T<aa aaaa=T<aaa aaaaa=T<aaaa aaaaaa=T<aaaaa aaaaaaa=T<aaaaaa aaaaaaaa=T<aaaaaaa aaaaaaaaa=T<aaaaaaaa "["=example S=Syntax[,,,T] A=Arithmetic[,,,T] Q=Quotes[,,,T] ">"=strsplit As=A>"" Ss=S>"" Qs=Q>"" "?"=unlist Au=?As Su=?Ss Qu=?Qs "<"=c b=Au<Su b=b<Qu "?"=unique b=?b "?"=sort b=?b n=F:aaaaaaaaa "?"=rm ?"[" ">"=sum r=n<b[{aaaaaaaaa>aaaaaaaaa}>aaaa] r=r<b[aaa] r=r<b[aaaaaa>aaaaaaaa] r=r<b[aaaaaaa>aaaaaaaa] r=r<b[{aaaaaaaaa>aaaaaaaaa}>aaa] r=r<b[aaaaaaa] r=r<b[aaaaaaaa>aaaaaaaaa] r=r<b[aaaaaaaaa>{aaaaaaaaa>aaaaaaaa}] r=r<b[{aaaaaaaaa>aaaaaa}>aaaa] r=r<b[{aaaaaaaaa>aaaaaa}>aaaaa] r=r<b[aaaaaaaaa>aaa] r=r<b[aaaaaaaaa>aaaa] r=r<b[aaaaaaaaa>{aaaaaaaaa>aaaaaaaaa}] "["=write "?"=length r["",?r,,""]  Don't try it online!: it doesn't work on TIO, but it works on my laptop. The key idea relies on unlist(strsplit(example(Syntax, give.lines=T), ""))  The function example is usually used to execute the "Examples" section of a help file. With the give.lines=T argument, you can get the code of those examples; this includes a lot useful characters. In this case, the examples for Syntax, Arithmetic and Quotes combined contain all the necessary characters, plus some extra ones, stored in b. Since we are not allowed brackets, calling functions requires redefining the operators ?<>[, making the code even messier. (Thanks to Giuseppe for pointing out that this was possible with the available characters.) The rest of the code defines constants 1 to 9 (a to aaaaaaaaa; some of these are not needed in the end but I'm not sure which ones) and extracts the values of b in the right order. Slightly commented version: "<"=sum a=T<F # a=1 aa=T<T #aa=2 aaa=T<aa #aaa=3 aaaa=T<aaa #... aaaaa=T<aaaa aaaaaa=T<aaaaa aaaaaaa=T<aaaaaa aaaaaaaa=T<aaaaaaa aaaaaaaaa=T<aaaaaaaa # aaaaaaaaa=9 "["=example S=Syntax[,,,T] # S=example(Syntax, give.lines=T) A=Arithmetic[,,,T] # A=example(Arithmetic, give.lines=T) Q=Quotes[,,,T] # Q=example(Quotes, give.lines=T) ">"=strsplit As=A>"" # As=strsplit(A) Ss=S>"" # Ss=strsplit(S) Qs=Q>"" # Qs=strsplit(Q) "?"=unlist Au=?As # Au=unlist(As) Su=?Ss # Su=unlist(Ss) Qu=?Qs # Qu=unlist(Qs) "<"=c b=Au<Su b=b<Qu # b=c(Au, Su, Qu) "?"=unique b=?b "?"=sort b=?b # b=sort(unique(b)) n=F:aaaaaaaaa # n=0:9 "?"=rm ?"[" ">"=sum r=n<b[{aaaaaaaaa>aaaaaaaaa}>aaaa] # r=c(n, b[9+9+4]) since b[22]=="+" r=r<b[aaa] # r=c(r,b[3]) since b[3]=="-" r=r<b[aaaaaa>aaaaaaaa] # ... r=r<b[aaaaaaa>aaaaaaaa] r=r<b[{aaaaaaaaa>aaaaaaaaa}>aaa] r=r<b[aaaaaaa] r=r<b[aaaaaaaa>aaaaaaaaa] r=r<b[aaaaaaaaa>{aaaaaaaaa>aaaaaaaa}] r=r<b[{aaaaaaaaa>aaaaaa}>aaaa] r=r<b[{aaaaaaaaa>aaaaaa}>aaaaa] r=r<b[aaaaaaaaa>aaa] r=r<b[aaaaaaaaa>aaaa] r=r<b[aaaaaaaaa>{aaaaaaaaa>aaaaaaaaa}] "["=write "?"=length r["",?r,,""] # write(r, file="", ncolumns=length(r), sep="")  • Why doesn't it work on TIO? – pppery Jul 26 at 22:18 • @pppery From what I understand: because it relies on the Examples section of the help text, which is not accessible on TIO for some reason. I have tried several other local installs of R, and it works on all of them. – Robin Ryder Jul 26 at 22:22 • Back to the drawing board, then... Well done! – Dominic van Essen Jul 27 at 6:25 # JavaScript (Babel), cracks my pronoun is monicareinstate's answer The answer is 74291 bytes using only the characters [+|>], which is unfortunately too large to post here, so I've provided a GitHub repository to verify the solution. git clone https://github.com/patrickroberts/xchars-pipeline.git cd xchars-pipeline npm install npx babel-node index.js  Output: !"#%&'()*,-./0123456789:;=ABCDEFGHIJKLMNOPQRSTUVWXYZ^_abcdefghijklmnopqrstuvwxyz  This output limits us to the printable ASCII characters +<>?@[]{|}~ (as Calculuswhiz points out), which means the only way to invoke a function is with the pipeline operator |>. Essentially the pipeline operator allows f(x) to be expressed as x|>f. Other than that, the restricted source using these characters is very similar to JSF*ck. I compiled the following program using Xchars.js console.log('!"#%&\'()*,-./0123456789:;=ABCDEFGHIJKLMNOPQRSTUVWXYZ^_abcdefghijklmnopqrstuvwxyz')  and was able to interpret it using a Babel plugin. There are two competing proposals for the pipeline operator supported by this plugin, but I opted to use the F#-style pipeline since the output of the Xchars.js compiler is not compatible with the Smart pipeline and Babel will throw the following error during compilation: SyntaxError: Pipeline is in topic style but does not use topic reference (1:670)  • "I compiled the following program using Xchars.js" why does that thing even exist :(. This runs only in Babel (which, as I think, is not even a Javascript interpreter) and not in SpiderMonkey compiled with --enable-pipeline-operator (which I hoped answers would use), but I guess I have to accept this as a solution. – the default. Jul 27 at 5:04 • @mypronounismonicareinstate "why does that thing even exist" -- are you saying you expected someone to hand-write a 72kB program which is only a trivial variation of JSF*ck? "which I hoped answers would use" -- if you wanted answers to use SpiderMonkey compiled with --enable-pipeline-operator then you should have specified that in your answer, otherwise as others rightly pointed out, any JavaScript interpreter is considered a valid crack. – Patrick Roberts Jul 27 at 5:35 # Shakespeare Programming Language, 1034 bytes, cracks @RobinRyder's answer Restricted sauce, or, A shortage of ketchup. Othello, also known as Reversi. Ophelia, a satellite of Uranus. Act I: Love's letters lost. Scene I: Cracked pepper. [Enter Othello and Ophelia] Othello: Thou art as sweet as the square root of a cute peaceful fair fine gentle angel! Ophelia: Thou art as cunning as the square root of the product of the factorial of I and the product of a trustworthy rich pony and the square of I! Speak thy deceitful treachery! Othello: Thou art as golden as the square root of twice the square of thou! Ophelia: Thou art as healthy as the product of the square root of a cunning pretty trustworthy good peaceful gentle fine squirrel and I! Speak thy awful truth! Thou art as loving as twice the square of I! Speak thy flirtatious trifles! Othello: Thou art as happy as the square root of a gentle delicious cunning golden honest trustworthy sweet Lord! Ophelia: Thou art as peaceful as the product of twice the square root of I and I! Speak thy glad tidings! [Exeunt]  Try it online! Constructing integers was tricky. As Robin noted, addition and subtraction are out. So too are cubing (the cube of), division (the quotient between), and modulo (the remainder of the quotient between). We will have to make do with multiplication, squares, square roots, and factorials. These operations are incompletely documented in the official docs; I actually found the interpreter source code to be a more useful reference in this regard. We also need a way to output characters given that the usual Speak thy mind! is banned as well. Digging into the interpreter source code, I found that mind may be replaced with arbitrary text (a warning is printed to STDERR). There's that problem solved. Now, on to generating the required characters. The required ASCII codes are 109, 77, 98, and 66. The basic idea is to set Othello to each of these values in succession, then print the character via Speak thy ... (I took some poetic licence with the ...s). Ophelia stores some intermediate values for convenience. I think the code is most easily explained through the maths. Here I will use $$\p\$$ for Ophelia's value and $$\t\$$ for Othello's. The only other thing to bear in mind is that positive nouns (such as angel and pony) represent $$\1\$$ and adjectives (such as cute and sweet) preceding a noun multiply it by $$\2\$$. (SPL has negative and neutral nouns too, but only positive nouns are used here.) Othello: Thou art as sweet as the square root of a cute peaceful fair fine gentle angel!  $$\p = \left\lfloor\sqrt{2\cdot2\cdot2\cdot2\cdot2\cdot1}\right\rfloor = \left\lfloor\sqrt{32}\right\rfloor = 5\$$ Ophelia: Thou art as cunning as the square root of the product of the factorial of I and the product of a trustworthy rich pony and the square of I!  $$\t = \left\lfloor\sqrt{p!(2\cdot2\cdot1\cdot p^2)}\right\rfloor = \left\lfloor\sqrt{12000}\right\rfloor = 109\$$ Othello: Thou art as golden as the square root of twice the square of thou!  $$\p = \left\lfloor\sqrt{2p^2}\right\rfloor\ = \left\lfloor\sqrt{50}\right\rfloor = 7\$$ Ophelia: Thou art as healthy as the product of the square root of a cunning pretty trustworthy good peaceful gentle fine squirrel and I!  $$\t = \left\lfloor\sqrt{2\cdot2\cdot2\cdot2\cdot2\cdot2\cdot2\cdot1}\right\rfloor p = \left\lfloor\sqrt{128}\right\rfloor 7 = 77\$$  Thou art as loving as twice the square of I!  $$\t = 2p^2 = 98\$$ Othello: Thou art as happy as the square root of a gentle delicious cunning golden honest trustworthy sweet Lord!  $$\p=\left\lfloor\sqrt{2\cdot2\cdot2\cdot2\cdot2\cdot2\cdot2\cdot1}\right\rfloor = \left\lfloor\sqrt{128}\right\rfloor = 11\$$ Ophelia: Thou art as peaceful as the product of twice the square root of I and I!  $$\t = 2\left\lfloor\sqrt{p}\right\rfloor p = 2\left\lfloor\sqrt{11}\right\rfloor 11 = 66\$$ • > Restricted sauce, or, A shortage of ketchup. +1! – Dom Hastings Aug 19 at 12:07 • Very nice crack, well done! I was hoping that whoever cracked this challenge would write a "proper" SPL program, and not the usual collection of Ajax, Page and cats. I am glad you did! – Robin Ryder Aug 19 at 12:43 • @RobinRyder Thanks. I had a lot of fun writing it! – Dingus Aug 19 at 13:36 • Othello, also known as Reversi. Nice pun – null Aug 28 at 12:20 # CJam, Ethan Chapman's answer 9:):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):)0=,_34=\_97=\_99=\_101=\_115=\39=  Try it online! • That sure is a lot of smiley faces :) – Dingus Aug 29 at 11:34 # Ruby, cracks @histocrat's answer, 55 bytes method("\x70rint")["\x70\x3c\x2e\x24%c%d\x73"%[97,3-2]]  The approach I took here was to find a way to access the print method, using method seemed sensible, but trying to invoke it was harder than I'd have liked, then I happened to stumble across the docs for Proc which showed the <method reference>[<args>] notation which gave me the last piece I needed! Try it online! # J, cracks @xash's answer (97)1!:2(4) (117)1!:2(4) (46)1!:2(4)  Try it online! Gonna be honest, not entirely sure why this works. I was trying to learn J syntax and playing around with a few things, and I found that you can just send ASCII values to STDOUT and they get automatically converted into characters. Neat! # Wolfram Language (Mathematica), cracks att's answer {69,99,95+9,111,64,68,116,91,48,32,38,32,93,1+9}//("Fr*ara*de"//Names//Tr//(x//Head))//("Prin"~~_//Names//Tr//(x//Head))  Try it online! • no need for 1+9, since Print already includes the trailing newline – att Jul 27 at 16:45 # QBasic 1.1, cracks DLosc's answer The string to print is: Cc  Thanks to QBasic's complete lack of memory safety, my solution creates an arbitrary two character string, gets its memory address, directly changes the memory into the right ASCII codes, and prints the result: X = "aa" A = SADD(X) POKE A, 67 POKE A + 1, 99 PRINT X  • Welcome to CGCC! I thought something like this would be possible, although it wasn't my intended solution. Let me see if I can prevent it in my next cop answer... – DLosc Jul 29 at 4:20 # Perl 5 cracks @Gilles 'SO- stop being evil''s answer, 5845 (!) bytes Note: the original program contains \x18 which is used as ^X in this answer. (__=()=())=>(___=()=(_))=>(____=()=(_=>_))=>(_____=()=(_=>_=>_))=>(______=()=(_=>_=>_=>_))=>(_______=()=(_=>_=>_=>_=>_))=>(________=()=(_=>_=>_=>_=>_=>_))=>(_________=()=(_=>_=>_=>_=>_=>_=>_))=>(__________=()=(_=>_=>_=>_=>_=>_=>_=>_))=>(___________=()=(_=>_=>_=>_=>_=>_=>_=>_=>_))=>(_=[]=>/./)=>((____________=>_____________=>______________=>_______________=>________________=>_________________=>__________________=>___________________=>____________________=>_____________________=>______________________=>_______________________=>________________________=>_________________________=>__________________________=>___________________________=>____________________________=>_____________________________=>______________________________=>_______________________________=>________________________________=>_________________________________=>__________________________________=>___________________________________=>____________________________________=>_____________________________________)=&.._)=>(_=^X=>/.../=>_=&=>/./)=>((__________________________________________=>___________________________________________=>____________________________________________=>_____________________________________________=>______________________________________________=>_______________________________________________=>________________________________________________=>_________________________________________________=>__________________________________________________=>___________________________________________________=>____________________________________________________=>_____________________________________________________=>______________________________________________________=>_______________________________________________________=>________________________________________________________=>_________________________________________________________=>__________________________________________________________=>___________________________________________________________=>____________________________________________________________=>_____________________________________________________________=>______________________________________________________________=>_______________________________________________________________=>)=&.._)=>(______________________________________=__________________________________________&______________________________________________________________)=>((______________________________________=>_______________________________________=>________________________________________=>_________________________________________=>)=______________________________________.._)=>(_________________________________________________________________=____________________________________________&(!_________)._________)=>(__________________________________________________________________=______________.__________________________._____________________________.________________._________________________________________________________________.__________________________________________.___________________________________________________________.______________________________________._________________________________________________._______________________________________.______________________________________________________________._________________________________________________________.__________________________________________.________________________________________________________)=>(___________________________________________________________________=______________.__________________________._____________________________.________________._________________________________________________________________._____________________________________________________.______________________________________.________________________________________.________________________________________________)=>(&__________________________________________________________________(&___________________________________________________________________(______________.__________.___________=>___.___.____=>___.___.______=>___.__._______=>___.___.__=>___.___.________=>_____.____=>___.___._____=>______._________=>_____._____=>_____.______=>_____.___________=>______.____=>______._____=>______.______=>______._______=>______.__________=>______.___________=>_______.__=>_______.___=>_______.____=>_______._____=>_______.______=>_______._______=>_______.________=>_______._________=>_______.__________=>_______.___________=>________.__=>________._____=>________.______=>________._______=>________.________=>________._________=>________.__________=>________.___________=>_________.__=>_________.___=>_________.____=>_________._____=>_________.______=>_________._______=>_________.________=>_________._________=>_________.__________=>_________.___________=>__________.__=>__________.___=>__________.____=>__________._____=>__________.______=>__________._______=>__________.________=>__________._________=>__________.__________=>__________.___________=>___________.__=>___________.____=>___________.______=>___________.________=>___________._________=>___________.__________=>___________.___________=>___.__.__=>___.__.___=>___.__.____=>___.__._____=>___.__.______=>___.__._______=>___.__.________=>___.__._________=>___.__.__________=>___.__.___________=>___.___.__=>___.___.___=>___.___.____=>___.___._____=>___.___.______=>___.___._______=>___.___.________=>___.___._________=>___.___.__________=>___.___.___________=>___.____.__=>___.____.___=>___.____.____=>___.____._____=>___.____.______=>___.____.________=>______._________)))  Try it online! ## Explanation This is a very restrictive set of characters, but the biggest problem I encountered was trying to get access to the lowercase letters. First the numbers are set up and stored in __ (0) to ___________ which was using lengths of lists to get the scalar numbers. Next target was to set up A to Z. To do this, _ is set to [] which, in scalar context, evaluates to a string like ARRAY(0x123456789abc) so /./ sets & to A which is then used in a range with _ (&.._) which you can assign to many variables in list context (e.g. (a, b, c) = a..c, but using long strings of _s for the names in this). Next it's necessary to generate the lowercase letters to be able to call functions, this was pretty tricky and I'm using something that might be a little unfair as it can potentially change depending on the implementation. I did look at a few different ideas before settling on this one, I originally hoped to use __PACKAGE__ which returns main and would easily enable producing a.._, but I wasn't able to get it to work. With more patience maybe... But knowing that Perl stores the executable the program was invoked with in a special variable ^X (\x18), which ends with perl on most of my tests on Linux, was a viable (if not entirely portable) solution. This provides access to e, via storing ^X in _, matching /.../, which would store erl in &, storing this in _, matching again /./ to store e in & then, as was done for the uppercase letters, generating a range from e to _ and storing. To get access to a, it's necessary to perform another [stringwise operation of "e"&"y"] and generate the missing start of the alphabet as was done for the other letters. To be able to call library functions it's necessary to generate :: (or ' which functions identically), fortunately ' can be generated via a stringwise AND operation of g&"7", but it's necessary to concatenate 7 with the empty string to cast to string so "g"&(!7).7 is used. Now we have all the letters and ' which means we can call CORE::evalbytes (or any other functions in the CORE library), but we need to be able to generate characters we haven't pre-generated, so CORE::pack is used to generate a string by passing in a list of numbers and converting them to characters, that will be evaled producing the desired output. # Ruby, @histocrat's answer, 48 bytes STDOUT::write"\x70\x3c\x2e\x24%c%d\x64"%[97,3-2]  Try it online! I had no idea you could call methods that way, until I read this answer (thanks @histocrat!) # 05AB1E, cracks @SomoKRoceS's (other) answer žEžwžv;;;++çžEžvžv;žv;;žv;;;;++++çžEžvžv;žv;;+++çžEžvžv;žv;;;;+++çžEžvžv;++çžzžxžwžvžv;žv;;žv;;;;++++++çžEžwžv;;žv;;;+++çžEžvžv;žv;;žv;;;++++çžwžv;;žv;;;žv;;;;+++çžwžv;;;+çžCžBžzžwžv;žv;;žv;;;;++++++çžwžv+çžwžvžv;;;;++çžwžvžv;;;++çžwžvžv;;;žv;;;;+++çžwžvžv;;++çžwžvžv;;žv;;;;+++çžwžvžv;;žv;;;+++çžwžvžv;;žv;;;žv;;;;++++çžwžvžv;++çžwžvžv;žv;;;;+++çJ  Try it online! Incidentally, all this approach really needs to function is ç (cast top of stack to a character), J (join together the entire stack into a string), and some way of producing numbers on the stack. My original idea for the latter (since number literals are now banned) was to use T (push 10), then ; (divide by 2) to get a 1 (although that technically also needs ï, cast to int), and then adding that with itself as many times as necessary. However, since the Unicode character values for this program are in the range of ~8000, this would make for very length source code. I made it a bit shorter by using the literals that push powers of two (žv through žH). Here's the Python script I used to create this: lookup = {65536: "žH", 32768: "žG", 16384: "žF", 8192: "žE", 4096: "žD", 2048: "žC", 1024: "žB", 512: "žA", 256: "žz", 128: "žy", 64: "žx", 32: "žw", 16: "žv", 8: "žv;", 4: "žv;;", 2: "žv;;;", 1: "žv;;;;"} def make_value(target): if target in lookup: return lookup[target] use = max(k for k in lookup if k <= target) return lookup[use] + make_value(target - use) + "+" goal = "•”“’‘Ž…„'\"ഭ0123456789" source = "".join(make_value(ord(c)) + "ç" for c in goal) + "J" print(source) for c in goal: if c in source: print(f"Failed check for '{c}'")  # R, 187 bytes, cracks Dominic van Essen's answer n=pi*pi d=F:n !=ls l=!n i=n*n*pi-pi-pi-T-T ?=el o=n+pi-T-T t=n+pi-T p=l?o b=l?t k=l?i A=?letters !=toupper e=!letters?pi+pi-T +=c o=d+p+b+A+e s=l?n*n*n-n-pi-T !=get +=!s x=o+k  Try it online! Random tricks: • liberal aliasing of functions to the builtin operators to get around (. • Uses ls(9) to get a list of all builtins in package:base, getting around the lack of apropos() -- this may not work on non-TIO platforms. • Uses el to get around [ since el(what,where)==what[where][[1]] • get is used to return a function given a string, in this case sapply. • uses sapply(output list,"cat") to print, since otherwise we have no way of specifying that sep="". The x= is just to suppress the output of NULL. • uses pi and T and arithmetic for indexing, and n=pi^2 for a close enough approximation to 9. • Very well done, Giuseppe! – Dominic van Essen Jul 27 at 14:54 • Your solution is much shorter and neater than the one I had in mind when I set the challenge (now revealed). – Dominic van Essen Jul 27 at 15:27 # Mornington Crescent, 5015 bytes, cracks Discrete lizard's answer I've braved the depths of London, and I came out alive ... Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Circle Line to Moorgate Take Circle Line to Paddington Take Circle Line to Moorgate Take Northern Line to Finchley Central Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Northern Line to Moorgate Take Metropolitan Line to Chalfont & Latimer Take Metropolitan Line to Moorgate Take Northern Line to West Finchley Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Northern Line to Moorgate Take Metropolitan Line to Chalfont & Latimer Take Metropolitan Line to Preston Road Take Metropolitan Line to Moorgate Take Northern Line to Golders Green Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Northern Line to Moorgate Take Metropolitan Line to Preston Road Take Metropolitan Line to Moorgate Take Northern Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Circle Line to Moorgate Take Circle Line to Paddington Take Circle Line to Moorgate Take Circle Line to Moorgate Take Metropolitan Line to Chalfont & Latimer Take Metropolitan Line to Moorgate Take Northern Line to Morden Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Northern Line to Moorgate Take Metropolitan Line to Chalfont & Latimer Take Metropolitan Line to Preston Road Take Metropolitan Line to Moorgate Take Circle Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Northern Line to Moorgate Take Metropolitan Line to Preston Road Take Metropolitan Line to Moorgate Take Metropolitan Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Circle Line to Moorgate Take Circle Line to Paddington Take Circle Line to Moorgate Take Northern Line to Kentish Town Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Tottenham Court Road Take Northern Line to Tottenham Court Road Take Central Line to Holland Park Take Central Line to Fairlop Take Central Line to Tottenham Court Road Take Central Line to Tottenham Court Road Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Tottenham Court Road Take Northern Line to Tottenham Court Road Take Central Line to Holland Park Take Central Line to Tottenham Court Road Take Central Line to Tottenham Court Road Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Circle Line to Paddington Take Circle Line to Moorgate Take Circle Line to Paddington Take Circle Line to Paddington Take Circle Line to Mansion House Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Tottenham Court Road Take Northern Line to Tottenham Court Road Take Central Line to Holland Park Take Central Line to Gants Hill Take Central Line to Tottenham Court Road Take Central Line to Tottenham Court Road Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Tottenham Court Road Take Northern Line to Tottenham Court Road Take Central Line to Holland Park Take Central Line to Tottenham Court Road Take Central Line to Tottenham Court Road Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Circle Line to Moorgate Take Circle Line to Paddington Take Circle Line to Paddington Take Circle Line to Moorgate Take Metropolitan Line to Moor Park Take Metropolitan Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Circle Line to Moorgate Take Metropolitan Line to Chalfont & Latimer Take Metropolitan Line to Finchley Road Take Metropolitan Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Circle Line to Moorgate Take Metropolitan Line to Chalfont & Latimer Take Metropolitan Line to Preston Road Take Metropolitan Line to West Harrow Take Metropolitan Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Circle Line to Moorgate Take Metropolitan Line to Preston Road Take Metropolitan Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Moorgate Take Circle Line to Moorgate Take Circle Line to Paddington Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Mornington Crescent  Try it online! • Well done. This one still gives quite a few options. I shall dispose of those distractions for the next one. – Discrete lizard Jul 28 at 17:47 • Oh, no, there's more ... – pppery Jul 28 at 17:48 # BBC BASIC II, cracks Martin Rosenau's challenge The string to print is VP  Solution: 10 MODE 7 20 A%=HIMEM 30 ?A%=80 40 A%?1=86 50 GOTO 50  Tested on BeebEm emulator and should work directly on BBC model 'B'. How? • MODE 7 is a low-resolution graphics mode, intended to display 'teletext'. Each character on the display is encoded by a single byte in memory: bytes 1-128 encode the normal ASCII characters, and bytes 129-255 (which we don't need here) encode chunky coloured and/or flashing 2x6 pixel blocks. So all we need to do is to set the first two bytes of the display memory to encode 'PV' • HIMEM is a system variable used to indicate the address of the highest usable RAM memory location +1; the display memory starts here. • ? stores the specified value at a particular memory location. It's equivalent to POKE in other variants of BASIC. In this case, we specify the ASCII value 80, encoding the letter 'P'. • A%?1 is a shortcut to store the specified value to the memory location +1. We use 86, encoding the letter 'V' • If we exit the program now, the first character will be overwritten by the new command-line prompt (a '>' character), so we just send the program into an endless loop so that the full beauty of the displayed 'PV' characters can remain on the screen for our admiration. • In the example shown, I exited the program by pressing 'Escape' so that I could display a LISTing of the program. # Mornington Crescent, 15909 bytes, cracks Discrete lizard's second answer The battle for London is on, and I have been proven as the victor Take Northern Line to King's Cross St. Pancras Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take Circle Line to Victoria Take Circle Line to Cannon Street Take Circle Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Northern Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Northern Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to Westbourne Park Take Circle Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take District Line to Plaistow Take District Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Bank Take Northern Line to Charing Cross Take Bakerloo Line to Stonebridge Park Take Bakerloo Line to Oxford Circus Take Bakerloo Line to Oxford Circus Take Victoria Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take District Line to Parsons Green Take District Line to Cannon Street Take Circle Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take Circle Line to Victoria Take Circle Line to Cannon Street Take Circle Line to Bank Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Aldgate Take Circle Line to Euston Square Take Circle Line to Paddington Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Paddington Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take District Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Bank Take Northern Line to Tooting Bec Take Northern Line to Bank Take Circle Line to Bank Take District Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Paddington Take Circle Line to Bank Take Northern Line to Kennington Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take District Line to Parsons Green Take District Line to Cannon Street Take Circle Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take Circle Line to Victoria Take Circle Line to Cannon Street Take Circle Line to Bank Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Baker Street Take Circle Line to Blackfriars Take Circle Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Barbican Take Circle Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Paddington Take District Line to Southfields Take District Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take District Line to Parsons Green Take District Line to Cannon Street Take Circle Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take Circle Line to Victoria Take Circle Line to Cannon Street Take Circle Line to Bank Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Edgware Road Take Circle Line to Bank Take Circle Line to Wood Lane Take Circle Line to Sloane Square Take Circle Line to Paddington Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Paddington Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take District Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Wood Lane Take Circle Line to Paddington Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Paddington Take Circle Line to Bank Take Circle Line to Bank Take Northern Line to Colindale Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Mile End Take District Line to Victoria Take District Line to Victoria Take Circle Line to Moorgate Take Circle Line to Moorgate Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to King's Cross St. Pancras Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Circle Line to Cannon Street Take Circle Line to King's Cross St. Pancras Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take District Line to Parsons Green Take District Line to Cannon Street Take Circle Line to Victoria Take Victoria Line to Seven Sisters Take Victoria Line to Victoria Take Circle Line to Victoria Take Circle Line to Cannon Street Take Circle Line to Bank Take Circle Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Northern Line to Charing Cross Take Northern Line to Charing Cross Take Northern Line to Bank Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Aldgate Take Circle Line to Paddington Take Circle Line to Baker Street Take Circle Line to Paddington Take Circle Line to Paddington Take Circle Line to Edgware Road Take Circle Line to Paddington Take Circle Line to Paddington Take Circle Line to Bank Take Circle Line to Paddington Take Circle Line to Bank Take Circle Line to Bank Take Northern Line to Mornington Crescent  I realized about 2/3 of the way through writing this program that I was using an inefficient approach and the code was about twice as long as it needed to be, but that doesn't matter since there's no value to short robber answers. Try it online! • I was trying to solve this as well (first time dealing with Mornington Crescent) but didn't succeeded to get even close to the solution. Please let me know if I'm wrong, but the only operations that remained were integer division , bitwise NOT, parse string to integer, 7, character <-> codepoint, string concat, right substring, if, pop, exit. And my approach was getting into the codepoints of the characters using capital characters of stations. (1/2) – SomoKRoceS Aug 1 at 16:14 • But since the capital letters are lower than small letters, and I didn't had tools for incrementing my value or concatenate numbers (because they are not strings), I didn't manage to get to those codepoints. Can you please explain the general idea how to get to those codepoints with only the stations remaining? I probably have missed something. Thanks :) (2/2) – SomoKRoceS Aug 1 at 16:16 • Sure. First, I generated a 2, by taking a C from Charing Cross and dividing it by a space (the seventh-to-last character in "Cannon Street"). Then, I took a bunch of other stations, took the seventh-to-last character of their names, converted it to an integer, and divided it by two, and converted it back to a string, producing stringified digits. I concatenated 3 different stringified digits to make a stringified three-digit number, interpreted it as a base-10 integer using Parsons Green, divided it by 7 (although I think this last step is unnecessary), to produce the right codepoint. – pppery Aug 1 at 16:22 • Yes, you understand me correctly. No idea why Charing Cross on your interpreter is giving an error. It works both for me locally and on TIO. – pppery Aug 1 at 16:34 • @SomoKRoceS There is quite a bit of ambiguity in the language spec here that interpreters likely deal with as in their host language. For example, if the integer on Mile End is longer than the string length, I would consider this to be index 'out of range' in most languages. However, Python 3 does not give a runtime error on "example"[-100:] and neither does the linked interpreter with example and 100 on Mile End. – Discrete lizard Aug 1 at 17:28 ## JavaScript, cracks PkmnQ's third answer Outputs a string via console.log. You can evaluate arbitrary code with only a little extra work. Should work in any sufficiently modern JavaScript implementation; /_/.prototype.unicode must be false (true would work with minor modifications). Try it online! The code is too big to include directly. Here's the Python code I used to generate it. #!/usr/bin/env python3 import re payload = '<("MrJock,TVQuizPHDBagsFewLynx.mRjOCKtvqUIZ=phd#bAGSfEWlYNX? 12+34-56*78^90%!\')>' zero = '~~[]' # 0 one = '~[]/~[]' # 1 def plus_one(n): return '~[%s][~~[]]/~[]' % (n,) def unary_integer(n): assert(n >= 0) if n == 0: return zero s = one while n > 1: n = n - 1 s = plus_one(s) return s def integer_string(n): if n <= 9: return '{' + unary_integer(n) + '}' else: return ''.join(['{' + unary_integer(int(digit)) + '}' for digit in str(n)]) def integer(n): if n <= 9: return unary_integer(n) else: return '' + integer_string(n) + '/~[]/~[]' # Map a character to how it can be inserted in ... characters = {} def encode_string(s): return ''.join([''] + [characters[c] for c in s] + ['']) def encode_string_literal(m): return encode_string(m.group(1)) def encode_string_literals(code): return re.sub(r'"([^"]*)"', encode_string_literal, code) permitted_characters = (frozenset(''.join(map(chr, range(32, 127)))) .difference(payload)) for c in permitted_characters: characters[c] = c characters[''] = '\\' characters[''] = '\$' characters['\\'] = '\\\\' for c in range(10): characters[str(c)] = '${' + unary_integer(c) + '}'

encoded_code = encode_string_literals(raw_code)
for i in range(len(result)):
this_code = '${${%s}[%s]}' % (encoded_code, integer(i))
if result[i] not in characters or len(result[i]) > len(this_code):
characters[result[i]] = this_code

add_characters('/$/["unicode"]', 'false') # +'ls' add_characters('["includes"]', 'true') # +'r' add_characters('["fontcolor"]', '<font color=""></font>') # +'"<=>' add_characters('["constructor"]', 'function String() { [native code] }') # +'()Sgv' add_characters('~[~[~[]/~[]][~~[]]/~[]][~~[]]/~[~[]/~[]][~~[]]', '1.5') # +'.' eval_prefix = encode_string_literals('[]["find"]["constructor"]_${')
eval_suffix = '}'
def eval_with_function(code):
return eval_prefix + encode_string(code) + eval_suffix

def octal_string(s):
return ''.join('\\%03o' % (ord(c),) for c in s)



The basic principle is the same as JSFuck: build integers, then build some strings containing interesting characters, extract the characters from the strings, and assemble those characters to get an “eval” gadget. Leverage automatic coercions to integers and strings. Due to the different character set, the details of the building steps are different.

A lot of things coerce to 0 when a number is expected, for example []. To get a number, we need to force a coercion to a number, which we can do with the bitwise negation operator ~, so the easiest integer to build is -1 = ~[]. Then 0 = ~~[]. Signed integers are represented with two's complement, so ~x = -x-1 and thus x+1 = ~x/-1. We actually need to apply this plus-one operation to an expression that has a lower precedence than the ~ operator, so we need to simulate parentheses: plus-one is ~[…][0]/-. Armed with 0 and plus-one, we can build all integers in unary.

As a shortcut, we'll use the decimal representation for numbers above 9. This is our first use of template literals, which this character set supports fully. Template literals are string literals written between backticks, with ${…} to inject expressions. This lets us concatenate strings without +. For example a 2-digit integer is ${digit1}${digit2}/-1/-1. When the goal is to inject the integer into a string, we don't need the /-1/-1 part. Next we build some strings. JSFuck provides some inspiration. For example, {} stringifies to [object Object]. Here we can't use + to coerce to a string, but we can use a template literal: for example ${{}} evaluates to the string [object Object]. We can extract individual characters from a string as string[index].

The normal way to access a property of an object is object.property, but . is forbidden. Fortunately there's another way which not only permitted, but also allows using a constructed string as the property name: object["property"] is equivalent to object.property. Looking through built-in types for which we can build a value (Array [], Object {}, Number [~[]][~~[]], String , RegExp /$/), the pickings are slim at this point: Array.prototype.concat() Array.prototype.find() Array.prototype.join() RegExp.prototype.unicode String.prototype.concat()  Fortunately /_/.unicode is false, which gives us l and s, which unlocks the String method includes, which gives us true. The string representation of a method gives us parentheses, and the exotic but convenient fontcolor provides "<=>. At this point we have a variation of the classic eval gadget from JSFuck: first we take a reference to a method such as []["find"]. Its constructor []["find"]["constructor"] is Function, and calling Function with a string argument evaluates that string as the body of a function. We have the characters of return, so we can make the function return the value of any expression that we can spell as a string. There's one more hurdle here: unlike JSFuck, we don't have parentheses. This is where we use another feature of templates: if you put a function just before a template literal, with no punctuation involved except for the template literal, it's called on the interpolated expressions from the template. The arguments have to be strings, but that's good enough for us. To evaluate the string code we call Function on the code to build the function and call that code with an empty string as an argument: Function _${return \${code}}  .

At this point we can spell console.log("…"). We're allowed to use backslashes, so we can put octal escapes in … and print an arbitrary string. The backslashes are just a shortcut: without them, we could still build fromCharCode as in JSFuck. If we wanted an arbitrary eval gadget, we could do another round of evaluation.

# R, 209 bytes, cracks Robin Ryder's answer

dput(intToUtf8(c(59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,86,87,88,89,90,91,92,93,94,95,96,97,98,101,103,104,106,107,108,109,113,114,115,118,119,120,121,122,123,124,125,126)))


Try it online!

Found the right output function dput by using apropos on the remaining alphabet characters. dput also happens to be a key element of an R quine.

• Well done! Would it have been more difficult if I had included fewer characters, to make apropos less useful? – Robin Ryder Jul 26 at 6:26
• @RobinRyder probably! It certainly would have taken me a lot longer to golf on my phone, since it'd be harder to try the larger range of functions, but I guess then the only barrier still would have been time. – Giuseppe Jul 26 at 13:51

#include <stdio.h>

int main(void) <%
if (printf("%c%c", 123, 59)) <% %>
%>


For some reason, you can use <% instead of { in C. You can also use printf inside an if block to avoid having a single statement with a semicolon.

Try it online!

• The <% is a legacy feature since not all machines had {} iirc. However today it seems a bit absurd. – Wheat Wizard Jul 26 at 19:37
• Yes, that was my solution as well. Older Keyboard didn't have some special characters like { an so digraphs were introduced as alternatives for them. – xibu Jul 26 at 19:43
• @user Here's the relevant page on cppreference: en.cppreference.com/w/c/language/operator_alternative – L. F. Jul 28 at 15:35

# Python 2, 39953 bytes, cracks Jonathan Allan's answer

exec(chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id)))+chr((id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))+(id(id)-~-id(id))))


Try it online!

(tolower'TMOUTPUT')apply 117
(tolower'TMOUTPUT')apply 58
(tolower'TMOUTPUT')apply 46


Try it online!

Classic stdlib abuse. tmoutput is a wrapper for 1!:2&4 which was used in the previous crack. Since it contains u, I use the uppercased name, lowered with tolower and then eval-applied with apply.

# Python 2, cracks @Mukundan314's answer

C="%x"%12
D="%x"%13
S="73"
S=getattr(*([S]+[D+"e"+C+"o"+D+"e"]))
S=S("hex")
W="77"
W=getattr(*([W]+[D+"e"+C+"o"+D+"e"]))
W=W("hex")
P1=__import__(S+"y"+S)
P2=getattr(*([P1]+[S+"t"+D+"out"]))
P3=getattr(*([P2]+[W+"rite"]))
P4="63646e7376772"+C
P5=getattr(*([P4]+[D+"e"+C+"o"+D+"e"]))
P6=P5("hex")
P3(P6)


Try it online!

Explanation: First, we can immediately figure out what builtins we have available to us with the following snippet:

for b in dir(__builtins__):
if not any(c in b for c in "cdnsvw,"):
print(b)


Of immediate interest is getattr. My original approach used this along with eval, but then I realized that v was banned... (c is also banned so no exec). In any case, as long as we can get arbitrary characters and we have getattr, it's game over. Of course, no c, so no chr, so how do we get arbitrary letters? Indexing into dir() is out too, because we don't have access to d.

Well, Python 2 has this neat trick where you can decode hex strings by simply doing str.decode("hex"). "decode" requires both "c" and "d", so we need to get those characters first, but fortunately they're hex digits, so we can just retrieve them with "%x"%12 and "%x"%13, respectively (Note: the reason we can do this here, but not to get dir is because decode is an attribute of strings, which we can get, whereas dir is an attribute of __builtins__, which we can't get because of the s).

The last trick is to evade , in our getattr calls, which we can do by using arg expansion on a list, which we construct by adding lists together: getattr(a,b) <=> getattr(*([a]+[b])). From here we just chain together these primitives. Translated, the answer looks like:

__import__("sys").stdout.write("63646e7376772".decode("hex"))

• You can use octal codes to write "something" as "\163\157\155\145\164\150\151\156\147" etc. eliminating the need for decode. The intended solution has a very similar approach. – Mukundan314 Jul 27 at 15:18
• Ah, thanks for the tip. Nice intended solution! Good to know I wasn't too far off, though. – nthistle Jul 27 at 23:10

class Puzzle {
public static void main(String[] args) throws Throwable {
try (AutoCloseable a = new Throwable() {
{
setStackTrace(new StackTraceElement[0]);
}
@Override
public String toString() {
return "" + (char)(46) + (char)(92);
}
}::printStackTrace) {}
}
}


All the credit goes to @nthistle, who found this resource, which I shamelessly copied.

It uses a method reference to override AutoCloseable's close method, which gets invoked at the end of a try-with-resources block. The toString method contains the actual message, and the setStackTrace part ensures it doesn't print the actual stacktrace afterwards.

# JavaScript (Browser) (3709 bytes), cracks @Sparkles the Unicorn's answer

-693 bytes thanks to Bubbler's suggestion to use String.fromCharCode only once

console.log(String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[]))+String.fromCharCode(((+!+[])+(+!+[])+(+!+[])+(+!+[]))*([+!+[]]+[+[]])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])+(+!+[])))


Try it online!

No numbers? No problem! Also, note the suspicious lack of C and S in the output string. This immediately clued me in to String.fromCharCode – the only problem is how to produce numbers, since all number literals are banned. Fortunately, JavaScript has some really awful type juggling, so you can produce the number 3, for instance, like (+!+[])+(+!+[])+(+!+[]).

In practice, as long as ()+[]! are all allowed, you can just use JSFuck to convert the whole thing, but it really inflates the size (the version of my answer wouldn't fit in this post), and no C and S made me assume that String.fromCharCode was the intended solution anyways. I did borrow the literals for 1 and 10 in order to construct my character codes, though.

• I think you could make it shorter by using String.fromCharCode only once, as it can take multiple values at once (TIO). – Bubbler Jul 27 at 23:43
• Oh neat, I didn't know that. I updated the answer, but it's definitely nowhere close to optimal -- I have tons of extra parentheses floating around, and there's shorter ways to express say, 65, than (1+1+1+1+1+1)*(10)+(1+1+1+1+1). – nthistle Jul 28 at 0:11