최근 수정 시각 : 2026-08-15 20:41:48

Effect Playing Contest : Encore


{{{#!wiki style="margin: -10px -10px;"<tablealign=center><tablebordercolor=#3a3a3a><tablebgcolor=#3a3a3a> 파일:EPClogo.png이펙트 플레잉 콘테스트
역대 대회
}}} ||
베타 1회 2회
<nopad> <nopad>
2025
파일:adofaigglogo.png ADOFAI.gg 공동 주최
<nopad>
Finale
파일:adofaigglogo.png ADOFAI.gg 공동 주최
Encore · 오리지널 곡 · 역대 오리지널 레벨

1. 개요2. 진행
2.1. Beta Challenge
2.1.1. 퍼즐2.1.2. 레벨
2.2. 2025 Challenge
2.2.1. 퍼즐2.2.2. 레벨
2.3. Finale Challenge
2.3.1. 퍼즐2.3.2. 레벨
2.4. Encore Challenge
2.4.1. 퍼즐2.4.2. 레벨
2.5. Rewrite.
3. 여담

1. 개요

Effect Playing Contest의 챌린지에 관한 문서. 정식 명칭은 EPC : Encore이다. 마지막 대회인 Effect Playing Contest : Finale 종료 직후 진행되었으며, EPC의 마지막을 장식한 이벤트이다.

스토리 진행과 함께 ARG 형식으로 공개되었으며, 해당 ARG의 정답을 알아내야 레벨을 플레이할 수 있는 형식으로 진행되었다. 각각의 레벨을 일정 데스 수 이하로 넘겨야 다음 ARG로 넘어갈 수 있다.

==# 이벤트 전 정보 #==
EPC : Finale 플레이 부문의 코스 라운드 레벨 4개 중 3개가 공개되던 날, Cansol - ▷ixel-mem□ry-dia[ll]의 이미지 파일 중 수상한 두 이미지가 발견되었다. 두 이미지는 각각 QR 코드인 qr.png[1], Error Code [ Y2 9t bW Fu ZG 1l bn Rz ]가 쓰여진 Error Code.png이다.

우선 qr.png의 QR 코드를 스캔하면 "ZGF6emxlLnN0Lz8="이라는 텍스트가 나오는데, BASE64로 복호화 하면 "dazzle.st/?"라는 링크 형식의 문자열이 나온다. Error Code.png의 텍스트에 공백을 제거한 문자열인 "Y29tbWFuZG1lbnRz"또한 BASE64로 복호화 하면 "commandments"가 나온다. 이 두 문자열을 합치면 https://dazzle.st/commandments이라는 링크를 발견할 수 있다. 이에 접속할 시, 검은색 화면에 녹색 디지털 타이머만 돌아가는 것을 알 수 있으며, 타이머가 끝나는 시간은 2026년 6월 22일 21시 정각, 해당 날짜는 EPC : Finale 이펙트 부문 8강 결과 공개일이다.

타이머가 종료되기 한 시간 전, 화면에는 노이즈가 낀 텍스트와 함께 정답 입력란이 나타났다.[2]

||<tablewidth=100%><tablebgcolor=#fff,#1f2023><tablebordercolor=#fff,#1f2023>
Find the first moment when the two timelines met.
||

정답은 기존의 불과 얼음의 춤 커뮤니티에 EPC가 처음 등장한 순간, 즉, EPC Beta의 타이브레이커 十戒。의 쇼케이스 영상이다. 이제 해당 정답을 입력하면,

||<tablewidth=100%><tablebgcolor=#fff,#1f2023><tablebordercolor=#fff,#1f2023>
You know the truth.
||

위 문자열의 노이즈가 점점 심해지다가, 이윽고 빈 페이지로 리다이렉트된다.

이후 EPC : Encore이 진행됨에 따라 해당 퍼즐이 EPC : Encore을 직접적으로 암시함이 드러났다.

2. 진행

Effect Playing Contest : Finale의 결승 라이브가 종료된 이후, 한 사이트가 공개되었다. 사이트의 이름은 dazzle.st/epc/end이었으며, 결승 라이브 기준 다음날 8시까지 타이머가 맞춰져 있었다.

8시가 되자, 사이트의 타이머는 "👀"로 변경되었으며, EPC 코스 모드를 다운로드 받을 수 있었다. 코스 모드는 비밀번호를 필요로 한다. 추가로 공식 디스코드 서버에 새로운 채널이 생겨났다. 채널은 각각 stdin, stdout. 곧바로 stdout에서 ...이라는 별명을 가진 유저가 메시지를 보냈다. 이후 stdin에 EPC라는 문구를 입력하자 해당 유저의 별명이 "solene"으로 바뀌었으며, 이를 통해 메시지를 보낸 사람이 스토리의 등장인물 중 한 명인 솔린임을 알 수 있다.
[ 메시지 원문 펼치기 · 접기 ]
||<tablewidth=100%><tablebgcolor=#fff,#1f2023><tablebordercolor=#fff,#1f2023>
연결되었을까나...
혹시 거기 누구 있어요?
어, 안녕하세요.
혹시... 도움을 주실 수 있을까 해서요.
아마 지금까지 저희가 겪은 일을 보고 있었다면 도움이 필요하다는 건 알고 있겠죠.
저희가 추론한 것이 맞다면, 여러분들은 모노나 크로엘처럼 우리의 과거와 미래를 오갈 뿐 아니라 아예 저희의 운명을 바꿀 수 있을 거라고 생각해요.
뭐랄까...
마치 소설처럼요.
이제 저희의 운명은 여러분들께 달려있어요. 여러분들이 저희의 유일한 희망인거고요.
그러니까... 저희를 도와주시겠어요?
감사합니다. 빠르게 진행해 보죠.
플루토가 미리 조사했을 때 여러분이 이전에 획득한 것이 있음을 발견했다 했어요.[3]
그 모양에 따라서 편의상 지금부터 '큐브' 라 칭하겠습니다.
저희는 여러분이 획득한 그 큐브를 작동시켜 저희 시간선을 다시 작성할 계획이에요.
애초에 두 우주가 충돌할 일이 없도록 말이죠.
하지만 저희는 이 큐브를 작동시킬 수 없어요.
큐브를 작동시키려면 그에 맞는 열쇠가 필요한데, 현재 저희가 살아가는 이 시간에서는 열쇠에 대한 단서조차 찾을 수 없었다고 해요.
열쇠 또한, 큐브와 마찬가지로 여러분의 세계에만 존재하는 물건이란 거죠.
그러므로 여러분은 여러분들의 세상에서 열쇠의 흔적을 찾고, 큐브를 작동시켜 시간선 "재작성" 을 진행해 주셔야 해요.
부탁드립니다, 저희를 이 연극의 결말에서 구원해주세요.

2.1. Beta Challenge

2.1.1. 퍼즐

오후 8시 30분 경, 솔린이 다음 메시지를 전송하였다.
||<tablewidth=100%><tablebgcolor=#fff,#1f2023><tablebordercolor=#fff,#1f2023>
저희가 여러분들이 열쇠로 접근하는 프로그램을 만들어봤지만... 상황을 보아 잘 작동하는 것 같지 않네요.
하지만, 열쇠의 단서는 분명히 지금 세상에 존재 할 거예요.
아마 과거부터 차근차근 찾아가다보면 아마 열쇠에 대한 흔적이 나올 수도 있겠죠.

이 문구를 참고하여 EPC의 과거 영상부터 찾아본다면, EPC Beta의 十戒。 레벨 쇼케이스 영상에서 https://dazzle.st/beta라는 사이트를 찾을 수 있다. 그리고 해당 사이트에 접속하여 보면, 다음과 같은 이미지 파일이 나타난다.
파일:EPCChallengeARG1.png
우선 정답 입력 규칙은 다음과 같은 규칙을 따른다.
1. (문자열)_(문자열)_(문자열) 형식으로 작성하며, 대문자로 작성한다.
2. 위 사진에 명시된 단서에는 그리스 문자가 나열되어 있다.
3. 그리스 문자당 하나의 글자가 할당되며, 같은 종류의 그리스 문자에 한해 n번째 그리스 문자는 n번째 철자를 할당받는다.
이제 단서들을 위에서부터 살펴보자.
  • 첫 번째 단서
    Effect Playing Contest VC는 Effect Playing Contest의 Voice Chat, 즉 통화방을 의미한다. 이를 통해 Effect Playing Contest 서버[4]의 통화방을 살펴보면 통화방η, 통화방π, 통화방χ이 있다. 이를 통해 ηπχ이라는 문자열을 얻어낼 수 있다.
  • 두 번째 단서
    Erica, Pluto, Chris #4에서 에리카, 플루토, 크리스는 EPC 2025의 스토리 등장인물이다. 이를 참고하여 EPC 2025의 스토리 4화를 열람하면, 맨 아래쪽에 ββββ라는 문자열을 발견할 수 있다.
  • 세 번째 단서
    EPiCa connection established.라는 문구가 쓰인 영상이 존재한다. 해당 문구는 EPC : Finale의 이펙트 부문 16강 최초공개 가장 마지막 화면에서 확인 가능하다. 해당 문구가 나올 때 자막을 켜면 χχρωωατχχ라는 문자열을 발견할 수 있다.
위의 단서에서 얻은 ηπχ, ββββ, χχρωωατχχ를 가지고 앞선 규칙에 대응시키면, 최종적으로 EPC_BETA_CHROMATIC이라는 문자열이 나오게 된다. 이제 이를 코스 모드의 비밀번호에 입력하면 첫 번째 챌린지 레벨을 플레이할 수 있다.

2.1.2. 레벨

파일:다른 뜻 아이콘.svg  
#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. 
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 레벨}}}에 대한 내용은 [[Effect Playing Contest/역대 오리지널 레벨]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[Effect Playing Contest/역대 오리지널 레벨#s-5.1|5.1]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[Effect Playing Contest/역대 오리지널 레벨#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.

#!if 리스트 != null
{{{#!if 문서명1 != null
 * {{{#!if 설명1 != null
레벨: }}}[[Effect Playing Contest/역대 오리지널 레벨]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[Effect Playing Contest/역대 오리지널 레벨#s-5.1|5.1]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[Effect Playing Contest/역대 오리지널 레벨#|]] 부분}}}}}}{{{#!if 문서명2 != null
 * {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
 * {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
 * {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
 * {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
 * {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
 * {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
 * {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
 * {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
 * {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}
<colbgcolor=#430616><colcolor=#F3CDDA>
'''{{{#!wiki style="display: inline; text-shadow: 0 0 3px #F3CDDA; color: #F3CDDA"
BPM 271
시간 2분 06초
성공 조건
데스 수 10 미만
해당 레벨은 당시 10시 21분에 해금되었으며, 약 1시간 반 뒤인 11시 49분에 클리어되었다. 클리어자는 Ghostify. 총 7데스를 기록하였다.

2.2. 2025 Challenge

2.2.1. 퍼즐

첫 번째 레벨을 넘기자 다음 메시지와 함께 새로운 사진이 첨부되었다.
||<tablewidth=100%><tablebgcolor=#fff,#1f2023><tablebordercolor=#fff,#1f2023>
여러분께서 열심히 조사해 주신 덕분에, 저희 쪽에서 열쇠의 파편 일부 데이터를 전송받는 데에 성공했어요! 아직은 모자라지만, 이대로 간다면 계획 진행에는 문제 없겠어요..!
(파일 첨부: beta_fragment.bin)
앞으로도 잘 부탁드립니다! 저희도 공유해드릴 수 있는 정보가 있다면 되는 대로 보내드릴게요!
이번엔 저희 쪽에서 단서를 좀 찾아보았어요..! 일단 저희는 파일 구조를 알 수가 없어서 깨진 파일로 보이는데.. 그쪽에선 괜찮은가요? 잘 보이나요?
(아래의 사진 첨부)
다행히 잘 보이는 것 같네요..!
뭔가 입력 창이 저희에게 뜨는데 혹시 뭔지 알아내면 저희에게 알려주실 수 있나요?
파일:EPCChallengeARG2-1.png
우선 위의 α, β, γ를 3차원 좌표평면의 세 축으로 보자. 그 다음 α, β, γ 뒤에 나열된 숫자에서 왼쪽에서 n번째 숫자를 [math(α_n, β_n, γ_n)]라 하자. 그럼 [math((α_n, β_n, γ_n))]를 좌표로 하는 3차원 점들을 찍을 수 있다. 그 뒤, 아래의 2x2의 배열에 놓인 α, β, γ들을 보자.
위의 배열을 보고 두 문자 사이에 낀 문자를 가지는 축을 수직으로 바라봐 2차원 평면처럼 보이게 한다. 그 다음 문자 옆에 있는 다른 문자와 남은 두개 축의 방향을 같게 한다. 이 시행을 위의 배열에 전부 실행하면 다음과 같은 문자열을 얻어낼 수 있다.
#!style
.larrow { margin: -5px -10px; padding: 6px 10px; background-image: conic-gradient(at 0 50%, #fff 20%, transparent 20% 30%, #fff 30%), linear-gradient(transparent 45%, #000 45% 55%, transparent 55%), linear-gradient(to right, transparent 20px, #fff 20px), conic-gradient(at 0 50%, transparent 20%, #000 20% 30%, transparent 30%); }
.rarrow { margin: -5px -10px; padding: 6px 10px; background-image: conic-gradient(at 100% 50%, #fff 70%, transparent 70% 80%, #fff 80%), linear-gradient(transparent 45%, #000 45% 55%, transparent 55%), linear-gradient(to left, transparent 20px, #fff 20px), conic-gradient(at 100% 50%, transparent 70%, #000 70% 80%, transparent 80%); }
.uarrow { margin: -5px -10px; padding: 6px 10px; background-image: conic-gradient(at 50% 0, #fff 45%, transparent 45% 55%, #fff 55%), linear-gradient(to right, transparent 45%, #000 45% 55%, transparent 55%), linear-gradient(to bottom, transparent 20px, #fff 20px), conic-gradient(at 50% 0, transparent 45%, #000 45% 55%, transparent 55%); }
.darrow { margin: -5px -10px; padding: 6px 10px; background-image: conic-gradient(at 50% 100%, transparent 5%, #fff 5% 95%, transparent 95%), linear-gradient(to right, transparent 45%, #000 45% 55%, transparent 55%), linear-gradient(to top, transparent 20px, #fff 20px), conic-gradient(at 50% 100%, #000 5%, transparent 5% 95%, #000 95%); }
@theseed-dark-mode { .larrow { margin: -5px -10px; padding: 6px 10px; background-image: conic-gradient(at 0 50%, #1c1d1f 20%, transparent 20% 30%, #1c1d1f 30%), linear-gradient(transparent 45%, #e0e0e0 45% 55%, transparent 55%), linear-gradient(to right, transparent 20px, #1c1d1f 20px), conic-gradient(at 0 50%, transparent 20%, #e0e0e0 20% 30%, transparent 30%); }
.rarrow { margin: -5px -10px; padding: 6px 10px; background-image: conic-gradient(at 100% 50%, #1c1d1f 70%, transparent 70% 80%, #1c1d1f 80%), linear-gradient(transparent 45%, #e0e0e0 45% 55%, transparent 55%), linear-gradient(to left, transparent 20px, #1c1d1f 20px), conic-gradient(at 100% 50%, transparent 70%, #e0e0e0 70% 80%, transparent 80%); }
.uarrow { margin: -5px -10px; padding: 6px 10px; background-image: conic-gradient(at 50% 0, #1c1d1f 45%, transparent 45% 55%, #1c1d1f 55%), linear-gradient(to right, transparent 45%, #e0e0e0 45% 55%, transparent 55%), linear-gradient(to bottom, transparent 20px, #1c1d1f 20px), conic-gradient(at 50% 0, transparent 45%, #e0e0e0 45% 55%, transparent 55%); }
.darrow { margin: -5px -10px; padding: 6px 10px; background-image: conic-gradient(at 50% 100%, transparent 5%, #1c1d1f 5% 95%, transparent 95%), linear-gradient(to right, transparent 45%, #e0e0e0 45% 55%, transparent 55%), linear-gradient(to top, transparent 20px, #1c1d1f 20px), conic-gradient(at 50% 100%, #e0e0e0 5%, transparent 5% 95%, #e0e0e0 95%); } }
{{{#!wiki<tablebgcolor=#000,#e0e0e0> α
<class=uarrow>
β <class=rarrow> γ
}}} ||
#!wiki
||<tablewidth=120><tablebgcolor=#000,#e0e0e0><width=25%><height=30> ||<width=25%> ||<width=25%> ||<bgcolor=#fff,#1c1d1f> α ||
||<height=30> ||<bgcolor=#fff,#1c1d1f> || ||<|4><class=uarrow> ||
||<height=30> || || ||
||<height=30><bgcolor=#fff,#1c1d1f> ||<bgcolor=#fff,#1c1d1f> || ||
||<height=30> || || ||
||<height=30><bgcolor=#fff,#1c1d1f> β ||<-2><class=larrow> ||<bgcolor=#fff,#1c1d1f> γ ||
||
#!wiki
||<tablewidth=120><tablebgcolor=#000,#e0e0e0><bgcolor=#fff,#1c1d1f><width=25%><height=30> β ||<-2><class=larrow> ||<bgcolor=#fff,#1c1d1f> α ||
||<height=30> ||<width=25%> ||<width=25%> ||<|2><class=darrow> ||
||<height=30> ||<bgcolor=#fff,#1c1d1f> || ||
||<height=30><bgcolor=#fff,#1c1d1f> ||<bgcolor=#fff,#1c1d1f> || ||<bgcolor=#fff,#1c1d1f> γ ||
||
#!wiki
||<tablewidth=120><tablebgcolor=#000,#e0e0e0><width=25%><height=30> ||<width=25%> ||<width=25%> ||<bgcolor=#fff,#1c1d1f> α ||
||<height=30><bgcolor=#fff,#1c1d1f> ||<bgcolor=#fff,#1c1d1f> || ||<|4><class=uarrow> ||
||<height=30> || || ||
||<height=30> ||<bgcolor=#fff,#1c1d1f> ||<bgcolor=#fff,#1c1d1f> ||
||<height=30> || || ||
||<height=30><bgcolor=#fff,#1c1d1f> γ ||<-2><class=larrow> ||<bgcolor=#fff,#1c1d1f> β ||
||
이렇게 도출된 문자열인 "5972"을 stdin에 입력했을 때, 답장과 함께 이미지가 첨부되었다.
||<tablewidth=100%><tablebgcolor=#fff,#1f2023><tablebordercolor=#fff,#1f2023>
말씀해주신 "5972" 를 입력했더니 이런 수들이 저희 화면에 떴어요.
이쪽에 대해 입력하는 창은 저희 쪽에 없는 것 같네요. 여러분들에게 맡길 수밖에 없겠어요.
이쪽에서도 수고해주시면 감사하겠습니다.
파일:EPCChallengeARG2-2.jpg
이 이미지에서 5, 9, 2, 7만 강조하면 다음과 같이 나온다.
파일:EPCChallengeARG2-3.png
이렇게 prelude라는 문자열을 도출할 수 있다. 이 문자열만 비밀번호로 입력하면 답이 아닌데, 이전 정답의 형식을 잘 살펴볼 필요가 있다. 앞선 답은 EPC_BETA_CHROMATIC이며, (대회 이름)_(개최 명칭)_(이외의 단어)형식을 가진다. 결국 최종 답은 이를 적용시킨 EPC_2025_PRELUDE이다.

2.2.2. 레벨

파일:다른 뜻 아이콘.svg  
#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. 
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 레벨}}}에 대한 내용은 [[Effect Playing Contest/역대 오리지널 레벨]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[Effect Playing Contest/역대 오리지널 레벨#s-5.2|5.2]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[Effect Playing Contest/역대 오리지널 레벨#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.

#!if 리스트 != null
{{{#!if 문서명1 != null
 * {{{#!if 설명1 != null
레벨: }}}[[Effect Playing Contest/역대 오리지널 레벨]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[Effect Playing Contest/역대 오리지널 레벨#s-5.2|5.2]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[Effect Playing Contest/역대 오리지널 레벨#|]] 부분}}}}}}{{{#!if 문서명2 != null
 * {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
 * {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
 * {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
 * {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
 * {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
 * {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
 * {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
 * {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
 * {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}
<colbgcolor=#394A89><colcolor=#D6DCF2>
'''{{{#!wiki style="display: inline; text-shadow: 0 0 5px #00001C, 0 0 3px #00001C; color: #D6DCF2"
BPM 174
시간 3분 04초
성공 조건
데스 수 10 미만
해당 레벨은 새벽 12시 17분에 해금되었으며, 약 1시간 뒤인 1시 13분에 클리어되었다. 클리어자는 fgghf. 총 2데스를 기록하였다.
해당 레벨의 2:34 경부터 비프 음 마다 EPC 2025에 등장했던 Grand Xross 등장 연출에 나왔던 텍스트, "경고, POINT OF NO RETURN" 이 출력된다.

2.3. Finale Challenge

2.3.1. 퍼즐

두 번째 레벨을 넘기자 메시지와 함께 한 압축파일이 첨부되었다.
||<tablewidth=100%><tablebgcolor=#fff,#1f2023><tablebordercolor=#fff,#1f2023>
이번에도 덕분에 열쇠 데이터를 수집할 수 있었어요. 수집한 열쇠 데이터를 보내드리니 참고해주시면 감사하겠습니다.
(파일 첨부: 2025_fragment.bin)
열쇠 데이터가 저희에게 오는 동시에, 이번에도 저희는 열람이 불가능한 데이터가 같이 전송됐어요. 확인 부탁드립니다.

열쇠 데이터 수집도 벌써 막바지네요, 이번에도 힘내주세요..!

해당 압축 파일을 압축하는데 성공해 암호를 얻어내는 것이 목표이다. 여담으로 이번 퍼즐은 일반적인 윈도우 탐색기로 풀이가 불가능할 뿐더러 풀이가 매우 복잡하므로 관련 분야에 관심있지 않다면 웬만해서는 따라하지 말자.

1. finale.zip
finale.zip title^str.zip
str
PASSWORD_epica
level.adofai.sha256
finale.zip을 압축해제하려 시도하면 비밀번호가 걸려있는 것을 발견할 수 있다. 여기서 압축 폴더 내부의 PASSWORD_epica를 참고하여, epica를 비밀번호로 입력하면 쉽게 파일을 압축해제할 수 있다.

2. title^str.zip
finale.zip title^str.zip
str
PASSWORD_epica
level.adofai.sha256
fireworks.png
이번 파일에도 비밀번호가 걸려있다. 압축파일 이외에는 이미 사용한 비밀번호 파일, 한 얼불춤 레벨의 256비트 해시값, str이 있다. 압축 파일 제목이 title^str이므로 level.adofai.sha256와 동일한 해시값을 가지는 얼불춤 레벨의 제목과 str값에 XOR 연산자를 대입해야함을 알 수 있다.

동일한 해시값을 가지는 레벨은 Effect Playing Contest : Finale 이펙트 부문 8강에서 제작된 Irrisu - STATiC SHOCKER이다. 이를 이용하여 STATiCSHOCKER의 16진수인 53544154694353484f434b4552 와 str의 내용인 1711171b3d0617000a02191101에 XOR 연산자를 대입하여 ASCII로 변환하면, DEVOTEDHEARTS가 도출된다. 이 암호를 이용하여 압축 해제를 할 수 있다.

3. locked_real.zip
title^str.zip fireworks.png
(locked_real.zip)
id_rsa.pub
message.txt
r.zip
우선 위의 fireworks.png 파일을 살펴보면, 정상적인 PNG 구조로 끝나는 IEND 청크(49 45 4E 44 AE 42 60 82) 이후에도 데이터가 계속 남아 있다. PNG는 IEND 이후의 데이터는 이미지 표시에 사용하지 않기 때문에, 뒤에 다른 파일이 붙어있음을 알 수 있다. IEND 청크 바로 뒤에는 ZIP 파일의 매직넘버인 50 4B 03 04로 시작하고 있으므로 PNG 뒤에 붙어 있는 파일은 ZIP 파일이라는 것을 확인할 수 있다. 이후 해당 위치부터 파일 끝까지 추출해 ZIP 파일을 분리하여 locked_real.zip파일을 얻어낼 수 있다.

이제 해당 ZIP 파일을 압축 해제하기 위해서 알아야 할 정보가 있다. ZIP 파일에는 각 파일의 상태를 기록하는 여러 헤더 정보가 있다. 그중 General Purpose Bit Flag는 파일의 처리 상태를 나타내는 필드이다. 이번 퍼즐에서는 이 플래그의 최하위 비트(bit 0)가 암호화 여부를 나타내게 된다.

이번에 수정해야 하는 플래그는 아래 두 종류의 헤더에 존재한다.
- Local File Header (50 4B 03 04)
- Central Directory Header (50 4B 01 02)
헤더 구조를 보면 시그니처에서 6바이트 뒤에 General Purpose Bit Flag가 위치한다. 예를 들어 locked_real.zip의 가장 앞에 있는 헤더 구조를 보자.
50 4B 03 04 14 00 01 00 08 00
Signature Version Flag Deflate
여기서 01 00이 General Purpose Bit Flag가 되는 것이다. 현재 값이 01 00이므로 암호화된 파일이라고 표시되어 있지만, 실제 데이터는 암호화된 것이 아니라 Deflate로만 압축된 상태이다. 즉, 헤더만 "암호화됨"이라고 잘못 표시되어 있는 것이다. 따라서 Local File Header와 Central Directory Header에 있는 플래그를 모두 00 00으로 수정해 암호화 표시를 제거하면, 정상적으로 압축을 해제할 수 있게 된다.

4. r.zip
locked_real.zip id_rsa.pub
message.txt
r.zip
depths
sp.zip
우선 각 파일을 먼저 살펴보자.

id_rsa.pub는 SSH 접속에 쓰는 RSA 공개 키 파일이다. message.txt를 살펴보면 16진수 형태로 문자가 구성되어있음을 알 수 있다. 또한 위의 16진수는 총 256글자로 이루어져 있으며, 이를 통해 즉 RSA 2048비트 암호문 형태로 볼 수 있다. 이로써, message.txt는 공개 키인 id_rsa.pub으로 암호화 되었으며, 개인 키인 id_rsa로 복호화하여 r.zip의 비밀번호을 풀어야 함을 알 수 있다. 따라서 개인키인 id_rsa가 필요함을 알 수 있다.

개인 키를 구할 당시, 주최 측에서 다음과 같은 힌트를 주었다.
플루토들은 보안이 매우 엄격하기 때문에 자신의 user 폴더에 키를 놔둔 채 http로 공개하거나 하지 않을 것입니다[5]
위의 힌트를 통해 Plutos 사이트[6]의 파일 경로 구조가 사용자 폴더를 웹으로 보여주는 형태라는 것을 확인할 수 있다. 추가로 Plutos 사이트에 들어가 4번 일지의 비밀번호를 구하는 과정에서 https://plutos.dazzle.st/home/pluto/music/4a5q0.mp3라는 사이트가 발굴된 적 있는데, 이를 통해 플루토의 유저 폴더가 /home/pluto/... 형식임을 짐작할 수 있다. 결론적으로 다음과 같은 사이트를 유추해볼 수 있다.
https://plutos.dazzle.st/home/pluto/.ssh/id_rsa
해당 경로에서 .ssh는 SSH 키가 저장되는 일반적인 폴더이다. 실제로 위의 주소에서 개인 키가 다운로드가 되는 것을 알 수 있다.

두 RSA 키의 모듈러스는 정확히 일치했으며, 따라서 웹에서 찾은 id_rsa가 문제의 공개키와 대응하는 진짜 비공개키임을 알 수 있다. 마지막으로 찾은 개인 키로 message.txt를 RSA 복호화하기 전, 패딩 방식에 대해 알아야 한다. 위의 문제에서는 RSA-OAEP 방식과 SHA-1 해시를 사용한 것으로 확인되었다. 최종적으로 복호화를 할 시,
hello! i hope no one can read this... it's encrypted after all!!
cr4zy_prot3ct10n
위의 문구를 도출해낼 수 있으며, 아랫줄의 cr4zy_prot3ct10n으로 r.zip를 압축해제할 수 있다.

5. sp.zip
r.zip depths
sp.zip
h
w3s1v20p355.zip
이번에도 sp.zip파일에는 비밀번호가 걸려있다. 유심히 지켜봐야할 파일은 depths 파일이다. 해당 파일은 확장자가 없었으며, 일반 파일로 인식되지 않았다. 해당 파일의 처음 4바이트를 ASCII로 확인할 시 "RIZZ"가 들어있음을 알 수 있다. 다음 바이트를 확인 할 시 "WAVE", "fmt" "data"와 같이 WAV 형식 데이터가 이어져 있음을 확인할 수 있다. 일반적인 WAV 파일은 처음 4바이트가 "RIFF"이므로 시작해야 하므로, 위의 파일은 변형된 WAV파일임을 알 수 있다. 따라서 파일의 시작 부분을 WAV파일 형식으로 수정하면, 정상적인 WAV 파일을 하나 얻을 수 있다.

해당 WAV 파일을 실행할 시 괴상한 전자음만 들릴 뿐, 별다른 단서는 얻을 수 없다. 그러나 이를 스펙트로그램으로 확인할 시, 아래와 같이 QR코드가 나타난다.
파일:EPCChallengeARG3-1.png
해당 QR코드를 스캔할 시, 7h3_s0und_of_f47e이 검색된 사이트가 나온다. 이를 통해 7h3_s0und_of_f47e이라는 문자열을 얻을 수 있으며, 이를 통해 sp.zip을 압축해제할 수 있다.

6. w3s1v20p355.zip
sp.zip h
w3s1v20p355.zip
pw.png
h 파일을 ACSII로 복호화된 텍스트로 볼 시, 16진수로 이루어진 긴 문자열을 볼 수 있다. 이를 UTF-8로 복호화하면 BASE64로 암호화한듯한 문자열이 나오며, 이를 BASE64로 복호화할 시 긴 문자열을 얻을 수 있다. 다음으로 파일명을 확인할 수 있다. 압축파일인 w3s1v20p355.zip의 파일명은 Library of Babel 웹사이트의 좌표[7]를 뜻하며, h 파일은 Library of Babel의 hex name을 뜻한다.

이렇게 위에서 나온 값을 통해 조회를 해보면, 불규칙적인 문자열들 사이에 한 글을 발견할 수 있다. # 해당 영어문장을 해석하면 다음과 같다.
여기까지 오신 것을 진심으로 축하드립니다. 하지만 이야기는 아직 끝나지 않았습니다. 반복되는 일상과 수많은 난관 속에서도 굴하지 않고 이어온 당신의 빛나는 여정이 이제 대단원의 막을 내리려 합니다. 지난 3년 동안 EPC와 함께해 주셔서 감사합니다. 무엇보다, 당신이라는 존재 자체에 감사드립니다.[8] 가까운 곳이든 먼 곳이든, 세상 어딘가에는 분명 당신을 필요로 하는 사람이 있습니다. 앞날에 행운이 가득하기를 빕니다. hopeofepica
맨 마지막의 hopeofepica로 파일 압축 해제가 가능하며, 마지막 파일인 pw.png를 열람할 수 있다.
파일:EPCChallengeARG3-2.png
마지막 파일에는 EPC_FINALE_RESPITE라는 문자열이 쓰여있었으며, pw라는 파일명에서도 알 수 있듯 이것이 해당 퍼즐의 최종 비밀번호이다. 이를 코스 모드의 비밀번호에 입력하면 세 번째 챌린지 레벨을 플레이할 수 있다.

2.3.2. 레벨

파일:다른 뜻 아이콘.svg  
#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. 
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 레벨}}}에 대한 내용은 [[Effect Playing Contest/역대 오리지널 레벨]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[Effect Playing Contest/역대 오리지널 레벨#s-5.3|5.3]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[Effect Playing Contest/역대 오리지널 레벨#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.

#!if 리스트 != null
{{{#!if 문서명1 != null
 * {{{#!if 설명1 != null
레벨: }}}[[Effect Playing Contest/역대 오리지널 레벨]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[Effect Playing Contest/역대 오리지널 레벨#s-5.3|5.3]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[Effect Playing Contest/역대 오리지널 레벨#|]] 부분}}}}}}{{{#!if 문서명2 != null
 * {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
 * {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
 * {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
 * {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
 * {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
 * {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
 * {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
 * {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
 * {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}
<colbgcolor=#5D1328><colcolor=#FFE4C3>
'''{{{#!wiki style="display: inline; text-shadow: 0 0 7px #FC6266, 0 0 3px #FFE4C3, 0 0 1px #fff; color: #fff"
BPM 230
시간 4분 39초
성공 조건
데스 수 30 미만[9]
레벨은 새벽 3시 25분에 해금되었다. 이번 레벨은 매우 긴 레벨 길이와 높은 난이도 때문에 많은 유저들이 고전했다. 심지어 15 데스 이하로 클리어라는 악질적인 조건까지 가지고 있었기에 레벨은 한동안 클리어될 기미가 보이지 않았다. 결국 새벽 5시 43분에 데스 수 조건이 15개에서 30개로 완화되었다. 최종적으로 레벨이 해금된 지 약 3시간만인 오전 6시 19분에 클리어되었다. 클리어자는 알명서1512. 최종 18데스를 기록하였다.

2.4. Encore Challenge

2.4.1. 퍼즐

세 번째 레벨을 넘기자 이번에도 메시지가 수신되었다.
||<tablewidth=100%><tablebgcolor=#fff,#1f2023><tablebordercolor=#fff,#1f2023>
마지막 열쇠 데이터가 도착했어요! 혹시 모르니 공유할게요.
(파일 첨부: finale_fragment.bin)
포기하지 않고 끝까지 도와주셔서 감사해요. 여러분들 덕분에 큐브를 열 수 있게 되었어요.
저희는 얼른 큐브를 열으러 가보겠습니다! 그동안 수고하셨습니다.
아 맞다, 열쇠. 챙겨야죠. 공유해주셔서 감사해요! 정말로 큐브를 열으러 가볼게요.

사실 앞선 레벨에서도 볼 수 있듯 레벨을 하나 완료할때마다 각 챌린지에 맞는 fragment.bin 파일을 받았었다. 이렇게해서 모인 bin 파일은 beta_fragment.bin, 2025_fragment.bin, finale_fragment.bin이다. 이들을 바이너리로 이어붙이면 ZIP 파일이 생성되며, ZIP 압축을 해제해 encore.key 파일을 얻을 수 있다. 이 파일은 .key일 뿐, 실제 형식은 PNG 이미지이다.
파일:EPCChallengeARGKey.png
해당 이미지를 stdin 채널에 올리자,
||<tablewidth=100%><tablebgcolor=#fff,#1f2023><tablebordercolor=#fff,#1f2023>
고정된 결말을 바꿀 수 있게 해주셔서 감사합니다.

위의 메시지와 함께 네 번째 레벨에 접근할 수 있었다. 그러나 맵은 실행되지 않았다. 이에 게임의 로그를 확인한 결과 다음 경로 힌트를 발견할 수 있었다.
(ADOFAI 게임 폴더)\\Mods\\EPCSubmissionHelper\\..\\..\\encore.key
위의 힌트에서 ..\\..을 적용하면 모드가 요구하는 실제 경로는 다음과 같다.
(ADOFAI 게임 폴더)\\encore.key
이제 encore.key를 해당 게임 폴더에 넣고 코스 모드를 다시 실행하여[10] 마지막 레벨을 선택한 후, "click to rewrite" 문구 위의 무지갯빛으로 빛나는 큐브를 클릭하면...

2.4.2. 레벨

파일:다른 뜻 아이콘.svg  
#!if 넘어옴1 != null
''''''{{{#!if 넘어옴2 == null
{{{#!if 넘어옴1[넘어옴1.length - 1] >= 0xAC00 && 넘어옴1[넘어옴1.length - 1] <= 0xD7A3
{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴1[넘어옴1.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴1[넘어옴1.length - 1] < 0xAC00 || 넘어옴1[넘어옴1.length - 1] > 0xD7A3
은(는)}}}}}}{{{#!if 넘어옴2 != null
, ''''''{{{#!if 넘어옴3 == null
{{{#!if 넘어옴2[넘어옴2.length - 1] >= 0xAC00 && 넘어옴2[넘어옴2.length - 1] <= 0xD7A3
{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴2[넘어옴2.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴2[넘어옴2.length - 1] < 0xAC00 || 넘어옴2[넘어옴2.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴3 != null
, ''''''{{{#!if 넘어옴4 == null
{{{#!if 넘어옴3[넘어옴3.length - 1] >= 0xAC00 && 넘어옴3[넘어옴3.length - 1] <= 0xD7A3
{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴3[넘어옴3.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴3[넘어옴3.length - 1] < 0xAC00 || 넘어옴3[넘어옴3.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴4 != null
, ''''''{{{#!if 넘어옴5 == null
{{{#!if 넘어옴4[넘어옴4.length - 1] >= 0xAC00 && 넘어옴4[넘어옴4.length - 1] <= 0xD7A3
{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴4[넘어옴4.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴4[넘어옴4.length - 1] < 0xAC00 || 넘어옴4[넘어옴4.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴5 != null
, ''''''{{{#!if 넘어옴6 == null
{{{#!if 넘어옴5[넘어옴5.length - 1] >= 0xAC00 && 넘어옴5[넘어옴5.length - 1] <= 0xD7A3
{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴5[넘어옴5.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴5[넘어옴5.length - 1] < 0xAC00 || 넘어옴5[넘어옴5.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴6 != null
, ''''''{{{#!if 넘어옴7 == null
{{{#!if 넘어옴6[넘어옴6.length - 1] >= 0xAC00 && 넘어옴6[넘어옴6.length - 1] <= 0xD7A3
{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴6[넘어옴6.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴6[넘어옴6.length - 1] < 0xAC00 || 넘어옴6[넘어옴6.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴7 != null
, ''''''{{{#!if 넘어옴8 == null
{{{#!if 넘어옴7[넘어옴7.length - 1] >= 0xAC00 && 넘어옴7[넘어옴7.length - 1] <= 0xD7A3
{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴7[넘어옴7.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴7[넘어옴7.length - 1] < 0xAC00 || 넘어옴7[넘어옴7.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴8 != null
, ''''''{{{#!if 넘어옴9 == null
{{{#!if 넘어옴8[넘어옴8.length - 1] >= 0xAC00 && 넘어옴8[넘어옴8.length - 1] <= 0xD7A3
{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴8[넘어옴8.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴8[넘어옴8.length - 1] < 0xAC00 || 넘어옴8[넘어옴8.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴9 != null
, ''''''{{{#!if 넘어옴10 == null
{{{#!if 넘어옴9[넘어옴9.length - 1] >= 0xAC00 && 넘어옴9[넘어옴9.length - 1] <= 0xD7A3
{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴9[넘어옴9.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴9[넘어옴9.length - 1] < 0xAC00 || 넘어옴9[넘어옴9.length - 1] > 0xD7A3
은(는)}}}}}}}}}{{{#!if 넘어옴10 != null
, ''''''{{{#!if 넘어옴10[넘어옴10.length - 1] >= 0xAC00 && 넘어옴10[넘어옴10.length - 1] <= 0xD7A3
{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) == 0
는}}}{{{#!if ((넘어옴10[넘어옴10.length - 1] - 0xAC00) % 28) != 0
은}}}}}}{{{#!if 넘어옴10[넘어옴10.length - 1] < 0xAC00 || 넘어옴10[넘어옴10.length - 1] > 0xD7A3
은(는)}}}}}} 여기로 연결됩니다. 
#!if 설명 == null && 리스트 == null
{{{#!if 설명1 == null
다른 뜻에 대한 내용은 아래 문서를}}}{{{#!if 설명1 != null
{{{#!html 레벨}}}에 대한 내용은 [[Effect Playing Contest/역대 오리지널 레벨]] 문서{{{#!if (문단1 == null) == (앵커1 == null)
를}}}{{{#!if 문단1 != null & 앵커1 == null
의 [[Effect Playing Contest/역대 오리지널 레벨#s-5.4|5.4]]번 문단을}}}{{{#!if 문단1 == null & 앵커1 != null
의 [[Effect Playing Contest/역대 오리지널 레벨#|]] 부분을}}}}}}{{{#!if 설명2 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단2 == null) == (앵커2 == null)
를}}}{{{#!if 문단2 != null & 앵커2 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단2 == null & 앵커2 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명3 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단3 == null) == (앵커3 == null)
를}}}{{{#!if 문단3 != null & 앵커3 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단3 == null & 앵커3 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명4 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단4 == null) == (앵커4 == null)
를}}}{{{#!if 문단4 != null & 앵커4 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단4 == null & 앵커4 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명5 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단5 == null) == (앵커5 == null)
를}}}{{{#!if 문단5 != null & 앵커5 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단5 == null & 앵커5 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명6 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단6 == null) == (앵커6 == null)
를}}}{{{#!if 문단6 != null & 앵커6 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단6 == null & 앵커6 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명7 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단7 == null) == (앵커7 == null)
를}}}{{{#!if 문단7 != null & 앵커7 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단7 == null & 앵커7 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명8 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단8 == null) == (앵커8 == null)
를}}}{{{#!if 문단8 != null & 앵커8 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단8 == null & 앵커8 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명9 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단9 == null) == (앵커9 == null)
를}}}{{{#!if 문단9 != null & 앵커9 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단9 == null & 앵커9 != null
의 [[#|]] 부분을}}}}}}{{{#!if 설명10 != null
, {{{#!html }}}에 대한 내용은 [[]] 문서{{{#!if (문단10 == null) == (앵커10 == null)
를}}}{{{#!if 문단10 != null & 앵커10 == null
의 [[#s-|]]번 문단을}}}{{{#!if 문단10 == null & 앵커10 != null
의 [[#|]] 부분을}}}}}}
#!if 설명 == null
{{{#!if 리스트 != null
다른 뜻에 대한 내용은 아래 문서를}}} 참고하십시오.

#!if 리스트 != null
{{{#!if 문서명1 != null
 * {{{#!if 설명1 != null
레벨: }}}[[Effect Playing Contest/역대 오리지널 레벨]] {{{#!if 문단1 != null & 앵커1 == null
문서의 [[Effect Playing Contest/역대 오리지널 레벨#s-5.4|5.4]]번 문단}}}{{{#!if 문단1 == null & 앵커1 != null
문서의 [[Effect Playing Contest/역대 오리지널 레벨#|]] 부분}}}}}}{{{#!if 문서명2 != null
 * {{{#!if 설명2 != null
: }}}[[]] {{{#!if 문단2 != null & 앵커2 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단2 == null & 앵커2 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명3 != null
 * {{{#!if 설명3 != null
: }}}[[]] {{{#!if 문단3 != null & 앵커3 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단3 == null & 앵커3 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명4 != null
 * {{{#!if 설명4 != null
: }}}[[]] {{{#!if 문단4 != null & 앵커4 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단4 == null & 앵커4 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명5 != null
 * {{{#!if 설명5 != null
: }}}[[]] {{{#!if 문단5 != null & 앵커5 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단5 == null & 앵커5 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명6 != null
 * {{{#!if 설명6 != null
: }}}[[]] {{{#!if 문단6 != null & 앵커6 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단6 == null & 앵커6 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명7 != null
 * {{{#!if 설명7 != null
: }}}[[]] {{{#!if 문단7 != null & 앵커7 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단7 == null & 앵커7 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명8 != null
 * {{{#!if 설명8 != null
: }}}[[]] {{{#!if 문단8 != null & 앵커8 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단8 == null & 앵커8 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명9 != null
 * {{{#!if 설명9 != null
: }}}[[]] {{{#!if 문단9 != null & 앵커9 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단9 == null & 앵커9 != null
문서의 [[#|]] 부분}}}}}}{{{#!if 문서명10 != null
 * {{{#!if 설명10 != null
: }}}[[]] {{{#!if 문단10 != null & 앵커10 == null
문서의 [[#s-|]]번 문단}}}{{{#!if 문단10 == null & 앵커10 != null
문서의 [[#|]] 부분}}}}}}
<colbgcolor=#FEEFD3,#CBA894><colcolor=#463837>
'''{{{#!wiki style="display: inline; text-shadow: 0 0 5px #fff, 0 0 5px #fff; color: #000"
BPM 177 -> 215
시간 2분 27초
성공 조건
데스 수 30 미만
EPC : Encore의 최종 레벨. 오전 7시 2분에 해금되었다. 이후 많은 실력파 유저들이 시도했음에도 불구, 높은 난이도로 인해 프로그래스가 다소 느리게 진행되었다. 이후 EPC : Finale 플레이 부문에서 2위를 하기도 한 느슨냥이 12시 30분 경 챌린지에 참가하였고, 결국 레벨이 해금된지 약 6시간 20분 뒤, 오후 1시 46분에 챌린지를 클리어하는데 성공하였다.

여담으로 레벨이 플레이 될 때동안 작곡가에 대한 여러 추측이 오갔는데, 打打だいず가 곡을 작곡했다는 의견이 가장 유력했었다. 결국 AWC 2026 때에도 곡을 제공하였던 打打だいず가 곡을 제공한 것으로 공개되었다. 또한 모드에 버그가 있어 챌린지를 실패할 시 재시작이 안되는 현상이 일어났다. 이에 24시간 내에 수정될 것이란 메시지가 올라왔지만, 예정 시간의 절반도 안되어 클리어되었다.

2.5. Rewrite.

마지막 레벨까지 전부 넘기는데 성공하자, stdout 채널에서 마지막 메시지가 올라왔다. 메시지에는 글 대신 사진이 첨부되었으며, 가운데에 QR코드가 놓여있었다. 아래의 QR코드를 타고 들어갈 시, EPC : Finale의 메인 스토리 4번이 나온다.
파일:Farewell_EPC.png
이후 같은 날 오후 8시, 위 챌린지들의 쇼케이스 영상이 최초공개되며 EPC의 모든 일정이 종료되었다.

||<tablewidth=100%><tablebgcolor=#fff,#1f2023><tablebordercolor=#fff,#1f2023>Farewell, EPC.
작별이야, EPC. ||

3. 여담

  • 8시가 되었을 때 코스 다운로드 사이트에 사람들이 너무 몰리는 바람에 사이트가 터졌었다(...). 추가로 모드가 작동하지 않는 바람에 플레이어들은 실질적으로 9시부터 코스 모드에 접속할 수 있었다.
  • 챌린지가 진행되고 있었을 때, 레벨을 오로지 코스 모드로만 열 수 있는 바람에 선수들은 그저 박치기를 하며 레벨을 클리어해야 했다. 이 때 한 유저가 영상을 보고 빠르게 채보를 따라 작성하였고, 이를 통해 사람들이 채보를 연습하기도 하였다.
  • 코스 모드의 로비 BGM 역시 자체 제작이다. BGM의 제목은 Transform Nebular로, TRiNiTUM(tkqn14, NIKANON)이 작곡에 참여했다.
  • 대회 위원에 따르면 이 챌린지는 이틀 정도만에 깨질 것을 상정하고 제작되었다고 한다. 그리고 챌린지는 최종적으로 약 17시간만에 깨졌다.

[1] 특이하게도 해당 파일은 레벨에서 파티클 장식으로 사용되었다.[2] 여담으로 실제로 타이머가 종료될 시 타이머와 같은 텍스트 형식으로 "THE EVENT HAS BEEN STARTED!"라는 문구로 변하게 된다.[3] EPC 2025의 마지막 ARG를 통해 드러난 영상에 있다.[4] EPC Beta가 주최된 서버이다. ARG가 진행된 서버와는 다른 서버다.[5] id_rsa.pub에 대해 솔린이 "물어보니까 플루토들이 키 파일들을 잔뜩 생성해 둔 채 안 쓰거나 했던 것 같다"고 메시지를 보내기도 하였다.[6] Effect Playing Contest : Finale의 ARG 사이트이다. 사이트의 이름에서도 알 수 있듯이 플루토의 연구 일지를 모아놓은 플루토의 OS이다.[7] Wall 3, Shelf 1, Volume 20, Page 355[8] 영어 원문 Thank you for existing. EPC 엔딩 크레딧 곡인 log() - Thank you for existing와 정확히 일치한다.[9] 원래 15 데스 미만이었으나 완화되었다.[10] 해당 모드를 개발한 개발자 CrackThrough의 코멘트에 따르면, 원래 코스 모드를 킬 때 열쇠를 얻는 연출이 구현될 예정이었다고 한다. 챌린지가 종료된 후 다음 날에 구현되었다.