In this challenge, you'll take an answer as input, and print the answer before it. If the answer passed as input is the first answer, print your own submission's source. You'll be passed any answer in the chain up to and including your own answer, but none after it in the chain.
For example, if the first submission is xyz
, the second is ABCD
, and you submit pQrSt
as a third answer, you should support the following input/output pairs:
xyz -> pQrSt
ABCD -> xyz
pQrSt -> ABCD
The first answer's only possible input is its own source code, in which case it should print its own source (i.e., it can be a cat program).
Rules
- Inputs and outputs should be treated as bytestrings. While some or most answers may be valid UTF-8, you cannot assume all programs will be representable with Unicode
- If your language doesn't support raw binary I/O, you may use lists of numbers (representing bytes) with some consistent formatting (e.g., newline separated) for I/O in place of binary data
- Answers may be in any programming language
- Answers with a negative score (more downvotes than upvotes) are invalid, and someone else may submit a different answer in their place
- Answers must follow quine rules; no reading your own source code (stringifying functions is allowed here; you just can't read your source code directly from a file or similar) or accessing the internet or other external resouces
- No duplicate answers are allowed (same or different language)
- If a user answers multiple times in a row, only their first answer counts for scoring (so that sandbagging with the first for a low score on the second doesn't work)
Scoring
Scoring is based on percentage increase in byte count. Whatever answer has the lowest percent increase in byte count over the previous submission wins (this may be negative). You may not golf or otherwise change your answer's code after posting it.