From: Brendan Hansen Date: Mon, 16 Sep 2019 18:09:25 +0000 (-0500) Subject: Added submission list viewing X-Git-Url: https://git.brendanfh.com/?a=commitdiff_plain;h=388fe14a471d2e84858f5255f6f533a657e5d938;p=codebox.git Added submission list viewing --- diff --git a/codebox/controllers/submission/list.moon b/codebox/controllers/submission/list.moon index 7465943..f9484b2 100644 --- a/codebox/controllers/submission/list.moon +++ b/codebox/controllers/submission/list.moon @@ -2,15 +2,20 @@ import make_controller from require "controllers.controller" import from_json, to_json from require 'lapis.util' import assert_valid from require 'lapis.validate' import capture_errors, yield_error from require 'lapis.application' -import Competitions, Jobs from require 'models' +import Competitions, Problems from require 'models' make_controller inject: queries: 'queries' middleware: { 'logged_in' } + scripts: { 'pie_chart' } get: => @navbar.selected = 2 + @competition = Competitions\find active: true + @problem_ids = @competition\get_problem_ids! + @problems = [Problems\find id for id in *@problem_ids] + render: 'submission.list' \ No newline at end of file diff --git a/codebox/models/competitions.moon b/codebox/models/competitions.moon index 7e720d5..7489692 100644 --- a/codebox/models/competitions.moon +++ b/codebox/models/competitions.moon @@ -10,5 +10,12 @@ class Competitions extends Model inner join competitions on competition_problems.competition_id = competitions.id where competitions.id=? order by competition_problems.letter asc", @id } + { "problem_ids", fetch: => + db.select "problems.id AS id + from problems + inner join competition_problems on problems.id = competition_problems.problem_id + inner join competitions on competition_problems.competition_id = competitions.id + where competitions.id=? order by competition_problems.letter asc", @id + } { "competition_problems", has_many: "CompetitionProblems" } } diff --git a/codebox/services/queries.moon b/codebox/services/queries.moon index fbecf62..ba72a6d 100644 --- a/codebox/services/queries.moon +++ b/codebox/services/queries.moon @@ -23,4 +23,7 @@ import Jobs from require 'models' }), user_id, problem_name return count[1].count > 0 + + get_jobs_by_user_and_problem: (user_id, problem_id) -> + db.select "* from jobs where user_id=? and problem_id=? order by time_initiated desc", user_id, problem_id } \ No newline at end of file diff --git a/codebox/static/coffee/pie_chart.coffee b/codebox/static/coffee/pie_chart.coffee index 369e176..11ba886 100644 --- a/codebox/static/coffee/pie_chart.coffee +++ b/codebox/static/coffee/pie_chart.coffee @@ -2,10 +2,11 @@ $(document).ready -> $('piechart').each (_, p) -> $p = $ p segments = $p.attr 'data-segments' + size = ($p.attr 'data-size') || 256 canvas = document.createElement "canvas" - canvas.width = 256 - canvas.height = 256 + canvas.width = size + canvas.height = size $p.append canvas ctx = canvas.getContext "2d" @@ -13,8 +14,8 @@ $(document).ready -> for i in [1..segments] total += parseInt ($p.attr "data-segment-#{i}") + half_size = size / 2 fill_perc = 0.01 - anim = -> acc = 0 for i in [1..segments] @@ -22,8 +23,8 @@ $(document).ready -> color = $p.attr "data-segment-#{i}-color" ctx.beginPath() - ctx.moveTo 128, 128 - ctx.arc 128, 128, 128, (-2 * Math.PI * (ratio + acc) / total), (-2 * Math.PI * acc / total) + ctx.moveTo half_size, half_size + ctx.arc half_size, half_size, half_size, (-2 * Math.PI * (ratio + acc) / total), (-2 * Math.PI * acc / total) ctx.closePath() ctx.fillStyle = color ctx.fill() diff --git a/codebox/static/css/core.css b/codebox/static/css/core.css index e0e7c36..311edc6 100644 --- a/codebox/static/css/core.css +++ b/codebox/static/css/core.css @@ -1 +1 @@ -.navbar{z-index:10000;width:100%;background:#0077c2;height:47px;position:relative;box-shadow:0px 0px 10px 0px rgba(0,0,0,.7);display:grid;grid-template-columns:1fr 6fr 1fr}.navbar .navbar-logo{padding-left:8px;text-align:center}.navbar .navbar-logo img{max-height:calc(47px - 2px);display:inline}.navbar ul{display:block;text-align:center;font-size:0}.navbar ul a li{margin:0;display:inline-block;cursor:pointer;font-size:24px;list-style:none;line-height:40px;padding-left:30px;padding-right:30px;padding-top:4px;color:#f2f2f2;border-top-color:#0077c2;transition:200ms all}.navbar ul a li.selected,.navbar ul a li:hover{border-bottom:2px solid #ffe766;color:#fff}.content,.error-list{width:100%;padding:10px 10%}.right{float:right}.left{float:left}.hidden{visibility:hidden}a{text-decoration:none;color:inherit}.split-2{display:grid;grid-template-columns:repeat(2, 1fr)}.split-2>*:first-child{margin-right:12px}.split-2>*:last-child{margin-left:12px}.split-3{display:grid;grid-template-columns:repeat(3, 1fr)}.split-3>*:first-child{margin-right:12px}.split-3>*:last-child{margin-left:12px}.split-4{display:grid;grid-template-columns:repeat(4, 1fr)}.split-4>*:first-child{margin-right:12px}.split-4>*:last-child{margin-left:12px}.split-lr{display:grid;grid-template-columns:1fr 1fr}.split-lr>*:first-child{text-align:left}.split-lr>*:last-child{text-align:right}pre{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);font-size:1rem}pre .hljs-ln td{padding-right:8px}pre .hljs-ln-line{max-width:200px !important}.fixed-half-split{display:grid;grid-template-columns:275px 1fr}.tabbed-split{display:grid !important}.tabbed-split.tab-12{grid-template-columns:12px 1fr}.tabbed-split.tab-16{grid-template-columns:16px 1fr}.tabbed-split.tab-24{grid-template-columns:24px 1fr}.tabbed-split.tab-32{grid-template-columns:32px 1fr}.tabbed-split.tab-48{grid-template-columns:48px 1fr}.tabbed-split.tab-64{grid-template-columns:64px 1fr}.tabbed-split.primary>span{background-color:#42a5f5}.tabbed-split.primary-light>span{background-color:#80d6ff}.tabbed-split.primary-dark>span{background-color:#0077c2}.tabbed-split.secondary>span{background-color:gold}.tabbed-split.secondary-light>span{background-color:#ffe766}.tabbed-split.secondary-dark>span{background-color:#998100}.tabbed-split.error>span{background-color:#d00}.tabbed-split.error-light>span{background-color:#f44}.tabbed-split.error-dark>span{background-color:#700}.box{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#111}.box .highlight:hover{background-color:#333}.w50{width:50%}.w100{width:100%}.pad-1{padding:1px}.pad-l-1{padding-left:1px}.pad-r-1{padding-right:1px}.pad-t-1{padding-top:1px}.pad-b-1{padding-bottom:1px}.mar-1{margin:1px}.mar-l-1{margin-left:1px}.mar-r-1{margin-right:1px}.mar-t-1{margin-top:1px}.mar-b-1{margin-bottom:1px}.pad-2{padding:2px}.pad-l-2{padding-left:2px}.pad-r-2{padding-right:2px}.pad-t-2{padding-top:2px}.pad-b-2{padding-bottom:2px}.mar-2{margin:2px}.mar-l-2{margin-left:2px}.mar-r-2{margin-right:2px}.mar-t-2{margin-top:2px}.mar-b-2{margin-bottom:2px}.pad-3{padding:3px}.pad-l-3{padding-left:3px}.pad-r-3{padding-right:3px}.pad-t-3{padding-top:3px}.pad-b-3{padding-bottom:3px}.mar-3{margin:3px}.mar-l-3{margin-left:3px}.mar-r-3{margin-right:3px}.mar-t-3{margin-top:3px}.mar-b-3{margin-bottom:3px}.pad-4{padding:4px}.pad-l-4{padding-left:4px}.pad-r-4{padding-right:4px}.pad-t-4{padding-top:4px}.pad-b-4{padding-bottom:4px}.mar-4{margin:4px}.mar-l-4{margin-left:4px}.mar-r-4{margin-right:4px}.mar-t-4{margin-top:4px}.mar-b-4{margin-bottom:4px}.pad-5{padding:5px}.pad-l-5{padding-left:5px}.pad-r-5{padding-right:5px}.pad-t-5{padding-top:5px}.pad-b-5{padding-bottom:5px}.mar-5{margin:5px}.mar-l-5{margin-left:5px}.mar-r-5{margin-right:5px}.mar-t-5{margin-top:5px}.mar-b-5{margin-bottom:5px}.pad-6{padding:6px}.pad-l-6{padding-left:6px}.pad-r-6{padding-right:6px}.pad-t-6{padding-top:6px}.pad-b-6{padding-bottom:6px}.mar-6{margin:6px}.mar-l-6{margin-left:6px}.mar-r-6{margin-right:6px}.mar-t-6{margin-top:6px}.mar-b-6{margin-bottom:6px}.pad-7{padding:7px}.pad-l-7{padding-left:7px}.pad-r-7{padding-right:7px}.pad-t-7{padding-top:7px}.pad-b-7{padding-bottom:7px}.mar-7{margin:7px}.mar-l-7{margin-left:7px}.mar-r-7{margin-right:7px}.mar-t-7{margin-top:7px}.mar-b-7{margin-bottom:7px}.pad-8{padding:8px}.pad-l-8{padding-left:8px}.pad-r-8{padding-right:8px}.pad-t-8{padding-top:8px}.pad-b-8{padding-bottom:8px}.mar-8{margin:8px}.mar-l-8{margin-left:8px}.mar-r-8{margin-right:8px}.mar-t-8{margin-top:8px}.mar-b-8{margin-bottom:8px}.pad-9{padding:9px}.pad-l-9{padding-left:9px}.pad-r-9{padding-right:9px}.pad-t-9{padding-top:9px}.pad-b-9{padding-bottom:9px}.mar-9{margin:9px}.mar-l-9{margin-left:9px}.mar-r-9{margin-right:9px}.mar-t-9{margin-top:9px}.mar-b-9{margin-bottom:9px}.pad-10{padding:10px}.pad-l-10{padding-left:10px}.pad-r-10{padding-right:10px}.pad-t-10{padding-top:10px}.pad-b-10{padding-bottom:10px}.mar-10{margin:10px}.mar-l-10{margin-left:10px}.mar-r-10{margin-right:10px}.mar-t-10{margin-top:10px}.mar-b-10{margin-bottom:10px}.pad-11{padding:11px}.pad-l-11{padding-left:11px}.pad-r-11{padding-right:11px}.pad-t-11{padding-top:11px}.pad-b-11{padding-bottom:11px}.mar-11{margin:11px}.mar-l-11{margin-left:11px}.mar-r-11{margin-right:11px}.mar-t-11{margin-top:11px}.mar-b-11{margin-bottom:11px}.pad-12{padding:12px}.pad-l-12{padding-left:12px}.pad-r-12{padding-right:12px}.pad-t-12{padding-top:12px}.pad-b-12{padding-bottom:12px}.mar-12{margin:12px}.mar-l-12{margin-left:12px}.mar-r-12{margin-right:12px}.mar-t-12{margin-top:12px}.mar-b-12{margin-bottom:12px}.pad-13{padding:13px}.pad-l-13{padding-left:13px}.pad-r-13{padding-right:13px}.pad-t-13{padding-top:13px}.pad-b-13{padding-bottom:13px}.mar-13{margin:13px}.mar-l-13{margin-left:13px}.mar-r-13{margin-right:13px}.mar-t-13{margin-top:13px}.mar-b-13{margin-bottom:13px}.pad-14{padding:14px}.pad-l-14{padding-left:14px}.pad-r-14{padding-right:14px}.pad-t-14{padding-top:14px}.pad-b-14{padding-bottom:14px}.mar-14{margin:14px}.mar-l-14{margin-left:14px}.mar-r-14{margin-right:14px}.mar-t-14{margin-top:14px}.mar-b-14{margin-bottom:14px}.pad-15{padding:15px}.pad-l-15{padding-left:15px}.pad-r-15{padding-right:15px}.pad-t-15{padding-top:15px}.pad-b-15{padding-bottom:15px}.mar-15{margin:15px}.mar-l-15{margin-left:15px}.mar-r-15{margin-right:15px}.mar-t-15{margin-top:15px}.mar-b-15{margin-bottom:15px}.pad-16{padding:16px}.pad-l-16{padding-left:16px}.pad-r-16{padding-right:16px}.pad-t-16{padding-top:16px}.pad-b-16{padding-bottom:16px}.mar-16{margin:16px}.mar-l-16{margin-left:16px}.mar-r-16{margin-right:16px}.mar-t-16{margin-top:16px}.mar-b-16{margin-bottom:16px}.pad-17{padding:17px}.pad-l-17{padding-left:17px}.pad-r-17{padding-right:17px}.pad-t-17{padding-top:17px}.pad-b-17{padding-bottom:17px}.mar-17{margin:17px}.mar-l-17{margin-left:17px}.mar-r-17{margin-right:17px}.mar-t-17{margin-top:17px}.mar-b-17{margin-bottom:17px}.pad-18{padding:18px}.pad-l-18{padding-left:18px}.pad-r-18{padding-right:18px}.pad-t-18{padding-top:18px}.pad-b-18{padding-bottom:18px}.mar-18{margin:18px}.mar-l-18{margin-left:18px}.mar-r-18{margin-right:18px}.mar-t-18{margin-top:18px}.mar-b-18{margin-bottom:18px}.pad-19{padding:19px}.pad-l-19{padding-left:19px}.pad-r-19{padding-right:19px}.pad-t-19{padding-top:19px}.pad-b-19{padding-bottom:19px}.mar-19{margin:19px}.mar-l-19{margin-left:19px}.mar-r-19{margin-right:19px}.mar-t-19{margin-top:19px}.mar-b-19{margin-bottom:19px}.pad-20{padding:20px}.pad-l-20{padding-left:20px}.pad-r-20{padding-right:20px}.pad-t-20{padding-top:20px}.pad-b-20{padding-bottom:20px}.mar-20{margin:20px}.mar-l-20{margin-left:20px}.mar-r-20{margin-right:20px}.mar-t-20{margin-top:20px}.mar-b-20{margin-bottom:20px}.pad-21{padding:21px}.pad-l-21{padding-left:21px}.pad-r-21{padding-right:21px}.pad-t-21{padding-top:21px}.pad-b-21{padding-bottom:21px}.mar-21{margin:21px}.mar-l-21{margin-left:21px}.mar-r-21{margin-right:21px}.mar-t-21{margin-top:21px}.mar-b-21{margin-bottom:21px}.pad-22{padding:22px}.pad-l-22{padding-left:22px}.pad-r-22{padding-right:22px}.pad-t-22{padding-top:22px}.pad-b-22{padding-bottom:22px}.mar-22{margin:22px}.mar-l-22{margin-left:22px}.mar-r-22{margin-right:22px}.mar-t-22{margin-top:22px}.mar-b-22{margin-bottom:22px}.pad-23{padding:23px}.pad-l-23{padding-left:23px}.pad-r-23{padding-right:23px}.pad-t-23{padding-top:23px}.pad-b-23{padding-bottom:23px}.mar-23{margin:23px}.mar-l-23{margin-left:23px}.mar-r-23{margin-right:23px}.mar-t-23{margin-top:23px}.mar-b-23{margin-bottom:23px}.pad-24{padding:24px}.pad-l-24{padding-left:24px}.pad-r-24{padding-right:24px}.pad-t-24{padding-top:24px}.pad-b-24{padding-bottom:24px}.mar-24{margin:24px}.mar-l-24{margin-left:24px}.mar-r-24{margin-right:24px}.mar-t-24{margin-top:24px}.mar-b-24{margin-bottom:24px}.pad-25{padding:25px}.pad-l-25{padding-left:25px}.pad-r-25{padding-right:25px}.pad-t-25{padding-top:25px}.pad-b-25{padding-bottom:25px}.mar-25{margin:25px}.mar-l-25{margin-left:25px}.mar-r-25{margin-right:25px}.mar-t-25{margin-top:25px}.mar-b-25{margin-bottom:25px}.pad-26{padding:26px}.pad-l-26{padding-left:26px}.pad-r-26{padding-right:26px}.pad-t-26{padding-top:26px}.pad-b-26{padding-bottom:26px}.mar-26{margin:26px}.mar-l-26{margin-left:26px}.mar-r-26{margin-right:26px}.mar-t-26{margin-top:26px}.mar-b-26{margin-bottom:26px}.pad-27{padding:27px}.pad-l-27{padding-left:27px}.pad-r-27{padding-right:27px}.pad-t-27{padding-top:27px}.pad-b-27{padding-bottom:27px}.mar-27{margin:27px}.mar-l-27{margin-left:27px}.mar-r-27{margin-right:27px}.mar-t-27{margin-top:27px}.mar-b-27{margin-bottom:27px}.pad-28{padding:28px}.pad-l-28{padding-left:28px}.pad-r-28{padding-right:28px}.pad-t-28{padding-top:28px}.pad-b-28{padding-bottom:28px}.mar-28{margin:28px}.mar-l-28{margin-left:28px}.mar-r-28{margin-right:28px}.mar-t-28{margin-top:28px}.mar-b-28{margin-bottom:28px}.pad-29{padding:29px}.pad-l-29{padding-left:29px}.pad-r-29{padding-right:29px}.pad-t-29{padding-top:29px}.pad-b-29{padding-bottom:29px}.mar-29{margin:29px}.mar-l-29{margin-left:29px}.mar-r-29{margin-right:29px}.mar-t-29{margin-top:29px}.mar-b-29{margin-bottom:29px}.pad-30{padding:30px}.pad-l-30{padding-left:30px}.pad-r-30{padding-right:30px}.pad-t-30{padding-top:30px}.pad-b-30{padding-bottom:30px}.mar-30{margin:30px}.mar-l-30{margin-left:30px}.mar-r-30{margin-right:30px}.mar-t-30{margin-top:30px}.mar-b-30{margin-bottom:30px}.pad-31{padding:31px}.pad-l-31{padding-left:31px}.pad-r-31{padding-right:31px}.pad-t-31{padding-top:31px}.pad-b-31{padding-bottom:31px}.mar-31{margin:31px}.mar-l-31{margin-left:31px}.mar-r-31{margin-right:31px}.mar-t-31{margin-top:31px}.mar-b-31{margin-bottom:31px}.pad-32{padding:32px}.pad-l-32{padding-left:32px}.pad-r-32{padding-right:32px}.pad-t-32{padding-top:32px}.pad-b-32{padding-bottom:32px}.mar-32{margin:32px}.mar-l-32{margin-left:32px}.mar-r-32{margin-right:32px}.mar-t-32{margin-top:32px}.mar-b-32{margin-bottom:32px}.pad-33{padding:33px}.pad-l-33{padding-left:33px}.pad-r-33{padding-right:33px}.pad-t-33{padding-top:33px}.pad-b-33{padding-bottom:33px}.mar-33{margin:33px}.mar-l-33{margin-left:33px}.mar-r-33{margin-right:33px}.mar-t-33{margin-top:33px}.mar-b-33{margin-bottom:33px}.pad-34{padding:34px}.pad-l-34{padding-left:34px}.pad-r-34{padding-right:34px}.pad-t-34{padding-top:34px}.pad-b-34{padding-bottom:34px}.mar-34{margin:34px}.mar-l-34{margin-left:34px}.mar-r-34{margin-right:34px}.mar-t-34{margin-top:34px}.mar-b-34{margin-bottom:34px}.pad-35{padding:35px}.pad-l-35{padding-left:35px}.pad-r-35{padding-right:35px}.pad-t-35{padding-top:35px}.pad-b-35{padding-bottom:35px}.mar-35{margin:35px}.mar-l-35{margin-left:35px}.mar-r-35{margin-right:35px}.mar-t-35{margin-top:35px}.mar-b-35{margin-bottom:35px}.pad-36{padding:36px}.pad-l-36{padding-left:36px}.pad-r-36{padding-right:36px}.pad-t-36{padding-top:36px}.pad-b-36{padding-bottom:36px}.mar-36{margin:36px}.mar-l-36{margin-left:36px}.mar-r-36{margin-right:36px}.mar-t-36{margin-top:36px}.mar-b-36{margin-bottom:36px}.pad-37{padding:37px}.pad-l-37{padding-left:37px}.pad-r-37{padding-right:37px}.pad-t-37{padding-top:37px}.pad-b-37{padding-bottom:37px}.mar-37{margin:37px}.mar-l-37{margin-left:37px}.mar-r-37{margin-right:37px}.mar-t-37{margin-top:37px}.mar-b-37{margin-bottom:37px}.pad-38{padding:38px}.pad-l-38{padding-left:38px}.pad-r-38{padding-right:38px}.pad-t-38{padding-top:38px}.pad-b-38{padding-bottom:38px}.mar-38{margin:38px}.mar-l-38{margin-left:38px}.mar-r-38{margin-right:38px}.mar-t-38{margin-top:38px}.mar-b-38{margin-bottom:38px}.pad-39{padding:39px}.pad-l-39{padding-left:39px}.pad-r-39{padding-right:39px}.pad-t-39{padding-top:39px}.pad-b-39{padding-bottom:39px}.mar-39{margin:39px}.mar-l-39{margin-left:39px}.mar-r-39{margin-right:39px}.mar-t-39{margin-top:39px}.mar-b-39{margin-bottom:39px}.pad-40{padding:40px}.pad-l-40{padding-left:40px}.pad-r-40{padding-right:40px}.pad-t-40{padding-top:40px}.pad-b-40{padding-bottom:40px}.mar-40{margin:40px}.mar-l-40{margin-left:40px}.mar-r-40{margin-right:40px}.mar-t-40{margin-top:40px}.mar-b-40{margin-bottom:40px}.pad-41{padding:41px}.pad-l-41{padding-left:41px}.pad-r-41{padding-right:41px}.pad-t-41{padding-top:41px}.pad-b-41{padding-bottom:41px}.mar-41{margin:41px}.mar-l-41{margin-left:41px}.mar-r-41{margin-right:41px}.mar-t-41{margin-top:41px}.mar-b-41{margin-bottom:41px}.pad-42{padding:42px}.pad-l-42{padding-left:42px}.pad-r-42{padding-right:42px}.pad-t-42{padding-top:42px}.pad-b-42{padding-bottom:42px}.mar-42{margin:42px}.mar-l-42{margin-left:42px}.mar-r-42{margin-right:42px}.mar-t-42{margin-top:42px}.mar-b-42{margin-bottom:42px}.pad-43{padding:43px}.pad-l-43{padding-left:43px}.pad-r-43{padding-right:43px}.pad-t-43{padding-top:43px}.pad-b-43{padding-bottom:43px}.mar-43{margin:43px}.mar-l-43{margin-left:43px}.mar-r-43{margin-right:43px}.mar-t-43{margin-top:43px}.mar-b-43{margin-bottom:43px}.pad-44{padding:44px}.pad-l-44{padding-left:44px}.pad-r-44{padding-right:44px}.pad-t-44{padding-top:44px}.pad-b-44{padding-bottom:44px}.mar-44{margin:44px}.mar-l-44{margin-left:44px}.mar-r-44{margin-right:44px}.mar-t-44{margin-top:44px}.mar-b-44{margin-bottom:44px}.pad-45{padding:45px}.pad-l-45{padding-left:45px}.pad-r-45{padding-right:45px}.pad-t-45{padding-top:45px}.pad-b-45{padding-bottom:45px}.mar-45{margin:45px}.mar-l-45{margin-left:45px}.mar-r-45{margin-right:45px}.mar-t-45{margin-top:45px}.mar-b-45{margin-bottom:45px}.pad-46{padding:46px}.pad-l-46{padding-left:46px}.pad-r-46{padding-right:46px}.pad-t-46{padding-top:46px}.pad-b-46{padding-bottom:46px}.mar-46{margin:46px}.mar-l-46{margin-left:46px}.mar-r-46{margin-right:46px}.mar-t-46{margin-top:46px}.mar-b-46{margin-bottom:46px}.pad-47{padding:47px}.pad-l-47{padding-left:47px}.pad-r-47{padding-right:47px}.pad-t-47{padding-top:47px}.pad-b-47{padding-bottom:47px}.mar-47{margin:47px}.mar-l-47{margin-left:47px}.mar-r-47{margin-right:47px}.mar-t-47{margin-top:47px}.mar-b-47{margin-bottom:47px}.pad-48{padding:48px}.pad-l-48{padding-left:48px}.pad-r-48{padding-right:48px}.pad-t-48{padding-top:48px}.pad-b-48{padding-bottom:48px}.mar-48{margin:48px}.mar-l-48{margin-left:48px}.mar-r-48{margin-right:48px}.mar-t-48{margin-top:48px}.mar-b-48{margin-bottom:48px}.pad-49{padding:49px}.pad-l-49{padding-left:49px}.pad-r-49{padding-right:49px}.pad-t-49{padding-top:49px}.pad-b-49{padding-bottom:49px}.mar-49{margin:49px}.mar-l-49{margin-left:49px}.mar-r-49{margin-right:49px}.mar-t-49{margin-top:49px}.mar-b-49{margin-bottom:49px}.problem-info{float:right;width:300px}.sidebar-problem-list{z-index:50;box-shadow:0 10px 0 0 transparent,0 10px 0 0 transparent,10px 0 0 0 transparent,0 8px 8px 2px rgba(0,0,0,.5);background:#003252;position:relative;min-height:calc(100vh - 47px)}.sidebar-problem-list .sidebar-problem{width:100%;display:grid;grid-template-columns:32px 1fr;border-left-width:24px;border-left-style:solid;border-left-color:#0077c2;transition:background-color 200ms ease-in-out;transition:width 200ms ease-in-out;background-color:inherit;cursor:pointer}.sidebar-problem-list .sidebar-problem[correct]{border-left-color:lime}.sidebar-problem-list .sidebar-problem[wrong]{border-left-color:red}.sidebar-problem-list .sidebar-problem[selected],.sidebar-problem-list .sidebar-problem:hover{width:calc(100% + 24px)}.sidebar-problem-list .sidebar-problem[selected]{background-color:#42a5f5 !important}.sidebar-problem-list .sidebar-problem:hover{background-color:#128ef2}.sidebar-problem-list .sidebar-problem-letter{text-align:center;background-color:#001929;padding-top:20px;padding-bottom:20px;font-size:1.2rem}.sidebar-problem-list .sidebar-problem-name{text-align:left;font-size:1.2rem;padding-left:5px;padding-top:20px;padding-bottom:20px;margin-left:10px;margin-right:10px}.rect-auto,.c100.p100 .slice,.c100.p99 .slice,.c100.p98 .slice,.c100.p97 .slice,.c100.p96 .slice,.c100.p95 .slice,.c100.p94 .slice,.c100.p93 .slice,.c100.p92 .slice,.c100.p91 .slice,.c100.p90 .slice,.c100.p89 .slice,.c100.p88 .slice,.c100.p87 .slice,.c100.p86 .slice,.c100.p85 .slice,.c100.p84 .slice,.c100.p83 .slice,.c100.p82 .slice,.c100.p81 .slice,.c100.p80 .slice,.c100.p79 .slice,.c100.p78 .slice,.c100.p77 .slice,.c100.p76 .slice,.c100.p75 .slice,.c100.p74 .slice,.c100.p73 .slice,.c100.p72 .slice,.c100.p71 .slice,.c100.p70 .slice,.c100.p69 .slice,.c100.p68 .slice,.c100.p67 .slice,.c100.p66 .slice,.c100.p65 .slice,.c100.p64 .slice,.c100.p63 .slice,.c100.p62 .slice,.c100.p61 .slice,.c100.p60 .slice,.c100.p59 .slice,.c100.p58 .slice,.c100.p57 .slice,.c100.p56 .slice,.c100.p55 .slice,.c100.p54 .slice,.c100.p53 .slice,.c100.p52 .slice,.c100.p51 .slice{clip:rect(auto, auto, auto, auto)}.pie,.c100.p100 .fill,.c100.p99 .fill,.c100.p98 .fill,.c100.p97 .fill,.c100.p96 .fill,.c100.p95 .fill,.c100.p94 .fill,.c100.p93 .fill,.c100.p92 .fill,.c100.p91 .fill,.c100.p90 .fill,.c100.p89 .fill,.c100.p88 .fill,.c100.p87 .fill,.c100.p86 .fill,.c100.p85 .fill,.c100.p84 .fill,.c100.p83 .fill,.c100.p82 .fill,.c100.p81 .fill,.c100.p80 .fill,.c100.p79 .fill,.c100.p78 .fill,.c100.p77 .fill,.c100.p76 .fill,.c100.p75 .fill,.c100.p74 .fill,.c100.p73 .fill,.c100.p72 .fill,.c100.p71 .fill,.c100.p70 .fill,.c100.p69 .fill,.c100.p68 .fill,.c100.p67 .fill,.c100.p66 .fill,.c100.p65 .fill,.c100.p64 .fill,.c100.p63 .fill,.c100.p62 .fill,.c100.p61 .fill,.c100.p60 .fill,.c100.p59 .fill,.c100.p58 .fill,.c100.p57 .fill,.c100.p56 .fill,.c100.p55 .fill,.c100.p54 .fill,.c100.p53 .fill,.c100.p52 .fill,.c100.p51 .fill,.c100 .bar{position:absolute;border:.08em solid #307bbb;width:.84em;height:.84em;clip:rect(0em, 0.5em, 1em, 0em);border-radius:50%;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.pie-fill,.c100.p100 .fill,.c100.p100.bar:after,.c100.p99 .fill,.c100.p99.bar:after,.c100.p98 .fill,.c100.p98.bar:after,.c100.p97 .fill,.c100.p97.bar:after,.c100.p96 .fill,.c100.p96.bar:after,.c100.p95 .fill,.c100.p95.bar:after,.c100.p94 .fill,.c100.p94.bar:after,.c100.p93 .fill,.c100.p93.bar:after,.c100.p92 .fill,.c100.p92.bar:after,.c100.p91 .fill,.c100.p91.bar:after,.c100.p90 .fill,.c100.p90.bar:after,.c100.p89 .fill,.c100.p89.bar:after,.c100.p88 .fill,.c100.p88.bar:after,.c100.p87 .fill,.c100.p87.bar:after,.c100.p86 .fill,.c100.p86.bar:after,.c100.p85 .fill,.c100.p85.bar:after,.c100.p84 .fill,.c100.p84.bar:after,.c100.p83 .fill,.c100.p83.bar:after,.c100.p82 .fill,.c100.p82.bar:after,.c100.p81 .fill,.c100.p81.bar:after,.c100.p80 .fill,.c100.p80.bar:after,.c100.p79 .fill,.c100.p79.bar:after,.c100.p78 .fill,.c100.p78.bar:after,.c100.p77 .fill,.c100.p77.bar:after,.c100.p76 .fill,.c100.p76.bar:after,.c100.p75 .fill,.c100.p75.bar:after,.c100.p74 .fill,.c100.p74.bar:after,.c100.p73 .fill,.c100.p73.bar:after,.c100.p72 .fill,.c100.p72.bar:after,.c100.p71 .fill,.c100.p71.bar:after,.c100.p70 .fill,.c100.p70.bar:after,.c100.p69 .fill,.c100.p69.bar:after,.c100.p68 .fill,.c100.p68.bar:after,.c100.p67 .fill,.c100.p67.bar:after,.c100.p66 .fill,.c100.p66.bar:after,.c100.p65 .fill,.c100.p65.bar:after,.c100.p64 .fill,.c100.p64.bar:after,.c100.p63 .fill,.c100.p63.bar:after,.c100.p62 .fill,.c100.p62.bar:after,.c100.p61 .fill,.c100.p61.bar:after,.c100.p60 .fill,.c100.p60.bar:after,.c100.p59 .fill,.c100.p59.bar:after,.c100.p58 .fill,.c100.p58.bar:after,.c100.p57 .fill,.c100.p57.bar:after,.c100.p56 .fill,.c100.p56.bar:after,.c100.p55 .fill,.c100.p55.bar:after,.c100.p54 .fill,.c100.p54.bar:after,.c100.p53 .fill,.c100.p53.bar:after,.c100.p52 .fill,.c100.p52.bar:after,.c100.p51 .fill,.c100.p51.bar:after{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100{position:relative;font-size:120px;width:1em;height:1em;border-radius:50%;float:left;background-color:#ccc}.c100 *,.c100 *:before,.c100 *:after{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.c100.center{float:none;margin:0 auto}.c100.big{font-size:240px}.c100.small{font-size:80px}.c100>span{position:absolute;width:100%;z-index:1;left:0;top:0;width:5em;line-height:5em;font-size:.2em;color:#ccc;display:block;text-align:center;white-space:nowrap;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.c100:after{position:absolute;top:.08em;left:.08em;display:block;content:" ";border-radius:50%;background-color:#f5f5f5;width:.84em;height:.84em;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-in;-moz-transition-timing-function:ease-in;-o-transition-timing-function:ease-in;transition-timing-function:ease-in}.c100 .slice{position:absolute;width:1em;height:1em;clip:rect(0em, 1em, 1em, 0.5em)}.c100.p1 .bar{-webkit-transform:rotate(3.6deg);-moz-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);-o-transform:rotate(3.6deg);transform:rotate(3.6deg)}.c100.p2 .bar{-webkit-transform:rotate(7.2deg);-moz-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);-o-transform:rotate(7.2deg);transform:rotate(7.2deg)}.c100.p3 .bar{-webkit-transform:rotate(10.8deg);-moz-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);-o-transform:rotate(10.8deg);transform:rotate(10.8deg)}.c100.p4 .bar{-webkit-transform:rotate(14.4deg);-moz-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);-o-transform:rotate(14.4deg);transform:rotate(14.4deg)}.c100.p5 .bar{-webkit-transform:rotate(18deg);-moz-transform:rotate(18deg);-ms-transform:rotate(18deg);-o-transform:rotate(18deg);transform:rotate(18deg)}.c100.p6 .bar{-webkit-transform:rotate(21.6deg);-moz-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);-o-transform:rotate(21.6deg);transform:rotate(21.6deg)}.c100.p7 .bar{-webkit-transform:rotate(25.2deg);-moz-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);-o-transform:rotate(25.2deg);transform:rotate(25.2deg)}.c100.p8 .bar{-webkit-transform:rotate(28.8deg);-moz-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);-o-transform:rotate(28.8deg);transform:rotate(28.8deg)}.c100.p9 .bar{-webkit-transform:rotate(32.4deg);-moz-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);-o-transform:rotate(32.4deg);transform:rotate(32.4deg)}.c100.p10 .bar{-webkit-transform:rotate(36deg);-moz-transform:rotate(36deg);-ms-transform:rotate(36deg);-o-transform:rotate(36deg);transform:rotate(36deg)}.c100.p11 .bar{-webkit-transform:rotate(39.6deg);-moz-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);-o-transform:rotate(39.6deg);transform:rotate(39.6deg)}.c100.p12 .bar{-webkit-transform:rotate(43.2deg);-moz-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);-o-transform:rotate(43.2deg);transform:rotate(43.2deg)}.c100.p13 .bar{-webkit-transform:rotate(46.8deg);-moz-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);-o-transform:rotate(46.8deg);transform:rotate(46.8deg)}.c100.p14 .bar{-webkit-transform:rotate(50.4deg);-moz-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);-o-transform:rotate(50.4deg);transform:rotate(50.4deg)}.c100.p15 .bar{-webkit-transform:rotate(54deg);-moz-transform:rotate(54deg);-ms-transform:rotate(54deg);-o-transform:rotate(54deg);transform:rotate(54deg)}.c100.p16 .bar{-webkit-transform:rotate(57.6deg);-moz-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);-o-transform:rotate(57.6deg);transform:rotate(57.6deg)}.c100.p17 .bar{-webkit-transform:rotate(61.2deg);-moz-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);-o-transform:rotate(61.2deg);transform:rotate(61.2deg)}.c100.p18 .bar{-webkit-transform:rotate(64.8deg);-moz-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);-o-transform:rotate(64.8deg);transform:rotate(64.8deg)}.c100.p19 .bar{-webkit-transform:rotate(68.4deg);-moz-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);-o-transform:rotate(68.4deg);transform:rotate(68.4deg)}.c100.p20 .bar{-webkit-transform:rotate(72deg);-moz-transform:rotate(72deg);-ms-transform:rotate(72deg);-o-transform:rotate(72deg);transform:rotate(72deg)}.c100.p21 .bar{-webkit-transform:rotate(75.6deg);-moz-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);-o-transform:rotate(75.6deg);transform:rotate(75.6deg)}.c100.p22 .bar{-webkit-transform:rotate(79.2deg);-moz-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);-o-transform:rotate(79.2deg);transform:rotate(79.2deg)}.c100.p23 .bar{-webkit-transform:rotate(82.8deg);-moz-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);-o-transform:rotate(82.8deg);transform:rotate(82.8deg)}.c100.p24 .bar{-webkit-transform:rotate(86.4deg);-moz-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);-o-transform:rotate(86.4deg);transform:rotate(86.4deg)}.c100.p25 .bar{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.c100.p26 .bar{-webkit-transform:rotate(93.6deg);-moz-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);-o-transform:rotate(93.6deg);transform:rotate(93.6deg)}.c100.p27 .bar{-webkit-transform:rotate(97.2deg);-moz-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);-o-transform:rotate(97.2deg);transform:rotate(97.2deg)}.c100.p28 .bar{-webkit-transform:rotate(100.8deg);-moz-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);-o-transform:rotate(100.8deg);transform:rotate(100.8deg)}.c100.p29 .bar{-webkit-transform:rotate(104.4deg);-moz-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);-o-transform:rotate(104.4deg);transform:rotate(104.4deg)}.c100.p30 .bar{-webkit-transform:rotate(108deg);-moz-transform:rotate(108deg);-ms-transform:rotate(108deg);-o-transform:rotate(108deg);transform:rotate(108deg)}.c100.p31 .bar{-webkit-transform:rotate(111.6deg);-moz-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);-o-transform:rotate(111.6deg);transform:rotate(111.6deg)}.c100.p32 .bar{-webkit-transform:rotate(115.2deg);-moz-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);-o-transform:rotate(115.2deg);transform:rotate(115.2deg)}.c100.p33 .bar{-webkit-transform:rotate(118.8deg);-moz-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);-o-transform:rotate(118.8deg);transform:rotate(118.8deg)}.c100.p34 .bar{-webkit-transform:rotate(122.4deg);-moz-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);-o-transform:rotate(122.4deg);transform:rotate(122.4deg)}.c100.p35 .bar{-webkit-transform:rotate(126deg);-moz-transform:rotate(126deg);-ms-transform:rotate(126deg);-o-transform:rotate(126deg);transform:rotate(126deg)}.c100.p36 .bar{-webkit-transform:rotate(129.6deg);-moz-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);-o-transform:rotate(129.6deg);transform:rotate(129.6deg)}.c100.p37 .bar{-webkit-transform:rotate(133.2deg);-moz-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);-o-transform:rotate(133.2deg);transform:rotate(133.2deg)}.c100.p38 .bar{-webkit-transform:rotate(136.8deg);-moz-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);-o-transform:rotate(136.8deg);transform:rotate(136.8deg)}.c100.p39 .bar{-webkit-transform:rotate(140.4deg);-moz-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);-o-transform:rotate(140.4deg);transform:rotate(140.4deg)}.c100.p40 .bar{-webkit-transform:rotate(144deg);-moz-transform:rotate(144deg);-ms-transform:rotate(144deg);-o-transform:rotate(144deg);transform:rotate(144deg)}.c100.p41 .bar{-webkit-transform:rotate(147.6deg);-moz-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);-o-transform:rotate(147.6deg);transform:rotate(147.6deg)}.c100.p42 .bar{-webkit-transform:rotate(151.2deg);-moz-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);-o-transform:rotate(151.2deg);transform:rotate(151.2deg)}.c100.p43 .bar{-webkit-transform:rotate(154.8deg);-moz-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);-o-transform:rotate(154.8deg);transform:rotate(154.8deg)}.c100.p44 .bar{-webkit-transform:rotate(158.4deg);-moz-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);-o-transform:rotate(158.4deg);transform:rotate(158.4deg)}.c100.p45 .bar{-webkit-transform:rotate(162deg);-moz-transform:rotate(162deg);-ms-transform:rotate(162deg);-o-transform:rotate(162deg);transform:rotate(162deg)}.c100.p46 .bar{-webkit-transform:rotate(165.6deg);-moz-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);-o-transform:rotate(165.6deg);transform:rotate(165.6deg)}.c100.p47 .bar{-webkit-transform:rotate(169.2deg);-moz-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);-o-transform:rotate(169.2deg);transform:rotate(169.2deg)}.c100.p48 .bar{-webkit-transform:rotate(172.8deg);-moz-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);-o-transform:rotate(172.8deg);transform:rotate(172.8deg)}.c100.p49 .bar{-webkit-transform:rotate(176.4deg);-moz-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);-o-transform:rotate(176.4deg);transform:rotate(176.4deg)}.c100.p50 .bar{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100.p51 .bar{-webkit-transform:rotate(183.6deg);-moz-transform:rotate(183.6deg);-ms-transform:rotate(183.6deg);-o-transform:rotate(183.6deg);transform:rotate(183.6deg)}.c100.p52 .bar{-webkit-transform:rotate(187.2deg);-moz-transform:rotate(187.2deg);-ms-transform:rotate(187.2deg);-o-transform:rotate(187.2deg);transform:rotate(187.2deg)}.c100.p53 .bar{-webkit-transform:rotate(190.8deg);-moz-transform:rotate(190.8deg);-ms-transform:rotate(190.8deg);-o-transform:rotate(190.8deg);transform:rotate(190.8deg)}.c100.p54 .bar{-webkit-transform:rotate(194.4deg);-moz-transform:rotate(194.4deg);-ms-transform:rotate(194.4deg);-o-transform:rotate(194.4deg);transform:rotate(194.4deg)}.c100.p55 .bar{-webkit-transform:rotate(198deg);-moz-transform:rotate(198deg);-ms-transform:rotate(198deg);-o-transform:rotate(198deg);transform:rotate(198deg)}.c100.p56 .bar{-webkit-transform:rotate(201.6deg);-moz-transform:rotate(201.6deg);-ms-transform:rotate(201.6deg);-o-transform:rotate(201.6deg);transform:rotate(201.6deg)}.c100.p57 .bar{-webkit-transform:rotate(205.2deg);-moz-transform:rotate(205.2deg);-ms-transform:rotate(205.2deg);-o-transform:rotate(205.2deg);transform:rotate(205.2deg)}.c100.p58 .bar{-webkit-transform:rotate(208.8deg);-moz-transform:rotate(208.8deg);-ms-transform:rotate(208.8deg);-o-transform:rotate(208.8deg);transform:rotate(208.8deg)}.c100.p59 .bar{-webkit-transform:rotate(212.4deg);-moz-transform:rotate(212.4deg);-ms-transform:rotate(212.4deg);-o-transform:rotate(212.4deg);transform:rotate(212.4deg)}.c100.p60 .bar{-webkit-transform:rotate(216deg);-moz-transform:rotate(216deg);-ms-transform:rotate(216deg);-o-transform:rotate(216deg);transform:rotate(216deg)}.c100.p61 .bar{-webkit-transform:rotate(219.6deg);-moz-transform:rotate(219.6deg);-ms-transform:rotate(219.6deg);-o-transform:rotate(219.6deg);transform:rotate(219.6deg)}.c100.p62 .bar{-webkit-transform:rotate(223.2deg);-moz-transform:rotate(223.2deg);-ms-transform:rotate(223.2deg);-o-transform:rotate(223.2deg);transform:rotate(223.2deg)}.c100.p63 .bar{-webkit-transform:rotate(226.8deg);-moz-transform:rotate(226.8deg);-ms-transform:rotate(226.8deg);-o-transform:rotate(226.8deg);transform:rotate(226.8deg)}.c100.p64 .bar{-webkit-transform:rotate(230.4deg);-moz-transform:rotate(230.4deg);-ms-transform:rotate(230.4deg);-o-transform:rotate(230.4deg);transform:rotate(230.4deg)}.c100.p65 .bar{-webkit-transform:rotate(234deg);-moz-transform:rotate(234deg);-ms-transform:rotate(234deg);-o-transform:rotate(234deg);transform:rotate(234deg)}.c100.p66 .bar{-webkit-transform:rotate(237.6deg);-moz-transform:rotate(237.6deg);-ms-transform:rotate(237.6deg);-o-transform:rotate(237.6deg);transform:rotate(237.6deg)}.c100.p67 .bar{-webkit-transform:rotate(241.2deg);-moz-transform:rotate(241.2deg);-ms-transform:rotate(241.2deg);-o-transform:rotate(241.2deg);transform:rotate(241.2deg)}.c100.p68 .bar{-webkit-transform:rotate(244.8deg);-moz-transform:rotate(244.8deg);-ms-transform:rotate(244.8deg);-o-transform:rotate(244.8deg);transform:rotate(244.8deg)}.c100.p69 .bar{-webkit-transform:rotate(248.4deg);-moz-transform:rotate(248.4deg);-ms-transform:rotate(248.4deg);-o-transform:rotate(248.4deg);transform:rotate(248.4deg)}.c100.p70 .bar{-webkit-transform:rotate(252deg);-moz-transform:rotate(252deg);-ms-transform:rotate(252deg);-o-transform:rotate(252deg);transform:rotate(252deg)}.c100.p71 .bar{-webkit-transform:rotate(255.6deg);-moz-transform:rotate(255.6deg);-ms-transform:rotate(255.6deg);-o-transform:rotate(255.6deg);transform:rotate(255.6deg)}.c100.p72 .bar{-webkit-transform:rotate(259.2deg);-moz-transform:rotate(259.2deg);-ms-transform:rotate(259.2deg);-o-transform:rotate(259.2deg);transform:rotate(259.2deg)}.c100.p73 .bar{-webkit-transform:rotate(262.8deg);-moz-transform:rotate(262.8deg);-ms-transform:rotate(262.8deg);-o-transform:rotate(262.8deg);transform:rotate(262.8deg)}.c100.p74 .bar{-webkit-transform:rotate(266.4deg);-moz-transform:rotate(266.4deg);-ms-transform:rotate(266.4deg);-o-transform:rotate(266.4deg);transform:rotate(266.4deg)}.c100.p75 .bar{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.c100.p76 .bar{-webkit-transform:rotate(273.6deg);-moz-transform:rotate(273.6deg);-ms-transform:rotate(273.6deg);-o-transform:rotate(273.6deg);transform:rotate(273.6deg)}.c100.p77 .bar{-webkit-transform:rotate(277.2deg);-moz-transform:rotate(277.2deg);-ms-transform:rotate(277.2deg);-o-transform:rotate(277.2deg);transform:rotate(277.2deg)}.c100.p78 .bar{-webkit-transform:rotate(280.8deg);-moz-transform:rotate(280.8deg);-ms-transform:rotate(280.8deg);-o-transform:rotate(280.8deg);transform:rotate(280.8deg)}.c100.p79 .bar{-webkit-transform:rotate(284.4deg);-moz-transform:rotate(284.4deg);-ms-transform:rotate(284.4deg);-o-transform:rotate(284.4deg);transform:rotate(284.4deg)}.c100.p80 .bar{-webkit-transform:rotate(288deg);-moz-transform:rotate(288deg);-ms-transform:rotate(288deg);-o-transform:rotate(288deg);transform:rotate(288deg)}.c100.p81 .bar{-webkit-transform:rotate(291.6deg);-moz-transform:rotate(291.6deg);-ms-transform:rotate(291.6deg);-o-transform:rotate(291.6deg);transform:rotate(291.6deg)}.c100.p82 .bar{-webkit-transform:rotate(295.2deg);-moz-transform:rotate(295.2deg);-ms-transform:rotate(295.2deg);-o-transform:rotate(295.2deg);transform:rotate(295.2deg)}.c100.p83 .bar{-webkit-transform:rotate(298.8deg);-moz-transform:rotate(298.8deg);-ms-transform:rotate(298.8deg);-o-transform:rotate(298.8deg);transform:rotate(298.8deg)}.c100.p84 .bar{-webkit-transform:rotate(302.4deg);-moz-transform:rotate(302.4deg);-ms-transform:rotate(302.4deg);-o-transform:rotate(302.4deg);transform:rotate(302.4deg)}.c100.p85 .bar{-webkit-transform:rotate(306deg);-moz-transform:rotate(306deg);-ms-transform:rotate(306deg);-o-transform:rotate(306deg);transform:rotate(306deg)}.c100.p86 .bar{-webkit-transform:rotate(309.6deg);-moz-transform:rotate(309.6deg);-ms-transform:rotate(309.6deg);-o-transform:rotate(309.6deg);transform:rotate(309.6deg)}.c100.p87 .bar{-webkit-transform:rotate(313.2deg);-moz-transform:rotate(313.2deg);-ms-transform:rotate(313.2deg);-o-transform:rotate(313.2deg);transform:rotate(313.2deg)}.c100.p88 .bar{-webkit-transform:rotate(316.8deg);-moz-transform:rotate(316.8deg);-ms-transform:rotate(316.8deg);-o-transform:rotate(316.8deg);transform:rotate(316.8deg)}.c100.p89 .bar{-webkit-transform:rotate(320.4deg);-moz-transform:rotate(320.4deg);-ms-transform:rotate(320.4deg);-o-transform:rotate(320.4deg);transform:rotate(320.4deg)}.c100.p90 .bar{-webkit-transform:rotate(324deg);-moz-transform:rotate(324deg);-ms-transform:rotate(324deg);-o-transform:rotate(324deg);transform:rotate(324deg)}.c100.p91 .bar{-webkit-transform:rotate(327.6deg);-moz-transform:rotate(327.6deg);-ms-transform:rotate(327.6deg);-o-transform:rotate(327.6deg);transform:rotate(327.6deg)}.c100.p92 .bar{-webkit-transform:rotate(331.2deg);-moz-transform:rotate(331.2deg);-ms-transform:rotate(331.2deg);-o-transform:rotate(331.2deg);transform:rotate(331.2deg)}.c100.p93 .bar{-webkit-transform:rotate(334.8deg);-moz-transform:rotate(334.8deg);-ms-transform:rotate(334.8deg);-o-transform:rotate(334.8deg);transform:rotate(334.8deg)}.c100.p94 .bar{-webkit-transform:rotate(338.4deg);-moz-transform:rotate(338.4deg);-ms-transform:rotate(338.4deg);-o-transform:rotate(338.4deg);transform:rotate(338.4deg)}.c100.p95 .bar{-webkit-transform:rotate(342deg);-moz-transform:rotate(342deg);-ms-transform:rotate(342deg);-o-transform:rotate(342deg);transform:rotate(342deg)}.c100.p96 .bar{-webkit-transform:rotate(345.6deg);-moz-transform:rotate(345.6deg);-ms-transform:rotate(345.6deg);-o-transform:rotate(345.6deg);transform:rotate(345.6deg)}.c100.p97 .bar{-webkit-transform:rotate(349.2deg);-moz-transform:rotate(349.2deg);-ms-transform:rotate(349.2deg);-o-transform:rotate(349.2deg);transform:rotate(349.2deg)}.c100.p98 .bar{-webkit-transform:rotate(352.8deg);-moz-transform:rotate(352.8deg);-ms-transform:rotate(352.8deg);-o-transform:rotate(352.8deg);transform:rotate(352.8deg)}.c100.p99 .bar{-webkit-transform:rotate(356.4deg);-moz-transform:rotate(356.4deg);-ms-transform:rotate(356.4deg);-o-transform:rotate(356.4deg);transform:rotate(356.4deg)}.c100.p100 .bar{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}.c100:hover{cursor:default}.c100:hover>span{width:3.33em;line-height:3.33em;font-size:.3em;color:#307bbb}.c100:hover:after{top:.04em;left:.04em;width:.92em;height:.92em}.c100.dark{background-color:#0077c2}.c100.dark .bar,.c100.dark .fill{border-color:#80d6ff !important}.c100.dark>span{color:#0077c2}.c100.dark:after{background-color:#111}.c100.dark:hover>span{color:#80d6ff}.c100.error{background-color:#700}.c100.error .bar,.c100.error .fill{border-color:#d00 !important}.c100.error:hover>span{color:#d00}.c100.error>span{color:#700}*{margin:0;padding:0;box-sizing:border-box}:root{font-size:16px}h1{width:100%;margin-top:12px;text-align:center}body{font-family:sans-serif;background:url(/static/imgs/grain_background.png);background-color:#111;background-repeat:repeat;color:#fff}button,a.button{box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);border:1px solid #0077c2;background-color:#0077c2;color:#fff;font-size:1rem;padding:.75rem;margin-bottom:12px;display:inline-block;cursor:pointer}button+button,button+a.button,a.button+button,a.button+a.button{margin-left:12px}input,textarea,select{border:none;background-color:#111;color:#fff;font-size:1rem;display:inline-block;padding:.25rem}input::placeholder,textarea::placeholder,select::placeholder{color:#999}input[type=submit]{cursor:pointer;background-color:#0077c2}form input,form textarea,form select{z-index:20;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);padding:.75rem;margin-bottom:12px;width:100%}form textarea{background-color:#111;height:50vh}form label{z-index:30;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);background-color:#0077c2;width:100%;line-height:44px;display:inline-block;padding:4px 12px 4px;margin-top:12px}.error-list ul li{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);list-style:none;background-color:#998100;padding:.5rem;margin-bottom:.5rem}.error-list ul li.success{background-color:#0077c2}.split{display:grid;grid-template-columns:1fr 1fr}.test-case{outline:none;box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);resize:none;border:none;height:200px;padding:8px;background-color:#111;color:#fff}.test-case:first-child{border-right:2px solid #0077c2}.header-line,.option-line{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#0077c2;padding:4px 12px 4px;margin-top:12px;display:inline-block;width:100%}.header-line>*,.option-line>*{line-height:44px;display:inline-block}.option-line{display:grid;grid-template-columns:1fr 1fr}.option-line>*:last-child{text-align:right}.button-list>*{margin:0px 8px 0px;background-color:#42a5f5;box-shadow:none;border:none;color:#fff;font-size:1rem;line-height:1.2rem;padding:4px 12px 4px;display:inline-block;cursor:pointer}.sidebar-page-container{display:grid;grid-template-columns:minmax(250px, 1fr) 5fr}#code-editor{position:relative;width:100%;min-height:16rem}/*# sourceMappingURL=core.css.map */ +.navbar{z-index:10000;width:100%;background:#0077c2;height:47px;position:relative;box-shadow:0px 0px 10px 0px rgba(0,0,0,.7);display:grid;grid-template-columns:1fr 6fr 1fr}.navbar .navbar-logo{padding-left:8px;text-align:center}.navbar .navbar-logo img{max-height:calc(47px - 2px);display:inline}.navbar ul{display:block;text-align:center;font-size:0}.navbar ul a li{margin:0;display:inline-block;cursor:pointer;font-size:24px;list-style:none;line-height:40px;padding-left:30px;padding-right:30px;padding-top:4px;color:#f2f2f2;border-top-color:#0077c2;transition:200ms all}.navbar ul a li.selected,.navbar ul a li:hover{border-bottom:2px solid #ffe766;color:#fff}.content,.error-list{width:100%;padding:10px 10%}.right{float:right}.left{float:left}.hidden{visibility:hidden}a{text-decoration:none;color:inherit}.split-2{display:grid;grid-template-columns:repeat(2, 1fr)}.split-2>*:first-child{margin-right:12px}.split-2>*:last-child{margin-left:12px}.split-3{display:grid;grid-template-columns:repeat(3, 1fr)}.split-4{display:grid;grid-template-columns:repeat(4, 1fr)}.split-lr{display:grid;grid-template-columns:1fr 1fr}.split-lr>*:first-child{text-align:left}.split-lr>*:last-child{text-align:right}.split-1-1{display:grid;grid-template-columns:1fr 1fr}.split-1-2{display:grid;grid-template-columns:1fr 2fr}.split-1-3{display:grid;grid-template-columns:1fr 3fr}.split-1-4{display:grid;grid-template-columns:1fr 4fr}.split-2-1{display:grid;grid-template-columns:2fr 1fr}.split-2-2{display:grid;grid-template-columns:2fr 2fr}.split-2-3{display:grid;grid-template-columns:2fr 3fr}.split-2-4{display:grid;grid-template-columns:2fr 4fr}.split-3-1{display:grid;grid-template-columns:3fr 1fr}.split-3-2{display:grid;grid-template-columns:3fr 2fr}.split-3-3{display:grid;grid-template-columns:3fr 3fr}.split-3-4{display:grid;grid-template-columns:3fr 4fr}.split-4-1{display:grid;grid-template-columns:4fr 1fr}.split-4-2{display:grid;grid-template-columns:4fr 2fr}.split-4-3{display:grid;grid-template-columns:4fr 3fr}.split-4-4{display:grid;grid-template-columns:4fr 4fr}pre{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);font-size:1rem}pre .hljs-ln td{padding-right:8px}pre .hljs-ln-line{max-width:200px !important}.fixed-half-split{display:grid;grid-template-columns:275px 1fr}.tabbed-split{display:grid !important}.tabbed-split.tab-12{grid-template-columns:12px 1fr}.tabbed-split.tab-16{grid-template-columns:16px 1fr}.tabbed-split.tab-24{grid-template-columns:24px 1fr}.tabbed-split.tab-32{grid-template-columns:32px 1fr}.tabbed-split.tab-48{grid-template-columns:48px 1fr}.tabbed-split.tab-64{grid-template-columns:64px 1fr}.tabbed-split.primary>span{background-color:#42a5f5}.tabbed-split.primary-light>span{background-color:#80d6ff}.tabbed-split.primary-dark>span{background-color:#0077c2}.tabbed-split.secondary>span{background-color:gold}.tabbed-split.secondary-light>span{background-color:#ffe766}.tabbed-split.secondary-dark>span{background-color:#998100}.tabbed-split.success>span{background-color:lime}.tabbed-split.error>span{background-color:#d00}.tabbed-split.error-light>span{background-color:#f44}.tabbed-split.error-dark>span{background-color:#700}.box{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#111}.box .highlight:hover{background-color:#333}.w50{width:50%}.w100{width:100%}.pad-1{padding:1px}.pad-l-1{padding-left:1px}.pad-r-1{padding-right:1px}.pad-t-1{padding-top:1px}.pad-b-1{padding-bottom:1px}.mar-1{margin:1px}.mar-l-1{margin-left:1px}.mar-r-1{margin-right:1px}.mar-t-1{margin-top:1px}.mar-b-1{margin-bottom:1px}.pad-2{padding:2px}.pad-l-2{padding-left:2px}.pad-r-2{padding-right:2px}.pad-t-2{padding-top:2px}.pad-b-2{padding-bottom:2px}.mar-2{margin:2px}.mar-l-2{margin-left:2px}.mar-r-2{margin-right:2px}.mar-t-2{margin-top:2px}.mar-b-2{margin-bottom:2px}.pad-3{padding:3px}.pad-l-3{padding-left:3px}.pad-r-3{padding-right:3px}.pad-t-3{padding-top:3px}.pad-b-3{padding-bottom:3px}.mar-3{margin:3px}.mar-l-3{margin-left:3px}.mar-r-3{margin-right:3px}.mar-t-3{margin-top:3px}.mar-b-3{margin-bottom:3px}.pad-4{padding:4px}.pad-l-4{padding-left:4px}.pad-r-4{padding-right:4px}.pad-t-4{padding-top:4px}.pad-b-4{padding-bottom:4px}.mar-4{margin:4px}.mar-l-4{margin-left:4px}.mar-r-4{margin-right:4px}.mar-t-4{margin-top:4px}.mar-b-4{margin-bottom:4px}.pad-5{padding:5px}.pad-l-5{padding-left:5px}.pad-r-5{padding-right:5px}.pad-t-5{padding-top:5px}.pad-b-5{padding-bottom:5px}.mar-5{margin:5px}.mar-l-5{margin-left:5px}.mar-r-5{margin-right:5px}.mar-t-5{margin-top:5px}.mar-b-5{margin-bottom:5px}.pad-6{padding:6px}.pad-l-6{padding-left:6px}.pad-r-6{padding-right:6px}.pad-t-6{padding-top:6px}.pad-b-6{padding-bottom:6px}.mar-6{margin:6px}.mar-l-6{margin-left:6px}.mar-r-6{margin-right:6px}.mar-t-6{margin-top:6px}.mar-b-6{margin-bottom:6px}.pad-7{padding:7px}.pad-l-7{padding-left:7px}.pad-r-7{padding-right:7px}.pad-t-7{padding-top:7px}.pad-b-7{padding-bottom:7px}.mar-7{margin:7px}.mar-l-7{margin-left:7px}.mar-r-7{margin-right:7px}.mar-t-7{margin-top:7px}.mar-b-7{margin-bottom:7px}.pad-8{padding:8px}.pad-l-8{padding-left:8px}.pad-r-8{padding-right:8px}.pad-t-8{padding-top:8px}.pad-b-8{padding-bottom:8px}.mar-8{margin:8px}.mar-l-8{margin-left:8px}.mar-r-8{margin-right:8px}.mar-t-8{margin-top:8px}.mar-b-8{margin-bottom:8px}.pad-9{padding:9px}.pad-l-9{padding-left:9px}.pad-r-9{padding-right:9px}.pad-t-9{padding-top:9px}.pad-b-9{padding-bottom:9px}.mar-9{margin:9px}.mar-l-9{margin-left:9px}.mar-r-9{margin-right:9px}.mar-t-9{margin-top:9px}.mar-b-9{margin-bottom:9px}.pad-10{padding:10px}.pad-l-10{padding-left:10px}.pad-r-10{padding-right:10px}.pad-t-10{padding-top:10px}.pad-b-10{padding-bottom:10px}.mar-10{margin:10px}.mar-l-10{margin-left:10px}.mar-r-10{margin-right:10px}.mar-t-10{margin-top:10px}.mar-b-10{margin-bottom:10px}.pad-11{padding:11px}.pad-l-11{padding-left:11px}.pad-r-11{padding-right:11px}.pad-t-11{padding-top:11px}.pad-b-11{padding-bottom:11px}.mar-11{margin:11px}.mar-l-11{margin-left:11px}.mar-r-11{margin-right:11px}.mar-t-11{margin-top:11px}.mar-b-11{margin-bottom:11px}.pad-12{padding:12px}.pad-l-12{padding-left:12px}.pad-r-12{padding-right:12px}.pad-t-12{padding-top:12px}.pad-b-12{padding-bottom:12px}.mar-12{margin:12px}.mar-l-12{margin-left:12px}.mar-r-12{margin-right:12px}.mar-t-12{margin-top:12px}.mar-b-12{margin-bottom:12px}.pad-13{padding:13px}.pad-l-13{padding-left:13px}.pad-r-13{padding-right:13px}.pad-t-13{padding-top:13px}.pad-b-13{padding-bottom:13px}.mar-13{margin:13px}.mar-l-13{margin-left:13px}.mar-r-13{margin-right:13px}.mar-t-13{margin-top:13px}.mar-b-13{margin-bottom:13px}.pad-14{padding:14px}.pad-l-14{padding-left:14px}.pad-r-14{padding-right:14px}.pad-t-14{padding-top:14px}.pad-b-14{padding-bottom:14px}.mar-14{margin:14px}.mar-l-14{margin-left:14px}.mar-r-14{margin-right:14px}.mar-t-14{margin-top:14px}.mar-b-14{margin-bottom:14px}.pad-15{padding:15px}.pad-l-15{padding-left:15px}.pad-r-15{padding-right:15px}.pad-t-15{padding-top:15px}.pad-b-15{padding-bottom:15px}.mar-15{margin:15px}.mar-l-15{margin-left:15px}.mar-r-15{margin-right:15px}.mar-t-15{margin-top:15px}.mar-b-15{margin-bottom:15px}.pad-16{padding:16px}.pad-l-16{padding-left:16px}.pad-r-16{padding-right:16px}.pad-t-16{padding-top:16px}.pad-b-16{padding-bottom:16px}.mar-16{margin:16px}.mar-l-16{margin-left:16px}.mar-r-16{margin-right:16px}.mar-t-16{margin-top:16px}.mar-b-16{margin-bottom:16px}.pad-17{padding:17px}.pad-l-17{padding-left:17px}.pad-r-17{padding-right:17px}.pad-t-17{padding-top:17px}.pad-b-17{padding-bottom:17px}.mar-17{margin:17px}.mar-l-17{margin-left:17px}.mar-r-17{margin-right:17px}.mar-t-17{margin-top:17px}.mar-b-17{margin-bottom:17px}.pad-18{padding:18px}.pad-l-18{padding-left:18px}.pad-r-18{padding-right:18px}.pad-t-18{padding-top:18px}.pad-b-18{padding-bottom:18px}.mar-18{margin:18px}.mar-l-18{margin-left:18px}.mar-r-18{margin-right:18px}.mar-t-18{margin-top:18px}.mar-b-18{margin-bottom:18px}.pad-19{padding:19px}.pad-l-19{padding-left:19px}.pad-r-19{padding-right:19px}.pad-t-19{padding-top:19px}.pad-b-19{padding-bottom:19px}.mar-19{margin:19px}.mar-l-19{margin-left:19px}.mar-r-19{margin-right:19px}.mar-t-19{margin-top:19px}.mar-b-19{margin-bottom:19px}.pad-20{padding:20px}.pad-l-20{padding-left:20px}.pad-r-20{padding-right:20px}.pad-t-20{padding-top:20px}.pad-b-20{padding-bottom:20px}.mar-20{margin:20px}.mar-l-20{margin-left:20px}.mar-r-20{margin-right:20px}.mar-t-20{margin-top:20px}.mar-b-20{margin-bottom:20px}.pad-21{padding:21px}.pad-l-21{padding-left:21px}.pad-r-21{padding-right:21px}.pad-t-21{padding-top:21px}.pad-b-21{padding-bottom:21px}.mar-21{margin:21px}.mar-l-21{margin-left:21px}.mar-r-21{margin-right:21px}.mar-t-21{margin-top:21px}.mar-b-21{margin-bottom:21px}.pad-22{padding:22px}.pad-l-22{padding-left:22px}.pad-r-22{padding-right:22px}.pad-t-22{padding-top:22px}.pad-b-22{padding-bottom:22px}.mar-22{margin:22px}.mar-l-22{margin-left:22px}.mar-r-22{margin-right:22px}.mar-t-22{margin-top:22px}.mar-b-22{margin-bottom:22px}.pad-23{padding:23px}.pad-l-23{padding-left:23px}.pad-r-23{padding-right:23px}.pad-t-23{padding-top:23px}.pad-b-23{padding-bottom:23px}.mar-23{margin:23px}.mar-l-23{margin-left:23px}.mar-r-23{margin-right:23px}.mar-t-23{margin-top:23px}.mar-b-23{margin-bottom:23px}.pad-24{padding:24px}.pad-l-24{padding-left:24px}.pad-r-24{padding-right:24px}.pad-t-24{padding-top:24px}.pad-b-24{padding-bottom:24px}.mar-24{margin:24px}.mar-l-24{margin-left:24px}.mar-r-24{margin-right:24px}.mar-t-24{margin-top:24px}.mar-b-24{margin-bottom:24px}.pad-25{padding:25px}.pad-l-25{padding-left:25px}.pad-r-25{padding-right:25px}.pad-t-25{padding-top:25px}.pad-b-25{padding-bottom:25px}.mar-25{margin:25px}.mar-l-25{margin-left:25px}.mar-r-25{margin-right:25px}.mar-t-25{margin-top:25px}.mar-b-25{margin-bottom:25px}.pad-26{padding:26px}.pad-l-26{padding-left:26px}.pad-r-26{padding-right:26px}.pad-t-26{padding-top:26px}.pad-b-26{padding-bottom:26px}.mar-26{margin:26px}.mar-l-26{margin-left:26px}.mar-r-26{margin-right:26px}.mar-t-26{margin-top:26px}.mar-b-26{margin-bottom:26px}.pad-27{padding:27px}.pad-l-27{padding-left:27px}.pad-r-27{padding-right:27px}.pad-t-27{padding-top:27px}.pad-b-27{padding-bottom:27px}.mar-27{margin:27px}.mar-l-27{margin-left:27px}.mar-r-27{margin-right:27px}.mar-t-27{margin-top:27px}.mar-b-27{margin-bottom:27px}.pad-28{padding:28px}.pad-l-28{padding-left:28px}.pad-r-28{padding-right:28px}.pad-t-28{padding-top:28px}.pad-b-28{padding-bottom:28px}.mar-28{margin:28px}.mar-l-28{margin-left:28px}.mar-r-28{margin-right:28px}.mar-t-28{margin-top:28px}.mar-b-28{margin-bottom:28px}.pad-29{padding:29px}.pad-l-29{padding-left:29px}.pad-r-29{padding-right:29px}.pad-t-29{padding-top:29px}.pad-b-29{padding-bottom:29px}.mar-29{margin:29px}.mar-l-29{margin-left:29px}.mar-r-29{margin-right:29px}.mar-t-29{margin-top:29px}.mar-b-29{margin-bottom:29px}.pad-30{padding:30px}.pad-l-30{padding-left:30px}.pad-r-30{padding-right:30px}.pad-t-30{padding-top:30px}.pad-b-30{padding-bottom:30px}.mar-30{margin:30px}.mar-l-30{margin-left:30px}.mar-r-30{margin-right:30px}.mar-t-30{margin-top:30px}.mar-b-30{margin-bottom:30px}.pad-31{padding:31px}.pad-l-31{padding-left:31px}.pad-r-31{padding-right:31px}.pad-t-31{padding-top:31px}.pad-b-31{padding-bottom:31px}.mar-31{margin:31px}.mar-l-31{margin-left:31px}.mar-r-31{margin-right:31px}.mar-t-31{margin-top:31px}.mar-b-31{margin-bottom:31px}.pad-32{padding:32px}.pad-l-32{padding-left:32px}.pad-r-32{padding-right:32px}.pad-t-32{padding-top:32px}.pad-b-32{padding-bottom:32px}.mar-32{margin:32px}.mar-l-32{margin-left:32px}.mar-r-32{margin-right:32px}.mar-t-32{margin-top:32px}.mar-b-32{margin-bottom:32px}.pad-33{padding:33px}.pad-l-33{padding-left:33px}.pad-r-33{padding-right:33px}.pad-t-33{padding-top:33px}.pad-b-33{padding-bottom:33px}.mar-33{margin:33px}.mar-l-33{margin-left:33px}.mar-r-33{margin-right:33px}.mar-t-33{margin-top:33px}.mar-b-33{margin-bottom:33px}.pad-34{padding:34px}.pad-l-34{padding-left:34px}.pad-r-34{padding-right:34px}.pad-t-34{padding-top:34px}.pad-b-34{padding-bottom:34px}.mar-34{margin:34px}.mar-l-34{margin-left:34px}.mar-r-34{margin-right:34px}.mar-t-34{margin-top:34px}.mar-b-34{margin-bottom:34px}.pad-35{padding:35px}.pad-l-35{padding-left:35px}.pad-r-35{padding-right:35px}.pad-t-35{padding-top:35px}.pad-b-35{padding-bottom:35px}.mar-35{margin:35px}.mar-l-35{margin-left:35px}.mar-r-35{margin-right:35px}.mar-t-35{margin-top:35px}.mar-b-35{margin-bottom:35px}.pad-36{padding:36px}.pad-l-36{padding-left:36px}.pad-r-36{padding-right:36px}.pad-t-36{padding-top:36px}.pad-b-36{padding-bottom:36px}.mar-36{margin:36px}.mar-l-36{margin-left:36px}.mar-r-36{margin-right:36px}.mar-t-36{margin-top:36px}.mar-b-36{margin-bottom:36px}.pad-37{padding:37px}.pad-l-37{padding-left:37px}.pad-r-37{padding-right:37px}.pad-t-37{padding-top:37px}.pad-b-37{padding-bottom:37px}.mar-37{margin:37px}.mar-l-37{margin-left:37px}.mar-r-37{margin-right:37px}.mar-t-37{margin-top:37px}.mar-b-37{margin-bottom:37px}.pad-38{padding:38px}.pad-l-38{padding-left:38px}.pad-r-38{padding-right:38px}.pad-t-38{padding-top:38px}.pad-b-38{padding-bottom:38px}.mar-38{margin:38px}.mar-l-38{margin-left:38px}.mar-r-38{margin-right:38px}.mar-t-38{margin-top:38px}.mar-b-38{margin-bottom:38px}.pad-39{padding:39px}.pad-l-39{padding-left:39px}.pad-r-39{padding-right:39px}.pad-t-39{padding-top:39px}.pad-b-39{padding-bottom:39px}.mar-39{margin:39px}.mar-l-39{margin-left:39px}.mar-r-39{margin-right:39px}.mar-t-39{margin-top:39px}.mar-b-39{margin-bottom:39px}.pad-40{padding:40px}.pad-l-40{padding-left:40px}.pad-r-40{padding-right:40px}.pad-t-40{padding-top:40px}.pad-b-40{padding-bottom:40px}.mar-40{margin:40px}.mar-l-40{margin-left:40px}.mar-r-40{margin-right:40px}.mar-t-40{margin-top:40px}.mar-b-40{margin-bottom:40px}.pad-41{padding:41px}.pad-l-41{padding-left:41px}.pad-r-41{padding-right:41px}.pad-t-41{padding-top:41px}.pad-b-41{padding-bottom:41px}.mar-41{margin:41px}.mar-l-41{margin-left:41px}.mar-r-41{margin-right:41px}.mar-t-41{margin-top:41px}.mar-b-41{margin-bottom:41px}.pad-42{padding:42px}.pad-l-42{padding-left:42px}.pad-r-42{padding-right:42px}.pad-t-42{padding-top:42px}.pad-b-42{padding-bottom:42px}.mar-42{margin:42px}.mar-l-42{margin-left:42px}.mar-r-42{margin-right:42px}.mar-t-42{margin-top:42px}.mar-b-42{margin-bottom:42px}.pad-43{padding:43px}.pad-l-43{padding-left:43px}.pad-r-43{padding-right:43px}.pad-t-43{padding-top:43px}.pad-b-43{padding-bottom:43px}.mar-43{margin:43px}.mar-l-43{margin-left:43px}.mar-r-43{margin-right:43px}.mar-t-43{margin-top:43px}.mar-b-43{margin-bottom:43px}.pad-44{padding:44px}.pad-l-44{padding-left:44px}.pad-r-44{padding-right:44px}.pad-t-44{padding-top:44px}.pad-b-44{padding-bottom:44px}.mar-44{margin:44px}.mar-l-44{margin-left:44px}.mar-r-44{margin-right:44px}.mar-t-44{margin-top:44px}.mar-b-44{margin-bottom:44px}.pad-45{padding:45px}.pad-l-45{padding-left:45px}.pad-r-45{padding-right:45px}.pad-t-45{padding-top:45px}.pad-b-45{padding-bottom:45px}.mar-45{margin:45px}.mar-l-45{margin-left:45px}.mar-r-45{margin-right:45px}.mar-t-45{margin-top:45px}.mar-b-45{margin-bottom:45px}.pad-46{padding:46px}.pad-l-46{padding-left:46px}.pad-r-46{padding-right:46px}.pad-t-46{padding-top:46px}.pad-b-46{padding-bottom:46px}.mar-46{margin:46px}.mar-l-46{margin-left:46px}.mar-r-46{margin-right:46px}.mar-t-46{margin-top:46px}.mar-b-46{margin-bottom:46px}.pad-47{padding:47px}.pad-l-47{padding-left:47px}.pad-r-47{padding-right:47px}.pad-t-47{padding-top:47px}.pad-b-47{padding-bottom:47px}.mar-47{margin:47px}.mar-l-47{margin-left:47px}.mar-r-47{margin-right:47px}.mar-t-47{margin-top:47px}.mar-b-47{margin-bottom:47px}.pad-48{padding:48px}.pad-l-48{padding-left:48px}.pad-r-48{padding-right:48px}.pad-t-48{padding-top:48px}.pad-b-48{padding-bottom:48px}.mar-48{margin:48px}.mar-l-48{margin-left:48px}.mar-r-48{margin-right:48px}.mar-t-48{margin-top:48px}.mar-b-48{margin-bottom:48px}.pad-49{padding:49px}.pad-l-49{padding-left:49px}.pad-r-49{padding-right:49px}.pad-t-49{padding-top:49px}.pad-b-49{padding-bottom:49px}.mar-49{margin:49px}.mar-l-49{margin-left:49px}.mar-r-49{margin-right:49px}.mar-t-49{margin-top:49px}.mar-b-49{margin-bottom:49px}.problem-info{float:right;width:300px}.sidebar-problem-list{z-index:50;box-shadow:0 10px 0 0 transparent,0 10px 0 0 transparent,10px 0 0 0 transparent,0 8px 8px 2px rgba(0,0,0,.5);background:#003252;position:relative;min-height:calc(100vh - 47px)}.sidebar-problem-list .sidebar-problem{width:100%;display:grid;grid-template-columns:32px 1fr;border-left-width:24px;border-left-style:solid;border-left-color:#0077c2;transition:background-color 200ms ease-in-out;transition:width 200ms ease-in-out;background-color:inherit;cursor:pointer}.sidebar-problem-list .sidebar-problem[correct]{border-left-color:lime}.sidebar-problem-list .sidebar-problem[wrong]{border-left-color:red}.sidebar-problem-list .sidebar-problem[selected],.sidebar-problem-list .sidebar-problem:hover{width:calc(100% + 24px)}.sidebar-problem-list .sidebar-problem[selected]{background-color:#42a5f5 !important}.sidebar-problem-list .sidebar-problem:hover{background-color:#128ef2}.sidebar-problem-list .sidebar-problem-letter{text-align:center;background-color:#001929;padding-top:20px;padding-bottom:20px;font-size:1.2rem}.sidebar-problem-list .sidebar-problem-name{text-align:left;font-size:1.2rem;padding-left:5px;padding-top:20px;padding-bottom:20px;margin-left:10px;margin-right:10px}.rect-auto,.c100.p100 .slice,.c100.p99 .slice,.c100.p98 .slice,.c100.p97 .slice,.c100.p96 .slice,.c100.p95 .slice,.c100.p94 .slice,.c100.p93 .slice,.c100.p92 .slice,.c100.p91 .slice,.c100.p90 .slice,.c100.p89 .slice,.c100.p88 .slice,.c100.p87 .slice,.c100.p86 .slice,.c100.p85 .slice,.c100.p84 .slice,.c100.p83 .slice,.c100.p82 .slice,.c100.p81 .slice,.c100.p80 .slice,.c100.p79 .slice,.c100.p78 .slice,.c100.p77 .slice,.c100.p76 .slice,.c100.p75 .slice,.c100.p74 .slice,.c100.p73 .slice,.c100.p72 .slice,.c100.p71 .slice,.c100.p70 .slice,.c100.p69 .slice,.c100.p68 .slice,.c100.p67 .slice,.c100.p66 .slice,.c100.p65 .slice,.c100.p64 .slice,.c100.p63 .slice,.c100.p62 .slice,.c100.p61 .slice,.c100.p60 .slice,.c100.p59 .slice,.c100.p58 .slice,.c100.p57 .slice,.c100.p56 .slice,.c100.p55 .slice,.c100.p54 .slice,.c100.p53 .slice,.c100.p52 .slice,.c100.p51 .slice{clip:rect(auto, auto, auto, auto)}.pie,.c100.p100 .fill,.c100.p99 .fill,.c100.p98 .fill,.c100.p97 .fill,.c100.p96 .fill,.c100.p95 .fill,.c100.p94 .fill,.c100.p93 .fill,.c100.p92 .fill,.c100.p91 .fill,.c100.p90 .fill,.c100.p89 .fill,.c100.p88 .fill,.c100.p87 .fill,.c100.p86 .fill,.c100.p85 .fill,.c100.p84 .fill,.c100.p83 .fill,.c100.p82 .fill,.c100.p81 .fill,.c100.p80 .fill,.c100.p79 .fill,.c100.p78 .fill,.c100.p77 .fill,.c100.p76 .fill,.c100.p75 .fill,.c100.p74 .fill,.c100.p73 .fill,.c100.p72 .fill,.c100.p71 .fill,.c100.p70 .fill,.c100.p69 .fill,.c100.p68 .fill,.c100.p67 .fill,.c100.p66 .fill,.c100.p65 .fill,.c100.p64 .fill,.c100.p63 .fill,.c100.p62 .fill,.c100.p61 .fill,.c100.p60 .fill,.c100.p59 .fill,.c100.p58 .fill,.c100.p57 .fill,.c100.p56 .fill,.c100.p55 .fill,.c100.p54 .fill,.c100.p53 .fill,.c100.p52 .fill,.c100.p51 .fill,.c100 .bar{position:absolute;border:.08em solid #307bbb;width:.84em;height:.84em;clip:rect(0em, 0.5em, 1em, 0em);border-radius:50%;-webkit-transform:rotate(0deg);-moz-transform:rotate(0deg);-ms-transform:rotate(0deg);-o-transform:rotate(0deg);transform:rotate(0deg)}.pie-fill,.c100.p100 .fill,.c100.p100.bar:after,.c100.p99 .fill,.c100.p99.bar:after,.c100.p98 .fill,.c100.p98.bar:after,.c100.p97 .fill,.c100.p97.bar:after,.c100.p96 .fill,.c100.p96.bar:after,.c100.p95 .fill,.c100.p95.bar:after,.c100.p94 .fill,.c100.p94.bar:after,.c100.p93 .fill,.c100.p93.bar:after,.c100.p92 .fill,.c100.p92.bar:after,.c100.p91 .fill,.c100.p91.bar:after,.c100.p90 .fill,.c100.p90.bar:after,.c100.p89 .fill,.c100.p89.bar:after,.c100.p88 .fill,.c100.p88.bar:after,.c100.p87 .fill,.c100.p87.bar:after,.c100.p86 .fill,.c100.p86.bar:after,.c100.p85 .fill,.c100.p85.bar:after,.c100.p84 .fill,.c100.p84.bar:after,.c100.p83 .fill,.c100.p83.bar:after,.c100.p82 .fill,.c100.p82.bar:after,.c100.p81 .fill,.c100.p81.bar:after,.c100.p80 .fill,.c100.p80.bar:after,.c100.p79 .fill,.c100.p79.bar:after,.c100.p78 .fill,.c100.p78.bar:after,.c100.p77 .fill,.c100.p77.bar:after,.c100.p76 .fill,.c100.p76.bar:after,.c100.p75 .fill,.c100.p75.bar:after,.c100.p74 .fill,.c100.p74.bar:after,.c100.p73 .fill,.c100.p73.bar:after,.c100.p72 .fill,.c100.p72.bar:after,.c100.p71 .fill,.c100.p71.bar:after,.c100.p70 .fill,.c100.p70.bar:after,.c100.p69 .fill,.c100.p69.bar:after,.c100.p68 .fill,.c100.p68.bar:after,.c100.p67 .fill,.c100.p67.bar:after,.c100.p66 .fill,.c100.p66.bar:after,.c100.p65 .fill,.c100.p65.bar:after,.c100.p64 .fill,.c100.p64.bar:after,.c100.p63 .fill,.c100.p63.bar:after,.c100.p62 .fill,.c100.p62.bar:after,.c100.p61 .fill,.c100.p61.bar:after,.c100.p60 .fill,.c100.p60.bar:after,.c100.p59 .fill,.c100.p59.bar:after,.c100.p58 .fill,.c100.p58.bar:after,.c100.p57 .fill,.c100.p57.bar:after,.c100.p56 .fill,.c100.p56.bar:after,.c100.p55 .fill,.c100.p55.bar:after,.c100.p54 .fill,.c100.p54.bar:after,.c100.p53 .fill,.c100.p53.bar:after,.c100.p52 .fill,.c100.p52.bar:after,.c100.p51 .fill,.c100.p51.bar:after{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100{position:relative;font-size:120px;width:1em;height:1em;border-radius:50%;float:left;background-color:#ccc}.c100 *,.c100 *:before,.c100 *:after{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}.c100.center{float:none;margin:0 auto}.c100.big{font-size:240px}.c100.small{font-size:80px}.c100>span{position:absolute;width:100%;z-index:1;left:0;top:0;width:5em;line-height:5em;font-size:.2em;color:#ccc;display:block;text-align:center;white-space:nowrap;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-out;-moz-transition-timing-function:ease-out;-o-transition-timing-function:ease-out;transition-timing-function:ease-out}.c100:after{position:absolute;top:.08em;left:.08em;display:block;content:" ";border-radius:50%;background-color:#f5f5f5;width:.84em;height:.84em;-webkit-transition-property:all;-moz-transition-property:all;-o-transition-property:all;transition-property:all;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s;-webkit-transition-timing-function:ease-in;-moz-transition-timing-function:ease-in;-o-transition-timing-function:ease-in;transition-timing-function:ease-in}.c100 .slice{position:absolute;width:1em;height:1em;clip:rect(0em, 1em, 1em, 0.5em)}.c100.p1 .bar{-webkit-transform:rotate(3.6deg);-moz-transform:rotate(3.6deg);-ms-transform:rotate(3.6deg);-o-transform:rotate(3.6deg);transform:rotate(3.6deg)}.c100.p2 .bar{-webkit-transform:rotate(7.2deg);-moz-transform:rotate(7.2deg);-ms-transform:rotate(7.2deg);-o-transform:rotate(7.2deg);transform:rotate(7.2deg)}.c100.p3 .bar{-webkit-transform:rotate(10.8deg);-moz-transform:rotate(10.8deg);-ms-transform:rotate(10.8deg);-o-transform:rotate(10.8deg);transform:rotate(10.8deg)}.c100.p4 .bar{-webkit-transform:rotate(14.4deg);-moz-transform:rotate(14.4deg);-ms-transform:rotate(14.4deg);-o-transform:rotate(14.4deg);transform:rotate(14.4deg)}.c100.p5 .bar{-webkit-transform:rotate(18deg);-moz-transform:rotate(18deg);-ms-transform:rotate(18deg);-o-transform:rotate(18deg);transform:rotate(18deg)}.c100.p6 .bar{-webkit-transform:rotate(21.6deg);-moz-transform:rotate(21.6deg);-ms-transform:rotate(21.6deg);-o-transform:rotate(21.6deg);transform:rotate(21.6deg)}.c100.p7 .bar{-webkit-transform:rotate(25.2deg);-moz-transform:rotate(25.2deg);-ms-transform:rotate(25.2deg);-o-transform:rotate(25.2deg);transform:rotate(25.2deg)}.c100.p8 .bar{-webkit-transform:rotate(28.8deg);-moz-transform:rotate(28.8deg);-ms-transform:rotate(28.8deg);-o-transform:rotate(28.8deg);transform:rotate(28.8deg)}.c100.p9 .bar{-webkit-transform:rotate(32.4deg);-moz-transform:rotate(32.4deg);-ms-transform:rotate(32.4deg);-o-transform:rotate(32.4deg);transform:rotate(32.4deg)}.c100.p10 .bar{-webkit-transform:rotate(36deg);-moz-transform:rotate(36deg);-ms-transform:rotate(36deg);-o-transform:rotate(36deg);transform:rotate(36deg)}.c100.p11 .bar{-webkit-transform:rotate(39.6deg);-moz-transform:rotate(39.6deg);-ms-transform:rotate(39.6deg);-o-transform:rotate(39.6deg);transform:rotate(39.6deg)}.c100.p12 .bar{-webkit-transform:rotate(43.2deg);-moz-transform:rotate(43.2deg);-ms-transform:rotate(43.2deg);-o-transform:rotate(43.2deg);transform:rotate(43.2deg)}.c100.p13 .bar{-webkit-transform:rotate(46.8deg);-moz-transform:rotate(46.8deg);-ms-transform:rotate(46.8deg);-o-transform:rotate(46.8deg);transform:rotate(46.8deg)}.c100.p14 .bar{-webkit-transform:rotate(50.4deg);-moz-transform:rotate(50.4deg);-ms-transform:rotate(50.4deg);-o-transform:rotate(50.4deg);transform:rotate(50.4deg)}.c100.p15 .bar{-webkit-transform:rotate(54deg);-moz-transform:rotate(54deg);-ms-transform:rotate(54deg);-o-transform:rotate(54deg);transform:rotate(54deg)}.c100.p16 .bar{-webkit-transform:rotate(57.6deg);-moz-transform:rotate(57.6deg);-ms-transform:rotate(57.6deg);-o-transform:rotate(57.6deg);transform:rotate(57.6deg)}.c100.p17 .bar{-webkit-transform:rotate(61.2deg);-moz-transform:rotate(61.2deg);-ms-transform:rotate(61.2deg);-o-transform:rotate(61.2deg);transform:rotate(61.2deg)}.c100.p18 .bar{-webkit-transform:rotate(64.8deg);-moz-transform:rotate(64.8deg);-ms-transform:rotate(64.8deg);-o-transform:rotate(64.8deg);transform:rotate(64.8deg)}.c100.p19 .bar{-webkit-transform:rotate(68.4deg);-moz-transform:rotate(68.4deg);-ms-transform:rotate(68.4deg);-o-transform:rotate(68.4deg);transform:rotate(68.4deg)}.c100.p20 .bar{-webkit-transform:rotate(72deg);-moz-transform:rotate(72deg);-ms-transform:rotate(72deg);-o-transform:rotate(72deg);transform:rotate(72deg)}.c100.p21 .bar{-webkit-transform:rotate(75.6deg);-moz-transform:rotate(75.6deg);-ms-transform:rotate(75.6deg);-o-transform:rotate(75.6deg);transform:rotate(75.6deg)}.c100.p22 .bar{-webkit-transform:rotate(79.2deg);-moz-transform:rotate(79.2deg);-ms-transform:rotate(79.2deg);-o-transform:rotate(79.2deg);transform:rotate(79.2deg)}.c100.p23 .bar{-webkit-transform:rotate(82.8deg);-moz-transform:rotate(82.8deg);-ms-transform:rotate(82.8deg);-o-transform:rotate(82.8deg);transform:rotate(82.8deg)}.c100.p24 .bar{-webkit-transform:rotate(86.4deg);-moz-transform:rotate(86.4deg);-ms-transform:rotate(86.4deg);-o-transform:rotate(86.4deg);transform:rotate(86.4deg)}.c100.p25 .bar{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.c100.p26 .bar{-webkit-transform:rotate(93.6deg);-moz-transform:rotate(93.6deg);-ms-transform:rotate(93.6deg);-o-transform:rotate(93.6deg);transform:rotate(93.6deg)}.c100.p27 .bar{-webkit-transform:rotate(97.2deg);-moz-transform:rotate(97.2deg);-ms-transform:rotate(97.2deg);-o-transform:rotate(97.2deg);transform:rotate(97.2deg)}.c100.p28 .bar{-webkit-transform:rotate(100.8deg);-moz-transform:rotate(100.8deg);-ms-transform:rotate(100.8deg);-o-transform:rotate(100.8deg);transform:rotate(100.8deg)}.c100.p29 .bar{-webkit-transform:rotate(104.4deg);-moz-transform:rotate(104.4deg);-ms-transform:rotate(104.4deg);-o-transform:rotate(104.4deg);transform:rotate(104.4deg)}.c100.p30 .bar{-webkit-transform:rotate(108deg);-moz-transform:rotate(108deg);-ms-transform:rotate(108deg);-o-transform:rotate(108deg);transform:rotate(108deg)}.c100.p31 .bar{-webkit-transform:rotate(111.6deg);-moz-transform:rotate(111.6deg);-ms-transform:rotate(111.6deg);-o-transform:rotate(111.6deg);transform:rotate(111.6deg)}.c100.p32 .bar{-webkit-transform:rotate(115.2deg);-moz-transform:rotate(115.2deg);-ms-transform:rotate(115.2deg);-o-transform:rotate(115.2deg);transform:rotate(115.2deg)}.c100.p33 .bar{-webkit-transform:rotate(118.8deg);-moz-transform:rotate(118.8deg);-ms-transform:rotate(118.8deg);-o-transform:rotate(118.8deg);transform:rotate(118.8deg)}.c100.p34 .bar{-webkit-transform:rotate(122.4deg);-moz-transform:rotate(122.4deg);-ms-transform:rotate(122.4deg);-o-transform:rotate(122.4deg);transform:rotate(122.4deg)}.c100.p35 .bar{-webkit-transform:rotate(126deg);-moz-transform:rotate(126deg);-ms-transform:rotate(126deg);-o-transform:rotate(126deg);transform:rotate(126deg)}.c100.p36 .bar{-webkit-transform:rotate(129.6deg);-moz-transform:rotate(129.6deg);-ms-transform:rotate(129.6deg);-o-transform:rotate(129.6deg);transform:rotate(129.6deg)}.c100.p37 .bar{-webkit-transform:rotate(133.2deg);-moz-transform:rotate(133.2deg);-ms-transform:rotate(133.2deg);-o-transform:rotate(133.2deg);transform:rotate(133.2deg)}.c100.p38 .bar{-webkit-transform:rotate(136.8deg);-moz-transform:rotate(136.8deg);-ms-transform:rotate(136.8deg);-o-transform:rotate(136.8deg);transform:rotate(136.8deg)}.c100.p39 .bar{-webkit-transform:rotate(140.4deg);-moz-transform:rotate(140.4deg);-ms-transform:rotate(140.4deg);-o-transform:rotate(140.4deg);transform:rotate(140.4deg)}.c100.p40 .bar{-webkit-transform:rotate(144deg);-moz-transform:rotate(144deg);-ms-transform:rotate(144deg);-o-transform:rotate(144deg);transform:rotate(144deg)}.c100.p41 .bar{-webkit-transform:rotate(147.6deg);-moz-transform:rotate(147.6deg);-ms-transform:rotate(147.6deg);-o-transform:rotate(147.6deg);transform:rotate(147.6deg)}.c100.p42 .bar{-webkit-transform:rotate(151.2deg);-moz-transform:rotate(151.2deg);-ms-transform:rotate(151.2deg);-o-transform:rotate(151.2deg);transform:rotate(151.2deg)}.c100.p43 .bar{-webkit-transform:rotate(154.8deg);-moz-transform:rotate(154.8deg);-ms-transform:rotate(154.8deg);-o-transform:rotate(154.8deg);transform:rotate(154.8deg)}.c100.p44 .bar{-webkit-transform:rotate(158.4deg);-moz-transform:rotate(158.4deg);-ms-transform:rotate(158.4deg);-o-transform:rotate(158.4deg);transform:rotate(158.4deg)}.c100.p45 .bar{-webkit-transform:rotate(162deg);-moz-transform:rotate(162deg);-ms-transform:rotate(162deg);-o-transform:rotate(162deg);transform:rotate(162deg)}.c100.p46 .bar{-webkit-transform:rotate(165.6deg);-moz-transform:rotate(165.6deg);-ms-transform:rotate(165.6deg);-o-transform:rotate(165.6deg);transform:rotate(165.6deg)}.c100.p47 .bar{-webkit-transform:rotate(169.2deg);-moz-transform:rotate(169.2deg);-ms-transform:rotate(169.2deg);-o-transform:rotate(169.2deg);transform:rotate(169.2deg)}.c100.p48 .bar{-webkit-transform:rotate(172.8deg);-moz-transform:rotate(172.8deg);-ms-transform:rotate(172.8deg);-o-transform:rotate(172.8deg);transform:rotate(172.8deg)}.c100.p49 .bar{-webkit-transform:rotate(176.4deg);-moz-transform:rotate(176.4deg);-ms-transform:rotate(176.4deg);-o-transform:rotate(176.4deg);transform:rotate(176.4deg)}.c100.p50 .bar{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.c100.p51 .bar{-webkit-transform:rotate(183.6deg);-moz-transform:rotate(183.6deg);-ms-transform:rotate(183.6deg);-o-transform:rotate(183.6deg);transform:rotate(183.6deg)}.c100.p52 .bar{-webkit-transform:rotate(187.2deg);-moz-transform:rotate(187.2deg);-ms-transform:rotate(187.2deg);-o-transform:rotate(187.2deg);transform:rotate(187.2deg)}.c100.p53 .bar{-webkit-transform:rotate(190.8deg);-moz-transform:rotate(190.8deg);-ms-transform:rotate(190.8deg);-o-transform:rotate(190.8deg);transform:rotate(190.8deg)}.c100.p54 .bar{-webkit-transform:rotate(194.4deg);-moz-transform:rotate(194.4deg);-ms-transform:rotate(194.4deg);-o-transform:rotate(194.4deg);transform:rotate(194.4deg)}.c100.p55 .bar{-webkit-transform:rotate(198deg);-moz-transform:rotate(198deg);-ms-transform:rotate(198deg);-o-transform:rotate(198deg);transform:rotate(198deg)}.c100.p56 .bar{-webkit-transform:rotate(201.6deg);-moz-transform:rotate(201.6deg);-ms-transform:rotate(201.6deg);-o-transform:rotate(201.6deg);transform:rotate(201.6deg)}.c100.p57 .bar{-webkit-transform:rotate(205.2deg);-moz-transform:rotate(205.2deg);-ms-transform:rotate(205.2deg);-o-transform:rotate(205.2deg);transform:rotate(205.2deg)}.c100.p58 .bar{-webkit-transform:rotate(208.8deg);-moz-transform:rotate(208.8deg);-ms-transform:rotate(208.8deg);-o-transform:rotate(208.8deg);transform:rotate(208.8deg)}.c100.p59 .bar{-webkit-transform:rotate(212.4deg);-moz-transform:rotate(212.4deg);-ms-transform:rotate(212.4deg);-o-transform:rotate(212.4deg);transform:rotate(212.4deg)}.c100.p60 .bar{-webkit-transform:rotate(216deg);-moz-transform:rotate(216deg);-ms-transform:rotate(216deg);-o-transform:rotate(216deg);transform:rotate(216deg)}.c100.p61 .bar{-webkit-transform:rotate(219.6deg);-moz-transform:rotate(219.6deg);-ms-transform:rotate(219.6deg);-o-transform:rotate(219.6deg);transform:rotate(219.6deg)}.c100.p62 .bar{-webkit-transform:rotate(223.2deg);-moz-transform:rotate(223.2deg);-ms-transform:rotate(223.2deg);-o-transform:rotate(223.2deg);transform:rotate(223.2deg)}.c100.p63 .bar{-webkit-transform:rotate(226.8deg);-moz-transform:rotate(226.8deg);-ms-transform:rotate(226.8deg);-o-transform:rotate(226.8deg);transform:rotate(226.8deg)}.c100.p64 .bar{-webkit-transform:rotate(230.4deg);-moz-transform:rotate(230.4deg);-ms-transform:rotate(230.4deg);-o-transform:rotate(230.4deg);transform:rotate(230.4deg)}.c100.p65 .bar{-webkit-transform:rotate(234deg);-moz-transform:rotate(234deg);-ms-transform:rotate(234deg);-o-transform:rotate(234deg);transform:rotate(234deg)}.c100.p66 .bar{-webkit-transform:rotate(237.6deg);-moz-transform:rotate(237.6deg);-ms-transform:rotate(237.6deg);-o-transform:rotate(237.6deg);transform:rotate(237.6deg)}.c100.p67 .bar{-webkit-transform:rotate(241.2deg);-moz-transform:rotate(241.2deg);-ms-transform:rotate(241.2deg);-o-transform:rotate(241.2deg);transform:rotate(241.2deg)}.c100.p68 .bar{-webkit-transform:rotate(244.8deg);-moz-transform:rotate(244.8deg);-ms-transform:rotate(244.8deg);-o-transform:rotate(244.8deg);transform:rotate(244.8deg)}.c100.p69 .bar{-webkit-transform:rotate(248.4deg);-moz-transform:rotate(248.4deg);-ms-transform:rotate(248.4deg);-o-transform:rotate(248.4deg);transform:rotate(248.4deg)}.c100.p70 .bar{-webkit-transform:rotate(252deg);-moz-transform:rotate(252deg);-ms-transform:rotate(252deg);-o-transform:rotate(252deg);transform:rotate(252deg)}.c100.p71 .bar{-webkit-transform:rotate(255.6deg);-moz-transform:rotate(255.6deg);-ms-transform:rotate(255.6deg);-o-transform:rotate(255.6deg);transform:rotate(255.6deg)}.c100.p72 .bar{-webkit-transform:rotate(259.2deg);-moz-transform:rotate(259.2deg);-ms-transform:rotate(259.2deg);-o-transform:rotate(259.2deg);transform:rotate(259.2deg)}.c100.p73 .bar{-webkit-transform:rotate(262.8deg);-moz-transform:rotate(262.8deg);-ms-transform:rotate(262.8deg);-o-transform:rotate(262.8deg);transform:rotate(262.8deg)}.c100.p74 .bar{-webkit-transform:rotate(266.4deg);-moz-transform:rotate(266.4deg);-ms-transform:rotate(266.4deg);-o-transform:rotate(266.4deg);transform:rotate(266.4deg)}.c100.p75 .bar{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.c100.p76 .bar{-webkit-transform:rotate(273.6deg);-moz-transform:rotate(273.6deg);-ms-transform:rotate(273.6deg);-o-transform:rotate(273.6deg);transform:rotate(273.6deg)}.c100.p77 .bar{-webkit-transform:rotate(277.2deg);-moz-transform:rotate(277.2deg);-ms-transform:rotate(277.2deg);-o-transform:rotate(277.2deg);transform:rotate(277.2deg)}.c100.p78 .bar{-webkit-transform:rotate(280.8deg);-moz-transform:rotate(280.8deg);-ms-transform:rotate(280.8deg);-o-transform:rotate(280.8deg);transform:rotate(280.8deg)}.c100.p79 .bar{-webkit-transform:rotate(284.4deg);-moz-transform:rotate(284.4deg);-ms-transform:rotate(284.4deg);-o-transform:rotate(284.4deg);transform:rotate(284.4deg)}.c100.p80 .bar{-webkit-transform:rotate(288deg);-moz-transform:rotate(288deg);-ms-transform:rotate(288deg);-o-transform:rotate(288deg);transform:rotate(288deg)}.c100.p81 .bar{-webkit-transform:rotate(291.6deg);-moz-transform:rotate(291.6deg);-ms-transform:rotate(291.6deg);-o-transform:rotate(291.6deg);transform:rotate(291.6deg)}.c100.p82 .bar{-webkit-transform:rotate(295.2deg);-moz-transform:rotate(295.2deg);-ms-transform:rotate(295.2deg);-o-transform:rotate(295.2deg);transform:rotate(295.2deg)}.c100.p83 .bar{-webkit-transform:rotate(298.8deg);-moz-transform:rotate(298.8deg);-ms-transform:rotate(298.8deg);-o-transform:rotate(298.8deg);transform:rotate(298.8deg)}.c100.p84 .bar{-webkit-transform:rotate(302.4deg);-moz-transform:rotate(302.4deg);-ms-transform:rotate(302.4deg);-o-transform:rotate(302.4deg);transform:rotate(302.4deg)}.c100.p85 .bar{-webkit-transform:rotate(306deg);-moz-transform:rotate(306deg);-ms-transform:rotate(306deg);-o-transform:rotate(306deg);transform:rotate(306deg)}.c100.p86 .bar{-webkit-transform:rotate(309.6deg);-moz-transform:rotate(309.6deg);-ms-transform:rotate(309.6deg);-o-transform:rotate(309.6deg);transform:rotate(309.6deg)}.c100.p87 .bar{-webkit-transform:rotate(313.2deg);-moz-transform:rotate(313.2deg);-ms-transform:rotate(313.2deg);-o-transform:rotate(313.2deg);transform:rotate(313.2deg)}.c100.p88 .bar{-webkit-transform:rotate(316.8deg);-moz-transform:rotate(316.8deg);-ms-transform:rotate(316.8deg);-o-transform:rotate(316.8deg);transform:rotate(316.8deg)}.c100.p89 .bar{-webkit-transform:rotate(320.4deg);-moz-transform:rotate(320.4deg);-ms-transform:rotate(320.4deg);-o-transform:rotate(320.4deg);transform:rotate(320.4deg)}.c100.p90 .bar{-webkit-transform:rotate(324deg);-moz-transform:rotate(324deg);-ms-transform:rotate(324deg);-o-transform:rotate(324deg);transform:rotate(324deg)}.c100.p91 .bar{-webkit-transform:rotate(327.6deg);-moz-transform:rotate(327.6deg);-ms-transform:rotate(327.6deg);-o-transform:rotate(327.6deg);transform:rotate(327.6deg)}.c100.p92 .bar{-webkit-transform:rotate(331.2deg);-moz-transform:rotate(331.2deg);-ms-transform:rotate(331.2deg);-o-transform:rotate(331.2deg);transform:rotate(331.2deg)}.c100.p93 .bar{-webkit-transform:rotate(334.8deg);-moz-transform:rotate(334.8deg);-ms-transform:rotate(334.8deg);-o-transform:rotate(334.8deg);transform:rotate(334.8deg)}.c100.p94 .bar{-webkit-transform:rotate(338.4deg);-moz-transform:rotate(338.4deg);-ms-transform:rotate(338.4deg);-o-transform:rotate(338.4deg);transform:rotate(338.4deg)}.c100.p95 .bar{-webkit-transform:rotate(342deg);-moz-transform:rotate(342deg);-ms-transform:rotate(342deg);-o-transform:rotate(342deg);transform:rotate(342deg)}.c100.p96 .bar{-webkit-transform:rotate(345.6deg);-moz-transform:rotate(345.6deg);-ms-transform:rotate(345.6deg);-o-transform:rotate(345.6deg);transform:rotate(345.6deg)}.c100.p97 .bar{-webkit-transform:rotate(349.2deg);-moz-transform:rotate(349.2deg);-ms-transform:rotate(349.2deg);-o-transform:rotate(349.2deg);transform:rotate(349.2deg)}.c100.p98 .bar{-webkit-transform:rotate(352.8deg);-moz-transform:rotate(352.8deg);-ms-transform:rotate(352.8deg);-o-transform:rotate(352.8deg);transform:rotate(352.8deg)}.c100.p99 .bar{-webkit-transform:rotate(356.4deg);-moz-transform:rotate(356.4deg);-ms-transform:rotate(356.4deg);-o-transform:rotate(356.4deg);transform:rotate(356.4deg)}.c100.p100 .bar{-webkit-transform:rotate(360deg);-moz-transform:rotate(360deg);-ms-transform:rotate(360deg);-o-transform:rotate(360deg);transform:rotate(360deg)}.c100:hover{cursor:default}.c100:hover>span{width:3.33em;line-height:3.33em;font-size:.3em;color:#307bbb}.c100:hover:after{top:.04em;left:.04em;width:.92em;height:.92em}.c100.dark{background-color:#0077c2}.c100.dark .bar,.c100.dark .fill{border-color:#80d6ff !important}.c100.dark>span{color:#0077c2}.c100.dark:after{background-color:#111}.c100.dark:hover>span{color:#80d6ff}.c100.error{background-color:#700}.c100.error .bar,.c100.error .fill{border-color:#d00 !important}.c100.error:hover>span{color:#d00}.c100.error>span{color:#700}*{margin:0;padding:0;box-sizing:border-box}:root{font-size:16px}h1{width:100%;margin-top:12px;text-align:center}body{font-family:sans-serif;background:url(/static/imgs/grain_background.png);background-color:#111;background-repeat:repeat;color:#fff}button,a.button{box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);border:1px solid #0077c2;background-color:#0077c2;color:#fff;font-size:1rem;padding:.75rem;margin-bottom:12px;display:inline-block;cursor:pointer}button+button,button+a.button,a.button+button,a.button+a.button{margin-left:12px}input,textarea,select{border:none;background-color:#111;color:#fff;font-size:1rem;display:inline-block;padding:.25rem}input::placeholder,textarea::placeholder,select::placeholder{color:#999}input[type=submit]{cursor:pointer;background-color:#0077c2}form input,form textarea,form select{z-index:20;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);padding:.75rem;margin-bottom:12px;width:100%}form textarea{background-color:#111;height:50vh}form label{z-index:30;box-shadow:0px 2px 6px .5px rgba(0,0,0,.7);background-color:#0077c2;width:100%;line-height:44px;display:inline-block;padding:4px 12px 4px;margin-top:12px}.error-list ul li{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);list-style:none;background-color:#998100;padding:.5rem;margin-bottom:.5rem}.error-list ul li.success{background-color:#0077c2}.split{display:grid;grid-template-columns:1fr 1fr}.test-case{outline:none;box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);resize:none;border:none;height:200px;padding:8px;background-color:#111;color:#fff}.test-case:first-child{border-right:2px solid #0077c2}.header-line,.option-line{box-shadow:0px 2px 6px .5px rgba(0,0,0,.5);background-color:#0077c2;padding:4px 12px 4px;margin-top:12px;display:inline-block;width:100%}.header-line>*,.option-line>*{line-height:44px;display:inline-block}.option-line{display:grid;grid-template-columns:1fr 1fr}.option-line>*:last-child{text-align:right}.button-list>*{margin:0px 8px 0px;background-color:#42a5f5;box-shadow:none;border:none;color:#fff;font-size:1rem;line-height:1.2rem;padding:4px 12px 4px;display:inline-block;cursor:pointer}.sidebar-page-container{display:grid;grid-template-columns:minmax(250px, 1fr) 5fr}#code-editor{position:relative;width:100%;min-height:24rem}/*# sourceMappingURL=core.css.map */ diff --git a/codebox/static/css/core.css.map b/codebox/static/css/core.css.map index 87848ca..be4a043 100644 --- a/codebox/static/css/core.css.map +++ b/codebox/static/css/core.css.map @@ -1 +1 @@ -{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_info.scss","../scss/problem/_sidebar.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA,QACC,cACA,WACA,WCIc,QDHd,OCoBe,KDnBf,kBAEA,2CAEA,aACA,kCAEA,qBACC,iBACA,kBAEA,yBACC,4BACA,eAIF,WACC,cACA,kBACA,YAEA,gBACC,SACA,qBACA,eAEA,eAEA,gBACA,iBACA,kBACA,mBACA,gBAEA,cACA,iBClCY,QDoCZ,qBAEA,+CACC,gCACA,WE/CJ,qBACC,WACA,iBAGD,OACC,YAGD,MACC,WAGD,QACC,kBAGD,EACC,qBACA,cAIA,SACC,aACA,qCAEA,uBACC,kBAGD,sBACC,iBATF,SACC,aACA,qCAEA,uBACC,kBAGD,sBACC,iBATF,SACC,aACA,qCAEA,uBACC,kBAGD,sBACC,iBAKH,UACC,aACA,8BAGC,wBACC,gBAGD,uBACC,iBAKH,ICnDI,2CDqDH,eAGC,gBAEC,kBAIF,kBAGC,2BAIF,kBACC,aACA,gCAGD,cACC,wBAEA,oDACA,oDACA,oDACA,oDACA,oDACA,oDAEY,4CDhFH,QCiFS,kDDhFH,QCiFE,iDDhFH,QCkFA,8CDhFH,KCiFS,oDDhFH,QCiFE,mDDhFH,QCkFN,0CDhFH,KCiFS,gDDhFH,KCiFE,+CDhFH,KCmFb,KCjGI,2CDmGH,sBAEA,sBACC,sBAIF,KACC,UAGD,MACC,WAIA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BE9HD,cACI,YACA,YCFJ,sBACC,WACA,6GACA,mBACA,kBACA,8BAEA,uCACC,WAEA,aACA,+BAEA,uBACA,wBACA,kBJRa,QIUb,8CACA,mCACA,yBAEA,eAEA,gDACC,uBAGD,8CACC,sBAGD,8FACC,wBAGD,iDACC,oCAGD,6CACC,yBAIF,8CACC,kBACA,yBACA,iBACA,oBACA,iBAGD,4CACC,gBACA,iBAEA,iBACA,iBACA,oBAEA,iBACA,kBCvDF,81BACI,kCAGJ,izBACI,kBACA,2BACA,YACA,aACA,gCACA,kBCNA,+BACA,4BACA,2BACA,0BACA,uBDMJ,oxDCVI,iCACA,8BACA,6BACA,4BACA,yBDWJ,MAMI,kBACA,gBACA,UACA,WACA,kBACA,WACA,iBEjCc,KFsBd,qCCRA,mBDWwB,YCVxB,gBDUwB,YCTxB,WDSwB,YAUxB,aACI,WACA,cAGJ,UACI,gBAGJ,YACI,eAGJ,WACI,kBACA,WACA,UACA,OACA,MACA,UACA,gBACA,eACA,MEzDU,KF0DV,cACA,kBACA,mBCzCJ,4BD0CiC,ICzCjC,yBDyCiC,ICxCjC,uBDwCiC,ICvCjC,oBDuCiC,ICnCjC,4BDoCiC,ICnCjC,yBDmCiC,IClCjC,uBDkCiC,ICjCjC,oBDiCiC,IC7BjC,mCD8BwC,SC7BxC,gCD6BwC,SC5BxC,8BD4BwC,SC3BxC,2BD2BwC,SAGxC,YACI,kBACA,IExEO,MFyEP,KEzEO,MF0EP,cACA,YACA,kBACA,iBExEG,QFyEH,YACA,aCxDJ,4BDyDiC,ICxDjC,yBDwDiC,ICvDjC,uBDuDiC,ICtDjC,oBDsDiC,IClDjC,4BDmDiC,IClDjC,yBDkDiC,ICjDjC,uBDiDiC,IChDjC,oBDgDiC,IC5CjC,mCD6CwC,QC5CxC,gCD4CwC,QC3CxC,8BD2CwC,QC1CxC,2BD0CwC,QAGxC,aACI,kBACA,UACA,WACA,gCAuBA,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,gBCtGJ,iCACA,8BACA,6BACA,4BACA,yBDwGA,YACI,eACA,iBACI,aACA,mBACA,eACA,MEzHI,QF2HR,kBACI,IE9HS,MF+HT,KE/HS,MFgIT,YACA,aAIR,WACI,iBLhIO,QKiIP,iCAEI,gCAEJ,gBACI,MLtIG,QKwIP,iBACI,iBErII,KFwIJ,sBACI,ML9IA,QKkJZ,YACF,iBL1IW,KK2IL,mCAEI,6BAGA,uBACI,MLnJR,KKsJN,iBACC,MLrJU,KQPb,EACC,SACA,UACA,sBAGD,MACC,eAGD,GACC,WACA,gBACA,kBAGD,KACC,uBAEA,kDACA,sBACA,yBACA,WAGD,gBNhCI,2CMkCH,yBACA,iBR7Bc,QQ8Bd,WAEA,eACA,eACA,mBACA,qBAEA,eAEA,gEACC,iBAIF,sBACC,YACA,sBACA,WAEA,eACA,qBACA,eAEA,6DACC,WAIF,mBACC,eACA,iBR5Dc,QQgEd,qCACC,WNvEE,2CM0EF,eACA,mBACA,WAGD,cACC,sBACA,YAGD,WACC,WNrFE,2CMuFF,iBRjFa,QQkFb,WACA,iBAEA,qBACA,qBACA,gBAOD,kBNpGG,2CMuGF,gBACA,iBR9Fe,QQ+Ff,cACA,oBAEA,0BACC,iBRvGY,QQ4Gf,OACC,aACA,8BAGD,WAKC,aN5HG,2CM+HH,YACA,YAEA,aACA,YACA,sBACA,MRtIO,KQyHP,uBACC,+BAeF,0BNxII,2CM2IH,iBRrIc,QQsId,qBACA,gBACA,qBACA,WAEA,8BACC,iBACA,qBAIF,aAGC,aACA,8BAEA,0BACC,iBAKD,eACC,mBACA,iBRjKQ,QQkKR,gBACA,YACA,WAEA,eACA,mBACA,qBACA,qBAEA,eAIF,wBACC,aACA,6CAGD,aACC,kBACA,WACA","file":"core.css"} \ No newline at end of file +{"version":3,"sourceRoot":"","sources":["../scss/_navbar.scss","../scss/_vars.scss","../scss/_utils.scss","../scss/_elevate.scss","../scss/problem/_info.scss","../scss/problem/_sidebar.scss","../scss/vendor/circle.scss","../scss/vendor/_mixins.scss","../scss/vendor/_variables.scss","../scss/core.scss"],"names":[],"mappings":"AAAA,QACC,cACA,WACA,WCIc,QDHd,OCoBe,KDnBf,kBAEA,2CAEA,aACA,kCAEA,qBACC,iBACA,kBAEA,yBACC,4BACA,eAIF,WACC,cACA,kBACA,YAEA,gBACC,SACA,qBACA,eAEA,eAEA,gBACA,iBACA,kBACA,mBACA,gBAEA,cACA,iBClCY,QDoCZ,qBAEA,+CACC,gCACA,WE/CJ,qBACC,WACA,iBAGD,OACC,YAGD,MACC,WAGD,QACC,kBAGD,EACC,qBACA,cAIA,SACC,aACA,qCAGC,uBACC,kBAGD,sBACC,iBAVH,SACC,aACA,qCAFD,SACC,aACA,qCAcF,UACC,aACA,8BAGC,wBACC,gBAGD,uBACC,iBAOD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAFD,WACC,aACA,8BAKH,IC9DI,2CDgEH,eAGC,gBAEC,kBAIF,kBAGC,2BAIF,kBACC,aACA,gCAGD,cACC,wBAEA,oDACA,oDACA,oDACA,oDACA,oDACA,oDAEY,4CD3FH,QC4FS,kDD3FH,QC4FE,iDD3FH,QC6FA,8CD3FH,KC4FS,oDD3FH,QC4FE,mDD3FH,QC6FJ,iDAEF,0CD7FH,KC8FS,gDD7FH,KC8FE,+CD7FH,KCgGb,KC9GI,2CDgHH,sBAEA,sBACC,sBAIF,KACC,UAGD,MACC,WAIA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,mBACA,0BACA,2BACA,yBACA,4BAEA,kBACA,yBACA,0BACA,wBACA,2BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BAVA,qBACA,4BACA,6BACA,2BACA,8BAEA,oBACA,2BACA,4BACA,0BACA,6BE3ID,cACI,YACA,YCFJ,sBACC,WACA,6GACA,mBACA,kBACA,8BAEA,uCACC,WAEA,aACA,+BAEA,uBACA,wBACA,kBJRa,QIUb,8CACA,mCACA,yBAEA,eAEA,gDACC,uBAGD,8CACC,sBAGD,8FACC,wBAGD,iDACC,oCAGD,6CACC,yBAIF,8CACC,kBACA,yBACA,iBACA,oBACA,iBAGD,4CACC,gBACA,iBAEA,iBACA,iBACA,oBAEA,iBACA,kBCvDF,81BACI,kCAGJ,izBACI,kBACA,2BACA,YACA,aACA,gCACA,kBCNA,+BACA,4BACA,2BACA,0BACA,uBDMJ,oxDCVI,iCACA,8BACA,6BACA,4BACA,yBDWJ,MAMI,kBACA,gBACA,UACA,WACA,kBACA,WACA,iBEjCc,KFsBd,qCCRA,mBDWwB,YCVxB,gBDUwB,YCTxB,WDSwB,YAUxB,aACI,WACA,cAGJ,UACI,gBAGJ,YACI,eAGJ,WACI,kBACA,WACA,UACA,OACA,MACA,UACA,gBACA,eACA,MEzDU,KF0DV,cACA,kBACA,mBCzCJ,4BD0CiC,ICzCjC,yBDyCiC,ICxCjC,uBDwCiC,ICvCjC,oBDuCiC,ICnCjC,4BDoCiC,ICnCjC,yBDmCiC,IClCjC,uBDkCiC,ICjCjC,oBDiCiC,IC7BjC,mCD8BwC,SC7BxC,gCD6BwC,SC5BxC,8BD4BwC,SC3BxC,2BD2BwC,SAGxC,YACI,kBACA,IExEO,MFyEP,KEzEO,MF0EP,cACA,YACA,kBACA,iBExEG,QFyEH,YACA,aCxDJ,4BDyDiC,ICxDjC,yBDwDiC,ICvDjC,uBDuDiC,ICtDjC,oBDsDiC,IClDjC,4BDmDiC,IClDjC,yBDkDiC,ICjDjC,uBDiDiC,IChDjC,oBDgDiC,IC5CjC,mCD6CwC,QC5CxC,gCD4CwC,QC3CxC,8BD2CwC,QC1CxC,2BD0CwC,QAGxC,aACI,kBACA,UACA,WACA,gCAuBA,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,cCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,gCACA,6BACA,4BACA,2BACA,wBDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,kCACA,+BACA,8BACA,6BACA,0BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,iCACA,8BACA,6BACA,4BACA,yBDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,eCtGJ,mCACA,gCACA,+BACA,8BACA,2BDkGI,gBCtGJ,iCACA,8BACA,6BACA,4BACA,yBDwGA,YACI,eACA,iBACI,aACA,mBACA,eACA,MEzHI,QF2HR,kBACI,IE9HS,MF+HT,KE/HS,MFgIT,YACA,aAIR,WACI,iBLhIO,QKiIP,iCAEI,gCAEJ,gBACI,MLtIG,QKwIP,iBACI,iBErII,KFwIJ,sBACI,ML9IA,QKkJZ,YACF,iBL1IW,KK2IL,mCAEI,6BAGA,uBACI,MLnJR,KKsJN,iBACC,MLrJU,KQPb,EACC,SACA,UACA,sBAGD,MACC,eAGD,GACC,WACA,gBACA,kBAGD,KACC,uBAEA,kDACA,sBACA,yBACA,WAGD,gBNhCI,2CMkCH,yBACA,iBR7Bc,QQ8Bd,WAEA,eACA,eACA,mBACA,qBAEA,eAEA,gEACC,iBAIF,sBACC,YACA,sBACA,WAEA,eACA,qBACA,eAEA,6DACC,WAIF,mBACC,eACA,iBR5Dc,QQgEd,qCACC,WNvEE,2CM0EF,eACA,mBACA,WAGD,cACC,sBACA,YAGD,WACC,WNrFE,2CMuFF,iBRjFa,QQkFb,WACA,iBAEA,qBACA,qBACA,gBAOD,kBNpGG,2CMuGF,gBACA,iBR9Fe,QQ+Ff,cACA,oBAEA,0BACC,iBRvGY,QQ4Gf,OACC,aACA,8BAGD,WAKC,aN5HG,2CM+HH,YACA,YAEA,aACA,YACA,sBACA,MRtIO,KQyHP,uBACC,+BAeF,0BNxII,2CM2IH,iBRrIc,QQsId,qBACA,gBACA,qBACA,WAEA,8BACC,iBACA,qBAIF,aAGC,aACA,8BAEA,0BACC,iBAKD,eACC,mBACA,iBRjKQ,QQkKR,gBACA,YACA,WAEA,eACA,mBACA,qBACA,qBAEA,eAIF,wBACC,aACA,6CAGD,aACC,kBACA,WACA","file":"core.css"} \ No newline at end of file diff --git a/codebox/static/js/pie_chart.js b/codebox/static/js/pie_chart.js index 3529949..a6a3edc 100644 --- a/codebox/static/js/pie_chart.js +++ b/codebox/static/js/pie_chart.js @@ -2,18 +2,20 @@ (function() { $(document).ready(function() { return $('piechart').each(function(_, p) { - var $p, anim, canvas, ctx, fill_perc, i, j, ref, segments, total; + var $p, anim, canvas, ctx, fill_perc, half_size, i, j, ref, segments, size, total; $p = $(p); segments = $p.attr('data-segments'); + size = ($p.attr('data-size')) || 256; canvas = document.createElement("canvas"); - canvas.width = 256; - canvas.height = 256; + canvas.width = size; + canvas.height = size; $p.append(canvas); ctx = canvas.getContext("2d"); total = 0; for (i = j = 1, ref = segments; (1 <= ref ? j <= ref : j >= ref); i = 1 <= ref ? ++j : --j) { total += parseInt($p.attr(`data-segment-${i}`)); } + half_size = size / 2; fill_perc = 0.01; anim = function() { var acc, color, k, ratio, ref1; @@ -22,8 +24,8 @@ ratio = (parseInt($p.attr(`data-segment-${i}`))) * fill_perc; color = $p.attr(`data-segment-${i}-color`); ctx.beginPath(); - ctx.moveTo(128, 128); - ctx.arc(128, 128, 128, -2 * Math.PI * (ratio + acc) / total, -2 * Math.PI * acc / total); + ctx.moveTo(half_size, half_size); + ctx.arc(half_size, half_size, half_size, -2 * Math.PI * (ratio + acc) / total, -2 * Math.PI * acc / total); ctx.closePath(); ctx.fillStyle = color; ctx.fill(); diff --git a/codebox/static/js/pie_chart.js.map b/codebox/static/js/pie_chart.js.map index 3b63c63..251caef 100644 --- a/codebox/static/js/pie_chart.js.map +++ b/codebox/static/js/pie_chart.js.map @@ -6,8 +6,8 @@ "coffee/pie_chart.coffee" ], "names": [], - "mappings": ";AAAA;EAAA,CAAA,CAAE,QAAF,CAAW,CAAC,KAAZ,CAAkB,QAAA,CAAA,CAAA;WACd,CAAA,CAAE,UAAF,CAAa,CAAC,IAAd,CAAmB,QAAA,CAAC,CAAD,EAAI,CAAJ,CAAA;AACf,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,QAAA,EAAA;MAAA,EAAA,GAAK,CAAA,CAAE,CAAF;MACL,QAAA,GAAW,EAAE,CAAC,IAAH,CAAQ,eAAR;MAEX,MAAA,GAAS,QAAQ,CAAC,aAAT,CAAuB,QAAvB;MACT,MAAM,CAAC,KAAP,GAAe;MACf,MAAM,CAAC,MAAP,GAAgB;MAChB,EAAE,CAAC,MAAH,CAAU,MAAV;MACA,GAAA,GAAM,MAAM,CAAC,UAAP,CAAkB,IAAlB;MAEN,KAAA,GAAQ;MACR,KAAS,qFAAT;QACI,KAAA,IAAS,QAAA,CAAU,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAA,CAAR,CAAV;MADb;MAGA,SAAA,GAAY;MAEZ,IAAA,GAAO,QAAA,CAAA,CAAA;AACH,YAAA,GAAA,EAAA,KAAA,EAAA,CAAA,EAAA,KAAA,EAAA;QAAA,GAAA,GAAM;QACN,KAAS,0FAAT;UACI,KAAA,GAAQ,CAAC,QAAA,CAAU,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAA,CAAR,CAAV,CAAD,CAAA,GAA2C;UACnD,KAAA,GAAQ,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAkB,MAAlB,CAAR;UAER,GAAG,CAAC,SAAJ,CAAA;UACA,GAAG,CAAC,MAAJ,CAAW,GAAX,EAAgB,GAAhB;UACA,GAAG,CAAC,GAAJ,CAAQ,GAAR,EAAa,GAAb,EAAkB,GAAlB,EAAwB,CAAC,CAAD,GAAK,IAAI,CAAC,EAAV,GAAe,CAAC,KAAA,GAAQ,GAAT,CAAf,GAA+B,KAAvD,EAAgE,CAAC,CAAD,GAAK,IAAI,CAAC,EAAV,GAAe,GAAf,GAAqB,KAArF;UACA,GAAG,CAAC,SAAJ,CAAA;UACA,GAAG,CAAC,SAAJ,GAAgB;UAChB,GAAG,CAAC,IAAJ,CAAA;UAEA,GAAA,IAAO;QAXX;QAaA,SAAA,IAAa,SAAA,GAAY,EAAZ,GAAiB;QAE9B,IAAG,SAAA,IAAa,CAAhB;UACI,SAAA,GAAY;UACZ,MAAM,CAAC,qBAAP,CAA6B,IAA7B,EAFJ;;QAIA,IAAG,SAAA,GAAY,CAAf;iBACI,MAAM,CAAC,qBAAP,CAA6B,IAA7B,EADJ;;MArBG;aAwBP,MAAM,CAAC,qBAAP,CAA6B,IAA7B;IAxCe,CAAnB;EADc,CAAlB;AAAA", + "mappings": ";AAAA;EAAA,CAAA,CAAE,QAAF,CAAW,CAAC,KAAZ,CAAkB,QAAA,CAAA,CAAA;WACd,CAAA,CAAE,UAAF,CAAa,CAAC,IAAd,CAAmB,QAAA,CAAC,CAAD,EAAI,CAAJ,CAAA;AACf,UAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,GAAA,EAAA,SAAA,EAAA,SAAA,EAAA,CAAA,EAAA,CAAA,EAAA,GAAA,EAAA,QAAA,EAAA,IAAA,EAAA;MAAA,EAAA,GAAK,CAAA,CAAE,CAAF;MACL,QAAA,GAAW,EAAE,CAAC,IAAH,CAAQ,eAAR;MACX,IAAA,GAAO,CAAC,EAAE,CAAC,IAAH,CAAQ,WAAR,CAAD,CAAA,IAAyB;MAEhC,MAAA,GAAS,QAAQ,CAAC,aAAT,CAAuB,QAAvB;MACT,MAAM,CAAC,KAAP,GAAe;MACf,MAAM,CAAC,MAAP,GAAgB;MAChB,EAAE,CAAC,MAAH,CAAU,MAAV;MACA,GAAA,GAAM,MAAM,CAAC,UAAP,CAAkB,IAAlB;MAEN,KAAA,GAAQ;MACR,KAAS,qFAAT;QACI,KAAA,IAAS,QAAA,CAAU,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAA,CAAR,CAAV;MADb;MAGA,SAAA,GAAY,IAAA,GAAO;MACnB,SAAA,GAAY;MACZ,IAAA,GAAO,QAAA,CAAA,CAAA;AACH,YAAA,GAAA,EAAA,KAAA,EAAA,CAAA,EAAA,KAAA,EAAA;QAAA,GAAA,GAAM;QACN,KAAS,0FAAT;UACI,KAAA,GAAQ,CAAC,QAAA,CAAU,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAA,CAAR,CAAV,CAAD,CAAA,GAA2C;UACnD,KAAA,GAAQ,EAAE,CAAC,IAAH,CAAQ,CAAA,aAAA,CAAA,CAAgB,CAAhB,CAAkB,MAAlB,CAAR;UAER,GAAG,CAAC,SAAJ,CAAA;UACA,GAAG,CAAC,MAAJ,CAAW,SAAX,EAAsB,SAAtB;UACA,GAAG,CAAC,GAAJ,CAAQ,SAAR,EAAmB,SAAnB,EAA8B,SAA9B,EAA0C,CAAC,CAAD,GAAK,IAAI,CAAC,EAAV,GAAe,CAAC,KAAA,GAAQ,GAAT,CAAf,GAA+B,KAAzE,EAAkF,CAAC,CAAD,GAAK,IAAI,CAAC,EAAV,GAAe,GAAf,GAAqB,KAAvG;UACA,GAAG,CAAC,SAAJ,CAAA;UACA,GAAG,CAAC,SAAJ,GAAgB;UAChB,GAAG,CAAC,IAAJ,CAAA;UAEA,GAAA,IAAO;QAXX;QAaA,SAAA,IAAa,SAAA,GAAY,EAAZ,GAAiB;QAE9B,IAAG,SAAA,IAAa,CAAhB;UACI,SAAA,GAAY;UACZ,MAAM,CAAC,qBAAP,CAA6B,IAA7B,EAFJ;;QAIA,IAAG,SAAA,GAAY,CAAf;iBACI,MAAM,CAAC,qBAAP,CAA6B,IAA7B,EADJ;;MArBG;aAwBP,MAAM,CAAC,qBAAP,CAA6B,IAA7B;IAzCe,CAAnB;EADc,CAAlB;AAAA", "sourcesContent": [ - "$(document).ready ->\n $('piechart').each (_, p) ->\n $p = $ p\n segments = $p.attr 'data-segments'\n\n canvas = document.createElement \"canvas\"\n canvas.width = 256\n canvas.height = 256\n $p.append canvas\n ctx = canvas.getContext \"2d\"\n\n total = 0\n for i in [1..segments]\n total += parseInt ($p.attr \"data-segment-#{i}\")\n \n fill_perc = 0.01\n\n anim = ->\n acc = 0\n for i in [1..segments]\n ratio = (parseInt ($p.attr \"data-segment-#{i}\")) * fill_perc\n color = $p.attr \"data-segment-#{i}-color\"\n\n ctx.beginPath()\n ctx.moveTo 128, 128\n ctx.arc 128, 128, 128, (-2 * Math.PI * (ratio + acc) / total), (-2 * Math.PI * acc / total)\n ctx.closePath()\n ctx.fillStyle = color\n ctx.fill()\n\n acc += ratio\n\n fill_perc += fill_perc / 10 + 0.01\n\n if fill_perc >= 1\n fill_perc = 1\n window.requestAnimationFrame anim\n\n if fill_perc < 1\n window.requestAnimationFrame anim\n \n window.requestAnimationFrame anim\n\n" + "$(document).ready ->\n $('piechart').each (_, p) ->\n $p = $ p\n segments = $p.attr 'data-segments'\n size = ($p.attr 'data-size') || 256\n\n canvas = document.createElement \"canvas\"\n canvas.width = size\n canvas.height = size\n $p.append canvas\n ctx = canvas.getContext \"2d\"\n\n total = 0\n for i in [1..segments]\n total += parseInt ($p.attr \"data-segment-#{i}\")\n \n half_size = size / 2\n fill_perc = 0.01\n anim = ->\n acc = 0\n for i in [1..segments]\n ratio = (parseInt ($p.attr \"data-segment-#{i}\")) * fill_perc\n color = $p.attr \"data-segment-#{i}-color\"\n\n ctx.beginPath()\n ctx.moveTo half_size, half_size\n ctx.arc half_size, half_size, half_size, (-2 * Math.PI * (ratio + acc) / total), (-2 * Math.PI * acc / total)\n ctx.closePath()\n ctx.fillStyle = color\n ctx.fill()\n\n acc += ratio\n\n fill_perc += fill_perc / 10 + 0.01\n\n if fill_perc >= 1\n fill_perc = 1\n window.requestAnimationFrame anim\n\n if fill_perc < 1\n window.requestAnimationFrame anim\n \n window.requestAnimationFrame anim\n\n" ] } \ No newline at end of file diff --git a/codebox/static/scss/_utils.scss b/codebox/static/scss/_utils.scss index 5b0db89..87b4a3f 100644 --- a/codebox/static/scss/_utils.scss +++ b/codebox/static/scss/_utils.scss @@ -25,12 +25,14 @@ a { display: grid; grid-template-columns: repeat(#{$i}, 1fr); - & > *:first-child { - margin-right: 12px; - } - - & > *:last-child { - margin-left: 12px; + @if ($i == 2) { + & > *:first-child { + margin-right: 12px; + } + + & > *:last-child { + margin-left: 12px; + } } } } @@ -50,6 +52,15 @@ a { } } +@for $i from 1 to 5 { + @for $j from 1 to 5 { + .split-#{$i}-#{$j} { + display: grid; + grid-template-columns: #{$i}fr #{$j}fr; + } + } +} + pre { @include elevate(2px, rgba(0, 0, 0, 0.5)); font-size: 1rem; @@ -91,6 +102,8 @@ pre { &.secondary-light { & > span { background-color: $secondary-light; } } &.secondary-dark { & > span { background-color: $secondary-dark; } } + &.success { & > span { background-color: #00ff00; } } + &.error { & > span { background-color: $error; } } &.error-light { & > span { background-color: $error-light; } } &.error-dark { & > span { background-color: $error-dark; } } diff --git a/codebox/static/scss/core.scss b/codebox/static/scss/core.scss index 9462751..ec77337 100644 --- a/codebox/static/scss/core.scss +++ b/codebox/static/scss/core.scss @@ -186,5 +186,5 @@ form { #code-editor { position: relative; width: 100%; - min-height: 16rem; + min-height: 24rem; } \ No newline at end of file diff --git a/codebox/views/problem/problem.moon b/codebox/views/problem/problem.moon index cbf1896..7f15800 100644 --- a/codebox/views/problem/problem.moon +++ b/codebox/views/problem/problem.moon @@ -13,7 +13,7 @@ class Problems extends html.Widget else h1 @problem.name div class: 'problem-info', -> - a style: "width: 100%; text-align: center", class: 'button', href: (@url_for 'problem.submit', { problem_name: @problem.short_name }), -> + a style: "text-align: center", class: 'button w100', href: (@url_for 'problem.submit', { problem_name: @problem.short_name }), -> text "Make a submission" div style: 'font-size: 1.3rem; margin-top: 0', class: 'header-line', -> text "Stats for #{@problem.name}" diff --git a/codebox/views/problem/submit.moon b/codebox/views/problem/submit.moon index 30360ca..4017278 100644 --- a/codebox/views/problem/submit.moon +++ b/codebox/views/problem/submit.moon @@ -9,7 +9,7 @@ class ProblemSubmit extends html.Widget div class: 'content', -> h1 "Submit to '#{@problem.name}'" - div class: 'header-line', -> text "Code Editor" + div class: 'header-line', -> div "Code Editor" div class: 'box', -> div class: 'split-lr', -> div class: 'mar-l-12', -> diff --git a/codebox/views/ssr/job_result.moon b/codebox/views/ssr/job_result.moon index 7dd9950..bd9b9f9 100644 --- a/codebox/views/ssr/job_result.moon +++ b/codebox/views/ssr/job_result.moon @@ -34,6 +34,11 @@ class JobResultView extends html.Widget when Jobs.statuses.bad_language then @show_slash = false when Jobs.statuses.bad_problem then @show_slash = false + @message = 'Error' + switch @job.status + when Jobs.statuses.compiling then @message = 'Compiling' + when Jobs.statuses.queued then @message = 'Queued' + if @show_slash and type(@json_data) == "table" @completed_percentage = math.floor(100 * (@json_data.completed / @json_data.total)) @@ -44,7 +49,7 @@ class JobResultView extends html.Widget if @show_slash and type(@json_data) == "table" span -> text "#{@json_data.completed} / #{@json_data.total}" else - span -> text "Error" + span -> text @message div class: 'slice', -> div class: 'bar', '' @@ -102,7 +107,7 @@ class JobResultView extends html.Widget p "Run time: #{@json_data.run_times[i] / 1000000}s" else div class: 'header-line', -> - div 'Errors' + div @message div class: 'box', -> return unless @job.data diff --git a/codebox/views/submission/list.moon b/codebox/views/submission/list.moon index 757fee6..bcb85c3 100644 --- a/codebox/views/submission/list.moon +++ b/codebox/views/submission/list.moon @@ -1,5 +1,57 @@ html = require 'lapis.html' +import Jobs from require 'models' class SubmissionList extends html.Widget content: => - h1 "Submission" \ No newline at end of file + h1 "Submissions" + + div class: 'content', -> + for prob in *@problems + div class: 'header-line', -> div prob.name + div class: 'box', -> + jobs = @queries.get_jobs_by_user_and_problem @user.id, prob.id + if #jobs == 0 + text "No submissions to this problem." + return + + div class: 'split-4-1', -> + div -> + for job in *jobs + tab_color = job.status == Jobs.statuses.correct and 'success' or 'error' + a href: (@url_for 'submission.view', {}, { submission_id: job.job_id }), -> + div class: "highlight tabbed-split tab-32 #{tab_color}", -> + span "" + div class: 'pad-12 split-4', -> + div Jobs.statuses\to_name job.status + div job.lang\upper! + div "Average run time" + div job.time_initiated + + correct = 0 + wrong = 0 + timed_out = 0 + error = 0 + + for job in *jobs + switch job.status + when Jobs.statuses.correct then correct += 1 + when Jobs.statuses.wrong_answer then wrong += 1 + when Jobs.statuses.timed_out then timed_out += 1 + when Jobs.statuses.error then error += 1 + when Jobs.statuses.compile_err then error += 1 + + if (correct + wrong + timed_out + error) > 0 + piechart { + style: 'display: inline-block; text-align: center; width: 100%', + class: "highlight pad-12", + "data-size": 200, + "data-segments": 4, + "data-segment-1": correct, + "data-segment-1-color": "#44ff44", + "data-segment-2": wrong, + "data-segment-2-color": "#ff4444", + "data-segment-3": timed_out, + "data-segment-3-color": "#4444ff", + "data-segment-4": error, + "data-segment-4-color": "#777777" + }, "" \ No newline at end of file diff --git a/codebox/views/submission/view.moon b/codebox/views/submission/view.moon index c4c5ef1..06a9e83 100644 --- a/codebox/views/submission/view.moon +++ b/codebox/views/submission/view.moon @@ -9,4 +9,11 @@ class SubmissionView extends html.Widget div class: 'header-line', -> div -> text "#{@job.lang\upper!} code" - pre { id: 'code-editor', 'data-lang': 'c_cpp', 'data-readonly': 'true' }, -> text @job.code \ No newline at end of file + lang = '' + switch @job.lang + when 'c' then lang = 'c_cpp' + when 'cpp' then lang = 'c_cpp' + when 'py' then lang = 'python' + when 'lua' then lang = 'lua' + + pre { id: 'code-editor', 'data-lang': lang, 'data-readonly': 'true' }, -> text @job.code \ No newline at end of file diff --git a/executer/app/executer.coffee b/executer/app/executer.coffee index 6b01fc3..cbf394d 100644 --- a/executer/app/executer.coffee +++ b/executer/app/executer.coffee @@ -1,9 +1,11 @@ { make_matcher } = require './matchers' { TempFile } = require './temp_file' +{ BaseCompiler } = require './compilers/base_compiler' { CCompiler } = require './compilers/c_compiler' { CPPCompiler } = require './compilers/cpp_compiler' { CExecuter } = require './executers/c_executer' +{ PyExecuter } = require './executers/py_executer' clean_output = (otpt) -> otpt.split '\n' @@ -16,12 +18,14 @@ create_matchers = (otpt) -> class Executer compilers: { 'c': new CCompiler(), - 'cpp': new CPPCompiler() + 'cpp': new CPPCompiler(), + 'py': new BaseCompiler() } executers: { 'c': new CExecuter(), - 'cpp': new CExecuter() + 'cpp': new CExecuter(), + 'py': new PyExecuter() } process: (lang, code, test_cases, time_limit) -> diff --git a/executer/app/executers/py_executer.coffee b/executer/app/executers/py_executer.coffee new file mode 100644 index 0000000..a040a04 --- /dev/null +++ b/executer/app/executers/py_executer.coffee @@ -0,0 +1,34 @@ +{ BaseExecuter } = require './base_executer' +{ spawn } = require 'child_process' +{ on_child_exit } = require '../child_process' + +class PyExecuter extends BaseExecuter + execute: (path, input, time_limit) -> + bash_shell = spawn 'bash' + + output = "" + bash_shell.stdout.on 'data', (data) => output += data.toString() + + err_output = "" + bash_shell.stderr.on 'data', (data) => err_output += data.toString() + + bash_shell.stdin.end "echo #{input} | timeout -s SIGKILL #{time_limit / 1000.0} python3 #{path}" + + start_time = process.hrtime() + res_code = await on_child_exit bash_shell + diff_time = process.hrtime start_time + + run_time = diff_time[0] * 1000000 + Math.floor(diff_time[1] / 1000) / 1000000 + + if res_code == 0 + return { status: 'SUCCESS', output: output, run_time: run_time } + else if res_code == 124 or res_code == 137 + bash_shell.kill() + return { status: 'TIME_LIMIT_EXCEEDED' } + else + bash_shell.kill() + return { status: 'BAD_EXECUTION', err: err_output } + +module.exports = { + PyExecuter: PyExecuter +}