├── LICENSE ├── README.md ├── bench ├── .gitignore ├── Makefile └── src │ └── bench │ ├── Gopkg.lock │ ├── Gopkg.toml │ ├── client.go │ ├── cmd │ ├── bench-worker │ │ ├── main.go │ │ └── ws.go │ ├── bench │ │ └── main.go │ ├── isucointest │ │ └── main.go │ ├── rebootcheck │ │ └── main.go │ └── tools │ │ ├── gendefdata │ │ └── main.go │ │ ├── testuser │ │ └── main.go │ │ └── updatestatic │ │ └── main.go │ ├── const.go │ ├── finalstate.go │ ├── init.go │ ├── isubank │ └── isubank.go │ ├── isulog │ └── isulog.go │ ├── logger.go │ ├── manager.go │ ├── portal │ └── structs.go │ ├── randnameja │ ├── firstname.go │ ├── lastname.go │ └── randnameja.go │ ├── random.go │ ├── runner.go │ ├── scenario.go │ ├── score.go │ ├── staticfile.go │ ├── tester.go │ ├── testuser.go │ └── urlcache │ └── cache.go ├── blackbox ├── bank │ └── main.go ├── conf.d │ └── my.cnf ├── docker-compose.local.yml ├── docker-compose.yml ├── logger │ ├── main.go │ └── server_test.go ├── nginx │ ├── _.isucon8.flying-chair.net.crt │ ├── _.isucon8.flying-chair.net.key │ ├── nginx.conf │ └── nginx.local.conf └── sql │ ├── 00_create_bank_database.sql │ ├── isubank.sql │ └── z_isubankdata.sql.gz ├── docs ├── ISUBANK_SPEC.md ├── ISULOGGER_SPEC.md ├── MANUAL.md └── WEBAPP_SPEC.md ├── portal ├── .gitignore ├── .proverc ├── Build.PL ├── Changes ├── Dockerfile ├── LICENSE ├── META.json ├── README.md ├── builder │ └── MyBuilder.pm ├── config │ ├── development.pl │ ├── production.pl │ └── test.pl ├── cpanfile ├── cpanfile.snapshot ├── docker-compose.yml ├── env.sh ├── lib │ └── ISUCON8 │ │ ├── Portal.pm │ │ └── Portal │ │ ├── Constants.pm │ │ ├── Constants │ │ └── Common.pm │ │ ├── Container.pm │ │ ├── DB.pm │ │ ├── Exception.pm │ │ ├── Log.pm │ │ ├── Model.pm │ │ ├── Model │ │ ├── Admin.pm │ │ ├── Bench.pm │ │ └── Team.pm │ │ ├── SessionStore.pm │ │ ├── Team.pm │ │ ├── Web.pm │ │ └── Web │ │ ├── Controller.pm │ │ ├── Controller │ │ ├── API.pm │ │ ├── Admin.pm │ │ ├── Bench.pm │ │ ├── Root.pm │ │ └── Team.pm │ │ ├── Dispatcher.pm │ │ ├── Plugin │ │ └── Session.pm │ │ ├── View.pm │ │ └── ViewFunctions.pm ├── log │ ├── app │ │ └── .gitkeep │ └── nginx │ │ └── .gitkeep ├── minil.toml ├── mysql │ └── conf.d │ │ └── my.cnf ├── nginx │ ├── _.isucon8.flying-chair.net.crt │ ├── _.isucon8.flying-chair.net.key │ ├── mime.types │ └── nginx.conf ├── node_modules │ ├── @fortawesome │ │ └── fontawesome-free │ │ │ ├── LICENSE.txt │ │ │ ├── README.md │ │ │ ├── css │ │ │ ├── all.css │ │ │ ├── all.min.css │ │ │ ├── brands.css │ │ │ ├── brands.min.css │ │ │ ├── fontawesome.css │ │ │ ├── fontawesome.min.css │ │ │ ├── regular.css │ │ │ ├── regular.min.css │ │ │ ├── solid.css │ │ │ ├── solid.min.css │ │ │ ├── svg-with-js.css │ │ │ ├── svg-with-js.min.css │ │ │ ├── v4-shims.css │ │ │ └── v4-shims.min.css │ │ │ ├── js │ │ │ ├── all.js │ │ │ ├── all.min.js │ │ │ ├── brands.js │ │ │ ├── brands.min.js │ │ │ ├── fontawesome.js │ │ │ ├── fontawesome.min.js │ │ │ ├── regular.js │ │ │ ├── regular.min.js │ │ │ ├── solid.js │ │ │ ├── solid.min.js │ │ │ ├── v4-shims.js │ │ │ └── v4-shims.min.js │ │ │ ├── less │ │ │ ├── _animated.less │ │ │ ├── _bordered-pulled.less │ │ │ ├── _core.less │ │ │ ├── _fixed-width.less │ │ │ ├── _icons.less │ │ │ ├── _larger.less │ │ │ ├── _list.less │ │ │ ├── _mixins.less │ │ │ ├── _rotated-flipped.less │ │ │ ├── _screen-reader.less │ │ │ ├── _shims.less │ │ │ ├── _stacked.less │ │ │ ├── _variables.less │ │ │ ├── brands.less │ │ │ ├── fontawesome.less │ │ │ ├── regular.less │ │ │ ├── solid.less │ │ │ └── v4-shims.less │ │ │ ├── package.json │ │ │ ├── scss │ │ │ ├── _animated.scss │ │ │ ├── _bordered-pulled.scss │ │ │ ├── _core.scss │ │ │ ├── _fixed-width.scss │ │ │ ├── _icons.scss │ │ │ ├── _larger.scss │ │ │ ├── _list.scss │ │ │ ├── _mixins.scss │ │ │ ├── _rotated-flipped.scss │ │ │ ├── _screen-reader.scss │ │ │ ├── _shims.scss │ │ │ ├── _stacked.scss │ │ │ ├── _variables.scss │ │ │ ├── brands.scss │ │ │ ├── fontawesome.scss │ │ │ ├── regular.scss │ │ │ ├── solid.scss │ │ │ └── v4-shims.scss │ │ │ ├── sprites │ │ │ ├── brands.svg │ │ │ ├── regular.svg │ │ │ └── solid.svg │ │ │ ├── svgs │ │ │ ├── brands │ │ │ │ ├── 500px.svg │ │ │ │ ├── accessible-icon.svg │ │ │ │ ├── accusoft.svg │ │ │ │ ├── adn.svg │ │ │ │ ├── adversal.svg │ │ │ │ ├── affiliatetheme.svg │ │ │ │ ├── algolia.svg │ │ │ │ ├── alipay.svg │ │ │ │ ├── amazon-pay.svg │ │ │ │ ├── amazon.svg │ │ │ │ ├── amilia.svg │ │ │ │ ├── android.svg │ │ │ │ ├── angellist.svg │ │ │ │ ├── angrycreative.svg │ │ │ │ ├── angular.svg │ │ │ │ ├── app-store-ios.svg │ │ │ │ ├── app-store.svg │ │ │ │ ├── apper.svg │ │ │ │ ├── apple-pay.svg │ │ │ │ ├── apple.svg │ │ │ │ ├── asymmetrik.svg │ │ │ │ ├── audible.svg │ │ │ │ ├── autoprefixer.svg │ │ │ │ ├── avianex.svg │ │ │ │ ├── aviato.svg │ │ │ │ ├── aws.svg │ │ │ │ ├── bandcamp.svg │ │ │ │ ├── behance-square.svg │ │ │ │ ├── behance.svg │ │ │ │ ├── bimobject.svg │ │ │ │ ├── bitbucket.svg │ │ │ │ ├── bitcoin.svg │ │ │ │ ├── bity.svg │ │ │ │ ├── black-tie.svg │ │ │ │ ├── blackberry.svg │ │ │ │ ├── blogger-b.svg │ │ │ │ ├── blogger.svg │ │ │ │ ├── bluetooth-b.svg │ │ │ │ ├── bluetooth.svg │ │ │ │ ├── btc.svg │ │ │ │ ├── buromobelexperte.svg │ │ │ │ ├── buysellads.svg │ │ │ │ ├── cc-amazon-pay.svg │ │ │ │ ├── cc-amex.svg │ │ │ │ ├── cc-apple-pay.svg │ │ │ │ ├── cc-diners-club.svg │ │ │ │ ├── cc-discover.svg │ │ │ │ ├── cc-jcb.svg │ │ │ │ ├── cc-mastercard.svg │ │ │ │ ├── cc-paypal.svg │ │ │ │ ├── cc-stripe.svg │ │ │ │ ├── cc-visa.svg │ │ │ │ ├── centercode.svg │ │ │ │ ├── chrome.svg │ │ │ │ ├── cloudscale.svg │ │ │ │ ├── cloudsmith.svg │ │ │ │ ├── cloudversify.svg │ │ │ │ ├── codepen.svg │ │ │ │ ├── codiepie.svg │ │ │ │ ├── connectdevelop.svg │ │ │ │ ├── contao.svg │ │ │ │ ├── cpanel.svg │ │ │ │ ├── creative-commons-by.svg │ │ │ │ ├── creative-commons-nc-eu.svg │ │ │ │ ├── creative-commons-nc-jp.svg │ │ │ │ ├── creative-commons-nc.svg │ │ │ │ ├── creative-commons-nd.svg │ │ │ │ ├── creative-commons-pd-alt.svg │ │ │ │ ├── creative-commons-pd.svg │ │ │ │ ├── creative-commons-remix.svg │ │ │ │ ├── creative-commons-sa.svg │ │ │ │ ├── creative-commons-sampling-plus.svg │ │ │ │ ├── creative-commons-sampling.svg │ │ │ │ ├── creative-commons-share.svg │ │ │ │ ├── creative-commons.svg │ │ │ │ ├── css3-alt.svg │ │ │ │ ├── css3.svg │ │ │ │ ├── cuttlefish.svg │ │ │ │ ├── d-and-d.svg │ │ │ │ ├── dashcube.svg │ │ │ │ ├── delicious.svg │ │ │ │ ├── deploydog.svg │ │ │ │ ├── deskpro.svg │ │ │ │ ├── deviantart.svg │ │ │ │ ├── digg.svg │ │ │ │ ├── digital-ocean.svg │ │ │ │ ├── discord.svg │ │ │ │ ├── discourse.svg │ │ │ │ ├── dochub.svg │ │ │ │ ├── docker.svg │ │ │ │ ├── draft2digital.svg │ │ │ │ ├── dribbble-square.svg │ │ │ │ ├── dribbble.svg │ │ │ │ ├── dropbox.svg │ │ │ │ ├── drupal.svg │ │ │ │ ├── dyalog.svg │ │ │ │ ├── earlybirds.svg │ │ │ │ ├── ebay.svg │ │ │ │ ├── edge.svg │ │ │ │ ├── elementor.svg │ │ │ │ ├── ello.svg │ │ │ │ ├── ember.svg │ │ │ │ ├── empire.svg │ │ │ │ ├── envira.svg │ │ │ │ ├── erlang.svg │ │ │ │ ├── ethereum.svg │ │ │ │ ├── etsy.svg │ │ │ │ ├── expeditedssl.svg │ │ │ │ ├── facebook-f.svg │ │ │ │ ├── facebook-messenger.svg │ │ │ │ ├── facebook-square.svg │ │ │ │ ├── facebook.svg │ │ │ │ ├── firefox.svg │ │ │ │ ├── first-order-alt.svg │ │ │ │ ├── first-order.svg │ │ │ │ ├── firstdraft.svg │ │ │ │ ├── flickr.svg │ │ │ │ ├── flipboard.svg │ │ │ │ ├── fly.svg │ │ │ │ ├── font-awesome-alt.svg │ │ │ │ ├── font-awesome-flag.svg │ │ │ │ ├── font-awesome-logo-full.svg │ │ │ │ ├── font-awesome.svg │ │ │ │ ├── fonticons-fi.svg │ │ │ │ ├── fonticons.svg │ │ │ │ ├── fort-awesome-alt.svg │ │ │ │ ├── fort-awesome.svg │ │ │ │ ├── forumbee.svg │ │ │ │ ├── foursquare.svg │ │ │ │ ├── free-code-camp.svg │ │ │ │ ├── freebsd.svg │ │ │ │ ├── fulcrum.svg │ │ │ │ ├── galactic-republic.svg │ │ │ │ ├── galactic-senate.svg │ │ │ │ ├── get-pocket.svg │ │ │ │ ├── gg-circle.svg │ │ │ │ ├── gg.svg │ │ │ │ ├── git-square.svg │ │ │ │ ├── git.svg │ │ │ │ ├── github-alt.svg │ │ │ │ ├── github-square.svg │ │ │ │ ├── github.svg │ │ │ │ ├── gitkraken.svg │ │ │ │ ├── gitlab.svg │ │ │ │ ├── gitter.svg │ │ │ │ ├── glide-g.svg │ │ │ │ ├── glide.svg │ │ │ │ ├── gofore.svg │ │ │ │ ├── goodreads-g.svg │ │ │ │ ├── goodreads.svg │ │ │ │ ├── google-drive.svg │ │ │ │ ├── google-play.svg │ │ │ │ ├── google-plus-g.svg │ │ │ │ ├── google-plus-square.svg │ │ │ │ ├── google-plus.svg │ │ │ │ ├── google-wallet.svg │ │ │ │ ├── google.svg │ │ │ │ ├── gratipay.svg │ │ │ │ ├── grav.svg │ │ │ │ ├── gripfire.svg │ │ │ │ ├── grunt.svg │ │ │ │ ├── gulp.svg │ │ │ │ ├── hacker-news-square.svg │ │ │ │ ├── hacker-news.svg │ │ │ │ ├── hackerrank.svg │ │ │ │ ├── hips.svg │ │ │ │ ├── hire-a-helper.svg │ │ │ │ ├── hooli.svg │ │ │ │ ├── hornbill.svg │ │ │ │ ├── hotjar.svg │ │ │ │ ├── houzz.svg │ │ │ │ ├── html5.svg │ │ │ │ ├── hubspot.svg │ │ │ │ ├── imdb.svg │ │ │ │ ├── instagram.svg │ │ │ │ ├── internet-explorer.svg │ │ │ │ ├── ioxhost.svg │ │ │ │ ├── itunes-note.svg │ │ │ │ ├── itunes.svg │ │ │ │ ├── java.svg │ │ │ │ ├── jedi-order.svg │ │ │ │ ├── jenkins.svg │ │ │ │ ├── joget.svg │ │ │ │ ├── joomla.svg │ │ │ │ ├── js-square.svg │ │ │ │ ├── js.svg │ │ │ │ ├── jsfiddle.svg │ │ │ │ ├── kaggle.svg │ │ │ │ ├── keybase.svg │ │ │ │ ├── keycdn.svg │ │ │ │ ├── kickstarter-k.svg │ │ │ │ ├── kickstarter.svg │ │ │ │ ├── korvue.svg │ │ │ │ ├── laravel.svg │ │ │ │ ├── lastfm-square.svg │ │ │ │ ├── lastfm.svg │ │ │ │ ├── leanpub.svg │ │ │ │ ├── less.svg │ │ │ │ ├── line.svg │ │ │ │ ├── linkedin-in.svg │ │ │ │ ├── linkedin.svg │ │ │ │ ├── linode.svg │ │ │ │ ├── linux.svg │ │ │ │ ├── lyft.svg │ │ │ │ ├── magento.svg │ │ │ │ ├── mailchimp.svg │ │ │ │ ├── mandalorian.svg │ │ │ │ ├── markdown.svg │ │ │ │ ├── mastodon.svg │ │ │ │ ├── maxcdn.svg │ │ │ │ ├── medapps.svg │ │ │ │ ├── medium-m.svg │ │ │ │ ├── medium.svg │ │ │ │ ├── medrt.svg │ │ │ │ ├── meetup.svg │ │ │ │ ├── megaport.svg │ │ │ │ ├── microsoft.svg │ │ │ │ ├── mix.svg │ │ │ │ ├── mixcloud.svg │ │ │ │ ├── mizuni.svg │ │ │ │ ├── modx.svg │ │ │ │ ├── monero.svg │ │ │ │ ├── napster.svg │ │ │ │ ├── neos.svg │ │ │ │ ├── nimblr.svg │ │ │ │ ├── nintendo-switch.svg │ │ │ │ ├── node-js.svg │ │ │ │ ├── node.svg │ │ │ │ ├── npm.svg │ │ │ │ ├── ns8.svg │ │ │ │ ├── nutritionix.svg │ │ │ │ ├── odnoklassniki-square.svg │ │ │ │ ├── odnoklassniki.svg │ │ │ │ ├── old-republic.svg │ │ │ │ ├── opencart.svg │ │ │ │ ├── openid.svg │ │ │ │ ├── opera.svg │ │ │ │ ├── optin-monster.svg │ │ │ │ ├── osi.svg │ │ │ │ ├── page4.svg │ │ │ │ ├── pagelines.svg │ │ │ │ ├── palfed.svg │ │ │ │ ├── patreon.svg │ │ │ │ ├── paypal.svg │ │ │ │ ├── periscope.svg │ │ │ │ ├── phabricator.svg │ │ │ │ ├── phoenix-framework.svg │ │ │ │ ├── phoenix-squadron.svg │ │ │ │ ├── php.svg │ │ │ │ ├── pied-piper-alt.svg │ │ │ │ ├── pied-piper-hat.svg │ │ │ │ ├── pied-piper-pp.svg │ │ │ │ ├── pied-piper.svg │ │ │ │ ├── pinterest-p.svg │ │ │ │ ├── pinterest-square.svg │ │ │ │ ├── pinterest.svg │ │ │ │ ├── playstation.svg │ │ │ │ ├── product-hunt.svg │ │ │ │ ├── pushed.svg │ │ │ │ ├── python.svg │ │ │ │ ├── qq.svg │ │ │ │ ├── quinscape.svg │ │ │ │ ├── quora.svg │ │ │ │ ├── r-project.svg │ │ │ │ ├── ravelry.svg │ │ │ │ ├── react.svg │ │ │ │ ├── readme.svg │ │ │ │ ├── rebel.svg │ │ │ │ ├── red-river.svg │ │ │ │ ├── reddit-alien.svg │ │ │ │ ├── reddit-square.svg │ │ │ │ ├── reddit.svg │ │ │ │ ├── rendact.svg │ │ │ │ ├── renren.svg │ │ │ │ ├── replyd.svg │ │ │ │ ├── researchgate.svg │ │ │ │ ├── resolving.svg │ │ │ │ ├── rev.svg │ │ │ │ ├── rocketchat.svg │ │ │ │ ├── rockrms.svg │ │ │ │ ├── safari.svg │ │ │ │ ├── sass.svg │ │ │ │ ├── schlix.svg │ │ │ │ ├── scribd.svg │ │ │ │ ├── searchengin.svg │ │ │ │ ├── sellcast.svg │ │ │ │ ├── sellsy.svg │ │ │ │ ├── servicestack.svg │ │ │ │ ├── shirtsinbulk.svg │ │ │ │ ├── shopware.svg │ │ │ │ ├── simplybuilt.svg │ │ │ │ ├── sistrix.svg │ │ │ │ ├── sith.svg │ │ │ │ ├── skyatlas.svg │ │ │ │ ├── skype.svg │ │ │ │ ├── slack-hash.svg │ │ │ │ ├── slack.svg │ │ │ │ ├── slideshare.svg │ │ │ │ ├── snapchat-ghost.svg │ │ │ │ ├── snapchat-square.svg │ │ │ │ ├── snapchat.svg │ │ │ │ ├── soundcloud.svg │ │ │ │ ├── speakap.svg │ │ │ │ ├── spotify.svg │ │ │ │ ├── squarespace.svg │ │ │ │ ├── stack-exchange.svg │ │ │ │ ├── stack-overflow.svg │ │ │ │ ├── staylinked.svg │ │ │ │ ├── steam-square.svg │ │ │ │ ├── steam-symbol.svg │ │ │ │ ├── steam.svg │ │ │ │ ├── sticker-mule.svg │ │ │ │ ├── strava.svg │ │ │ │ ├── stripe-s.svg │ │ │ │ ├── stripe.svg │ │ │ │ ├── studiovinari.svg │ │ │ │ ├── stumbleupon-circle.svg │ │ │ │ ├── stumbleupon.svg │ │ │ │ ├── superpowers.svg │ │ │ │ ├── supple.svg │ │ │ │ ├── teamspeak.svg │ │ │ │ ├── telegram-plane.svg │ │ │ │ ├── telegram.svg │ │ │ │ ├── tencent-weibo.svg │ │ │ │ ├── the-red-yeti.svg │ │ │ │ ├── themeco.svg │ │ │ │ ├── themeisle.svg │ │ │ │ ├── trade-federation.svg │ │ │ │ ├── trello.svg │ │ │ │ ├── tripadvisor.svg │ │ │ │ ├── tumblr-square.svg │ │ │ │ ├── tumblr.svg │ │ │ │ ├── twitch.svg │ │ │ │ ├── twitter-square.svg │ │ │ │ ├── twitter.svg │ │ │ │ ├── typo3.svg │ │ │ │ ├── uber.svg │ │ │ │ ├── uikit.svg │ │ │ │ ├── uniregistry.svg │ │ │ │ ├── untappd.svg │ │ │ │ ├── usb.svg │ │ │ │ ├── ussunnah.svg │ │ │ │ ├── vaadin.svg │ │ │ │ ├── viacoin.svg │ │ │ │ ├── viadeo-square.svg │ │ │ │ ├── viadeo.svg │ │ │ │ ├── viber.svg │ │ │ │ ├── vimeo-square.svg │ │ │ │ ├── vimeo-v.svg │ │ │ │ ├── vimeo.svg │ │ │ │ ├── vine.svg │ │ │ │ ├── vk.svg │ │ │ │ ├── vnv.svg │ │ │ │ ├── vuejs.svg │ │ │ │ ├── weebly.svg │ │ │ │ ├── weibo.svg │ │ │ │ ├── weixin.svg │ │ │ │ ├── whatsapp-square.svg │ │ │ │ ├── whatsapp.svg │ │ │ │ ├── whmcs.svg │ │ │ │ ├── wikipedia-w.svg │ │ │ │ ├── windows.svg │ │ │ │ ├── wix.svg │ │ │ │ ├── wolf-pack-battalion.svg │ │ │ │ ├── wordpress-simple.svg │ │ │ │ ├── wordpress.svg │ │ │ │ ├── wpbeginner.svg │ │ │ │ ├── wpexplorer.svg │ │ │ │ ├── wpforms.svg │ │ │ │ ├── xbox.svg │ │ │ │ ├── xing-square.svg │ │ │ │ ├── xing.svg │ │ │ │ ├── y-combinator.svg │ │ │ │ ├── yahoo.svg │ │ │ │ ├── yandex-international.svg │ │ │ │ ├── yandex.svg │ │ │ │ ├── yelp.svg │ │ │ │ ├── yoast.svg │ │ │ │ ├── youtube-square.svg │ │ │ │ ├── youtube.svg │ │ │ │ └── zhihu.svg │ │ │ ├── regular │ │ │ │ ├── address-book.svg │ │ │ │ ├── address-card.svg │ │ │ │ ├── angry.svg │ │ │ │ ├── arrow-alt-circle-down.svg │ │ │ │ ├── arrow-alt-circle-left.svg │ │ │ │ ├── arrow-alt-circle-right.svg │ │ │ │ ├── arrow-alt-circle-up.svg │ │ │ │ ├── bell-slash.svg │ │ │ │ ├── bell.svg │ │ │ │ ├── bookmark.svg │ │ │ │ ├── building.svg │ │ │ │ ├── calendar-alt.svg │ │ │ │ ├── calendar-check.svg │ │ │ │ ├── calendar-minus.svg │ │ │ │ ├── calendar-plus.svg │ │ │ │ ├── calendar-times.svg │ │ │ │ ├── calendar.svg │ │ │ │ ├── caret-square-down.svg │ │ │ │ ├── caret-square-left.svg │ │ │ │ ├── caret-square-right.svg │ │ │ │ ├── caret-square-up.svg │ │ │ │ ├── chart-bar.svg │ │ │ │ ├── check-circle.svg │ │ │ │ ├── check-square.svg │ │ │ │ ├── circle.svg │ │ │ │ ├── clipboard.svg │ │ │ │ ├── clock.svg │ │ │ │ ├── clone.svg │ │ │ │ ├── closed-captioning.svg │ │ │ │ ├── comment-alt.svg │ │ │ │ ├── comment-dots.svg │ │ │ │ ├── comment.svg │ │ │ │ ├── comments.svg │ │ │ │ ├── compass.svg │ │ │ │ ├── copy.svg │ │ │ │ ├── copyright.svg │ │ │ │ ├── credit-card.svg │ │ │ │ ├── dizzy.svg │ │ │ │ ├── dot-circle.svg │ │ │ │ ├── edit.svg │ │ │ │ ├── envelope-open.svg │ │ │ │ ├── envelope.svg │ │ │ │ ├── eye-slash.svg │ │ │ │ ├── eye.svg │ │ │ │ ├── file-alt.svg │ │ │ │ ├── file-archive.svg │ │ │ │ ├── file-audio.svg │ │ │ │ ├── file-code.svg │ │ │ │ ├── file-excel.svg │ │ │ │ ├── file-image.svg │ │ │ │ ├── file-pdf.svg │ │ │ │ ├── file-powerpoint.svg │ │ │ │ ├── file-video.svg │ │ │ │ ├── file-word.svg │ │ │ │ ├── file.svg │ │ │ │ ├── flag.svg │ │ │ │ ├── flushed.svg │ │ │ │ ├── folder-open.svg │ │ │ │ ├── folder.svg │ │ │ │ ├── font-awesome-logo-full.svg │ │ │ │ ├── frown-open.svg │ │ │ │ ├── frown.svg │ │ │ │ ├── futbol.svg │ │ │ │ ├── gem.svg │ │ │ │ ├── grimace.svg │ │ │ │ ├── grin-alt.svg │ │ │ │ ├── grin-beam-sweat.svg │ │ │ │ ├── grin-beam.svg │ │ │ │ ├── grin-hearts.svg │ │ │ │ ├── grin-squint-tears.svg │ │ │ │ ├── grin-squint.svg │ │ │ │ ├── grin-stars.svg │ │ │ │ ├── grin-tears.svg │ │ │ │ ├── grin-tongue-squint.svg │ │ │ │ ├── grin-tongue-wink.svg │ │ │ │ ├── grin-tongue.svg │ │ │ │ ├── grin-wink.svg │ │ │ │ ├── grin.svg │ │ │ │ ├── hand-lizard.svg │ │ │ │ ├── hand-paper.svg │ │ │ │ ├── hand-peace.svg │ │ │ │ ├── hand-point-down.svg │ │ │ │ ├── hand-point-left.svg │ │ │ │ ├── hand-point-right.svg │ │ │ │ ├── hand-point-up.svg │ │ │ │ ├── hand-pointer.svg │ │ │ │ ├── hand-rock.svg │ │ │ │ ├── hand-scissors.svg │ │ │ │ ├── hand-spock.svg │ │ │ │ ├── handshake.svg │ │ │ │ ├── hdd.svg │ │ │ │ ├── heart.svg │ │ │ │ ├── hospital.svg │ │ │ │ ├── hourglass.svg │ │ │ │ ├── id-badge.svg │ │ │ │ ├── id-card.svg │ │ │ │ ├── image.svg │ │ │ │ ├── images.svg │ │ │ │ ├── keyboard.svg │ │ │ │ ├── kiss-beam.svg │ │ │ │ ├── kiss-wink-heart.svg │ │ │ │ ├── kiss.svg │ │ │ │ ├── laugh-beam.svg │ │ │ │ ├── laugh-squint.svg │ │ │ │ ├── laugh-wink.svg │ │ │ │ ├── laugh.svg │ │ │ │ ├── lemon.svg │ │ │ │ ├── life-ring.svg │ │ │ │ ├── lightbulb.svg │ │ │ │ ├── list-alt.svg │ │ │ │ ├── map.svg │ │ │ │ ├── meh-blank.svg │ │ │ │ ├── meh-rolling-eyes.svg │ │ │ │ ├── meh.svg │ │ │ │ ├── minus-square.svg │ │ │ │ ├── money-bill-alt.svg │ │ │ │ ├── moon.svg │ │ │ │ ├── newspaper.svg │ │ │ │ ├── object-group.svg │ │ │ │ ├── object-ungroup.svg │ │ │ │ ├── paper-plane.svg │ │ │ │ ├── pause-circle.svg │ │ │ │ ├── play-circle.svg │ │ │ │ ├── plus-square.svg │ │ │ │ ├── question-circle.svg │ │ │ │ ├── registered.svg │ │ │ │ ├── sad-cry.svg │ │ │ │ ├── sad-tear.svg │ │ │ │ ├── save.svg │ │ │ │ ├── share-square.svg │ │ │ │ ├── smile-beam.svg │ │ │ │ ├── smile-wink.svg │ │ │ │ ├── smile.svg │ │ │ │ ├── snowflake.svg │ │ │ │ ├── square.svg │ │ │ │ ├── star-half.svg │ │ │ │ ├── star.svg │ │ │ │ ├── sticky-note.svg │ │ │ │ ├── stop-circle.svg │ │ │ │ ├── sun.svg │ │ │ │ ├── surprise.svg │ │ │ │ ├── thumbs-down.svg │ │ │ │ ├── thumbs-up.svg │ │ │ │ ├── times-circle.svg │ │ │ │ ├── tired.svg │ │ │ │ ├── trash-alt.svg │ │ │ │ ├── user-circle.svg │ │ │ │ ├── user.svg │ │ │ │ ├── window-close.svg │ │ │ │ ├── window-maximize.svg │ │ │ │ ├── window-minimize.svg │ │ │ │ └── window-restore.svg │ │ │ └── solid │ │ │ │ ├── ad.svg │ │ │ │ ├── address-book.svg │ │ │ │ ├── address-card.svg │ │ │ │ ├── adjust.svg │ │ │ │ ├── air-freshener.svg │ │ │ │ ├── align-center.svg │ │ │ │ ├── align-justify.svg │ │ │ │ ├── align-left.svg │ │ │ │ ├── align-right.svg │ │ │ │ ├── allergies.svg │ │ │ │ ├── ambulance.svg │ │ │ │ ├── american-sign-language-interpreting.svg │ │ │ │ ├── anchor.svg │ │ │ │ ├── angle-double-down.svg │ │ │ │ ├── angle-double-left.svg │ │ │ │ ├── angle-double-right.svg │ │ │ │ ├── angle-double-up.svg │ │ │ │ ├── angle-down.svg │ │ │ │ ├── angle-left.svg │ │ │ │ ├── angle-right.svg │ │ │ │ ├── angle-up.svg │ │ │ │ ├── angry.svg │ │ │ │ ├── ankh.svg │ │ │ │ ├── apple-alt.svg │ │ │ │ ├── archive.svg │ │ │ │ ├── archway.svg │ │ │ │ ├── arrow-alt-circle-down.svg │ │ │ │ ├── arrow-alt-circle-left.svg │ │ │ │ ├── arrow-alt-circle-right.svg │ │ │ │ ├── arrow-alt-circle-up.svg │ │ │ │ ├── arrow-circle-down.svg │ │ │ │ ├── arrow-circle-left.svg │ │ │ │ ├── arrow-circle-right.svg │ │ │ │ ├── arrow-circle-up.svg │ │ │ │ ├── arrow-down.svg │ │ │ │ ├── arrow-left.svg │ │ │ │ ├── arrow-right.svg │ │ │ │ ├── arrow-up.svg │ │ │ │ ├── arrows-alt-h.svg │ │ │ │ ├── arrows-alt-v.svg │ │ │ │ ├── arrows-alt.svg │ │ │ │ ├── assistive-listening-systems.svg │ │ │ │ ├── asterisk.svg │ │ │ │ ├── at.svg │ │ │ │ ├── atlas.svg │ │ │ │ ├── atom.svg │ │ │ │ ├── audio-description.svg │ │ │ │ ├── award.svg │ │ │ │ ├── backspace.svg │ │ │ │ ├── backward.svg │ │ │ │ ├── balance-scale.svg │ │ │ │ ├── ban.svg │ │ │ │ ├── band-aid.svg │ │ │ │ ├── barcode.svg │ │ │ │ ├── bars.svg │ │ │ │ ├── baseball-ball.svg │ │ │ │ ├── basketball-ball.svg │ │ │ │ ├── bath.svg │ │ │ │ ├── battery-empty.svg │ │ │ │ ├── battery-full.svg │ │ │ │ ├── battery-half.svg │ │ │ │ ├── battery-quarter.svg │ │ │ │ ├── battery-three-quarters.svg │ │ │ │ ├── bed.svg │ │ │ │ ├── beer.svg │ │ │ │ ├── bell-slash.svg │ │ │ │ ├── bell.svg │ │ │ │ ├── bezier-curve.svg │ │ │ │ ├── bible.svg │ │ │ │ ├── bicycle.svg │ │ │ │ ├── binoculars.svg │ │ │ │ ├── birthday-cake.svg │ │ │ │ ├── blender.svg │ │ │ │ ├── blind.svg │ │ │ │ ├── bold.svg │ │ │ │ ├── bolt.svg │ │ │ │ ├── bomb.svg │ │ │ │ ├── bone.svg │ │ │ │ ├── bong.svg │ │ │ │ ├── book-open.svg │ │ │ │ ├── book-reader.svg │ │ │ │ ├── book.svg │ │ │ │ ├── bookmark.svg │ │ │ │ ├── bowling-ball.svg │ │ │ │ ├── box-open.svg │ │ │ │ ├── box.svg │ │ │ │ ├── boxes.svg │ │ │ │ ├── braille.svg │ │ │ │ ├── brain.svg │ │ │ │ ├── briefcase-medical.svg │ │ │ │ ├── briefcase.svg │ │ │ │ ├── broadcast-tower.svg │ │ │ │ ├── broom.svg │ │ │ │ ├── brush.svg │ │ │ │ ├── bug.svg │ │ │ │ ├── building.svg │ │ │ │ ├── bullhorn.svg │ │ │ │ ├── bullseye.svg │ │ │ │ ├── burn.svg │ │ │ │ ├── bus-alt.svg │ │ │ │ ├── bus.svg │ │ │ │ ├── business-time.svg │ │ │ │ ├── calculator.svg │ │ │ │ ├── calendar-alt.svg │ │ │ │ ├── calendar-check.svg │ │ │ │ ├── calendar-minus.svg │ │ │ │ ├── calendar-plus.svg │ │ │ │ ├── calendar-times.svg │ │ │ │ ├── calendar.svg │ │ │ │ ├── camera-retro.svg │ │ │ │ ├── camera.svg │ │ │ │ ├── cannabis.svg │ │ │ │ ├── capsules.svg │ │ │ │ ├── car-alt.svg │ │ │ │ ├── car-battery.svg │ │ │ │ ├── car-crash.svg │ │ │ │ ├── car-side.svg │ │ │ │ ├── car.svg │ │ │ │ ├── caret-down.svg │ │ │ │ ├── caret-left.svg │ │ │ │ ├── caret-right.svg │ │ │ │ ├── caret-square-down.svg │ │ │ │ ├── caret-square-left.svg │ │ │ │ ├── caret-square-right.svg │ │ │ │ ├── caret-square-up.svg │ │ │ │ ├── caret-up.svg │ │ │ │ ├── cart-arrow-down.svg │ │ │ │ ├── cart-plus.svg │ │ │ │ ├── certificate.svg │ │ │ │ ├── chalkboard-teacher.svg │ │ │ │ ├── chalkboard.svg │ │ │ │ ├── charging-station.svg │ │ │ │ ├── chart-area.svg │ │ │ │ ├── chart-bar.svg │ │ │ │ ├── chart-line.svg │ │ │ │ ├── chart-pie.svg │ │ │ │ ├── check-circle.svg │ │ │ │ ├── check-double.svg │ │ │ │ ├── check-square.svg │ │ │ │ ├── check.svg │ │ │ │ ├── chess-bishop.svg │ │ │ │ ├── chess-board.svg │ │ │ │ ├── chess-king.svg │ │ │ │ ├── chess-knight.svg │ │ │ │ ├── chess-pawn.svg │ │ │ │ ├── chess-queen.svg │ │ │ │ ├── chess-rook.svg │ │ │ │ ├── chess.svg │ │ │ │ ├── chevron-circle-down.svg │ │ │ │ ├── chevron-circle-left.svg │ │ │ │ ├── chevron-circle-right.svg │ │ │ │ ├── chevron-circle-up.svg │ │ │ │ ├── chevron-down.svg │ │ │ │ ├── chevron-left.svg │ │ │ │ ├── chevron-right.svg │ │ │ │ ├── chevron-up.svg │ │ │ │ ├── child.svg │ │ │ │ ├── church.svg │ │ │ │ ├── circle-notch.svg │ │ │ │ ├── circle.svg │ │ │ │ ├── city.svg │ │ │ │ ├── clipboard-check.svg │ │ │ │ ├── clipboard-list.svg │ │ │ │ ├── clipboard.svg │ │ │ │ ├── clock.svg │ │ │ │ ├── clone.svg │ │ │ │ ├── closed-captioning.svg │ │ │ │ ├── cloud-download-alt.svg │ │ │ │ ├── cloud-upload-alt.svg │ │ │ │ ├── cloud.svg │ │ │ │ ├── cocktail.svg │ │ │ │ ├── code-branch.svg │ │ │ │ ├── code.svg │ │ │ │ ├── coffee.svg │ │ │ │ ├── cog.svg │ │ │ │ ├── cogs.svg │ │ │ │ ├── coins.svg │ │ │ │ ├── columns.svg │ │ │ │ ├── comment-alt.svg │ │ │ │ ├── comment-dollar.svg │ │ │ │ ├── comment-dots.svg │ │ │ │ ├── comment-slash.svg │ │ │ │ ├── comment.svg │ │ │ │ ├── comments-dollar.svg │ │ │ │ ├── comments.svg │ │ │ │ ├── compact-disc.svg │ │ │ │ ├── compass.svg │ │ │ │ ├── compress.svg │ │ │ │ ├── concierge-bell.svg │ │ │ │ ├── cookie-bite.svg │ │ │ │ ├── cookie.svg │ │ │ │ ├── copy.svg │ │ │ │ ├── copyright.svg │ │ │ │ ├── couch.svg │ │ │ │ ├── credit-card.svg │ │ │ │ ├── crop-alt.svg │ │ │ │ ├── crop.svg │ │ │ │ ├── cross.svg │ │ │ │ ├── crosshairs.svg │ │ │ │ ├── crow.svg │ │ │ │ ├── crown.svg │ │ │ │ ├── cube.svg │ │ │ │ ├── cubes.svg │ │ │ │ ├── cut.svg │ │ │ │ ├── database.svg │ │ │ │ ├── deaf.svg │ │ │ │ ├── desktop.svg │ │ │ │ ├── dharmachakra.svg │ │ │ │ ├── diagnoses.svg │ │ │ │ ├── dice-five.svg │ │ │ │ ├── dice-four.svg │ │ │ │ ├── dice-one.svg │ │ │ │ ├── dice-six.svg │ │ │ │ ├── dice-three.svg │ │ │ │ ├── dice-two.svg │ │ │ │ ├── dice.svg │ │ │ │ ├── digital-tachograph.svg │ │ │ │ ├── directions.svg │ │ │ │ ├── divide.svg │ │ │ │ ├── dizzy.svg │ │ │ │ ├── dna.svg │ │ │ │ ├── dollar-sign.svg │ │ │ │ ├── dolly-flatbed.svg │ │ │ │ ├── dolly.svg │ │ │ │ ├── donate.svg │ │ │ │ ├── door-closed.svg │ │ │ │ ├── door-open.svg │ │ │ │ ├── dot-circle.svg │ │ │ │ ├── dove.svg │ │ │ │ ├── download.svg │ │ │ │ ├── drafting-compass.svg │ │ │ │ ├── draw-polygon.svg │ │ │ │ ├── drum-steelpan.svg │ │ │ │ ├── drum.svg │ │ │ │ ├── dumbbell.svg │ │ │ │ ├── edit.svg │ │ │ │ ├── eject.svg │ │ │ │ ├── ellipsis-h.svg │ │ │ │ ├── ellipsis-v.svg │ │ │ │ ├── envelope-open-text.svg │ │ │ │ ├── envelope-open.svg │ │ │ │ ├── envelope-square.svg │ │ │ │ ├── envelope.svg │ │ │ │ ├── equals.svg │ │ │ │ ├── eraser.svg │ │ │ │ ├── euro-sign.svg │ │ │ │ ├── exchange-alt.svg │ │ │ │ ├── exclamation-circle.svg │ │ │ │ ├── exclamation-triangle.svg │ │ │ │ ├── exclamation.svg │ │ │ │ ├── expand-arrows-alt.svg │ │ │ │ ├── expand.svg │ │ │ │ ├── external-link-alt.svg │ │ │ │ ├── external-link-square-alt.svg │ │ │ │ ├── eye-dropper.svg │ │ │ │ ├── eye-slash.svg │ │ │ │ ├── eye.svg │ │ │ │ ├── fast-backward.svg │ │ │ │ ├── fast-forward.svg │ │ │ │ ├── fax.svg │ │ │ │ ├── feather-alt.svg │ │ │ │ ├── feather.svg │ │ │ │ ├── female.svg │ │ │ │ ├── fighter-jet.svg │ │ │ │ ├── file-alt.svg │ │ │ │ ├── file-archive.svg │ │ │ │ ├── file-audio.svg │ │ │ │ ├── file-code.svg │ │ │ │ ├── file-contract.svg │ │ │ │ ├── file-download.svg │ │ │ │ ├── file-excel.svg │ │ │ │ ├── file-export.svg │ │ │ │ ├── file-image.svg │ │ │ │ ├── file-import.svg │ │ │ │ ├── file-invoice-dollar.svg │ │ │ │ ├── file-invoice.svg │ │ │ │ ├── file-medical-alt.svg │ │ │ │ ├── file-medical.svg │ │ │ │ ├── file-pdf.svg │ │ │ │ ├── file-powerpoint.svg │ │ │ │ ├── file-prescription.svg │ │ │ │ ├── file-signature.svg │ │ │ │ ├── file-upload.svg │ │ │ │ ├── file-video.svg │ │ │ │ ├── file-word.svg │ │ │ │ ├── file.svg │ │ │ │ ├── fill-drip.svg │ │ │ │ ├── fill.svg │ │ │ │ ├── film.svg │ │ │ │ ├── filter.svg │ │ │ │ ├── fingerprint.svg │ │ │ │ ├── fire-extinguisher.svg │ │ │ │ ├── fire.svg │ │ │ │ ├── first-aid.svg │ │ │ │ ├── fish.svg │ │ │ │ ├── flag-checkered.svg │ │ │ │ ├── flag.svg │ │ │ │ ├── flask.svg │ │ │ │ ├── flushed.svg │ │ │ │ ├── folder-minus.svg │ │ │ │ ├── folder-open.svg │ │ │ │ ├── folder-plus.svg │ │ │ │ ├── folder.svg │ │ │ │ ├── font-awesome-logo-full.svg │ │ │ │ ├── font.svg │ │ │ │ ├── football-ball.svg │ │ │ │ ├── forward.svg │ │ │ │ ├── frog.svg │ │ │ │ ├── frown-open.svg │ │ │ │ ├── frown.svg │ │ │ │ ├── funnel-dollar.svg │ │ │ │ ├── futbol.svg │ │ │ │ ├── gamepad.svg │ │ │ │ ├── gas-pump.svg │ │ │ │ ├── gavel.svg │ │ │ │ ├── gem.svg │ │ │ │ ├── genderless.svg │ │ │ │ ├── gift.svg │ │ │ │ ├── glass-martini-alt.svg │ │ │ │ ├── glass-martini.svg │ │ │ │ ├── glasses.svg │ │ │ │ ├── globe-africa.svg │ │ │ │ ├── globe-americas.svg │ │ │ │ ├── globe-asia.svg │ │ │ │ ├── globe.svg │ │ │ │ ├── golf-ball.svg │ │ │ │ ├── gopuram.svg │ │ │ │ ├── graduation-cap.svg │ │ │ │ ├── greater-than-equal.svg │ │ │ │ ├── greater-than.svg │ │ │ │ ├── grimace.svg │ │ │ │ ├── grin-alt.svg │ │ │ │ ├── grin-beam-sweat.svg │ │ │ │ ├── grin-beam.svg │ │ │ │ ├── grin-hearts.svg │ │ │ │ ├── grin-squint-tears.svg │ │ │ │ ├── grin-squint.svg │ │ │ │ ├── grin-stars.svg │ │ │ │ ├── grin-tears.svg │ │ │ │ ├── grin-tongue-squint.svg │ │ │ │ ├── grin-tongue-wink.svg │ │ │ │ ├── grin-tongue.svg │ │ │ │ ├── grin-wink.svg │ │ │ │ ├── grin.svg │ │ │ │ ├── grip-horizontal.svg │ │ │ │ ├── grip-vertical.svg │ │ │ │ ├── h-square.svg │ │ │ │ ├── hamsa.svg │ │ │ │ ├── hand-holding-heart.svg │ │ │ │ ├── hand-holding-usd.svg │ │ │ │ ├── hand-holding.svg │ │ │ │ ├── hand-lizard.svg │ │ │ │ ├── hand-paper.svg │ │ │ │ ├── hand-peace.svg │ │ │ │ ├── hand-point-down.svg │ │ │ │ ├── hand-point-left.svg │ │ │ │ ├── hand-point-right.svg │ │ │ │ ├── hand-point-up.svg │ │ │ │ ├── hand-pointer.svg │ │ │ │ ├── hand-rock.svg │ │ │ │ ├── hand-scissors.svg │ │ │ │ ├── hand-spock.svg │ │ │ │ ├── hands-helping.svg │ │ │ │ ├── hands.svg │ │ │ │ ├── handshake.svg │ │ │ │ ├── hashtag.svg │ │ │ │ ├── haykal.svg │ │ │ │ ├── hdd.svg │ │ │ │ ├── heading.svg │ │ │ │ ├── headphones-alt.svg │ │ │ │ ├── headphones.svg │ │ │ │ ├── headset.svg │ │ │ │ ├── heart.svg │ │ │ │ ├── heartbeat.svg │ │ │ │ ├── helicopter.svg │ │ │ │ ├── highlighter.svg │ │ │ │ ├── history.svg │ │ │ │ ├── hockey-puck.svg │ │ │ │ ├── home.svg │ │ │ │ ├── hospital-alt.svg │ │ │ │ ├── hospital-symbol.svg │ │ │ │ ├── hospital.svg │ │ │ │ ├── hot-tub.svg │ │ │ │ ├── hotel.svg │ │ │ │ ├── hourglass-end.svg │ │ │ │ ├── hourglass-half.svg │ │ │ │ ├── hourglass-start.svg │ │ │ │ ├── hourglass.svg │ │ │ │ ├── i-cursor.svg │ │ │ │ ├── id-badge.svg │ │ │ │ ├── id-card-alt.svg │ │ │ │ ├── id-card.svg │ │ │ │ ├── image.svg │ │ │ │ ├── images.svg │ │ │ │ ├── inbox.svg │ │ │ │ ├── indent.svg │ │ │ │ ├── industry.svg │ │ │ │ ├── infinity.svg │ │ │ │ ├── info-circle.svg │ │ │ │ ├── info.svg │ │ │ │ ├── italic.svg │ │ │ │ ├── jedi.svg │ │ │ │ ├── joint.svg │ │ │ │ ├── journal-whills.svg │ │ │ │ ├── kaaba.svg │ │ │ │ ├── key.svg │ │ │ │ ├── keyboard.svg │ │ │ │ ├── khanda.svg │ │ │ │ ├── kiss-beam.svg │ │ │ │ ├── kiss-wink-heart.svg │ │ │ │ ├── kiss.svg │ │ │ │ ├── kiwi-bird.svg │ │ │ │ ├── landmark.svg │ │ │ │ ├── language.svg │ │ │ │ ├── laptop-code.svg │ │ │ │ ├── laptop.svg │ │ │ │ ├── laugh-beam.svg │ │ │ │ ├── laugh-squint.svg │ │ │ │ ├── laugh-wink.svg │ │ │ │ ├── laugh.svg │ │ │ │ ├── layer-group.svg │ │ │ │ ├── leaf.svg │ │ │ │ ├── lemon.svg │ │ │ │ ├── less-than-equal.svg │ │ │ │ ├── less-than.svg │ │ │ │ ├── level-down-alt.svg │ │ │ │ ├── level-up-alt.svg │ │ │ │ ├── life-ring.svg │ │ │ │ ├── lightbulb.svg │ │ │ │ ├── link.svg │ │ │ │ ├── lira-sign.svg │ │ │ │ ├── list-alt.svg │ │ │ │ ├── list-ol.svg │ │ │ │ ├── list-ul.svg │ │ │ │ ├── list.svg │ │ │ │ ├── location-arrow.svg │ │ │ │ ├── lock-open.svg │ │ │ │ ├── lock.svg │ │ │ │ ├── long-arrow-alt-down.svg │ │ │ │ ├── long-arrow-alt-left.svg │ │ │ │ ├── long-arrow-alt-right.svg │ │ │ │ ├── long-arrow-alt-up.svg │ │ │ │ ├── low-vision.svg │ │ │ │ ├── luggage-cart.svg │ │ │ │ ├── magic.svg │ │ │ │ ├── magnet.svg │ │ │ │ ├── mail-bulk.svg │ │ │ │ ├── male.svg │ │ │ │ ├── map-marked-alt.svg │ │ │ │ ├── map-marked.svg │ │ │ │ ├── map-marker-alt.svg │ │ │ │ ├── map-marker.svg │ │ │ │ ├── map-pin.svg │ │ │ │ ├── map-signs.svg │ │ │ │ ├── map.svg │ │ │ │ ├── marker.svg │ │ │ │ ├── mars-double.svg │ │ │ │ ├── mars-stroke-h.svg │ │ │ │ ├── mars-stroke-v.svg │ │ │ │ ├── mars-stroke.svg │ │ │ │ ├── mars.svg │ │ │ │ ├── medal.svg │ │ │ │ ├── medkit.svg │ │ │ │ ├── meh-blank.svg │ │ │ │ ├── meh-rolling-eyes.svg │ │ │ │ ├── meh.svg │ │ │ │ ├── memory.svg │ │ │ │ ├── menorah.svg │ │ │ │ ├── mercury.svg │ │ │ │ ├── microchip.svg │ │ │ │ ├── microphone-alt-slash.svg │ │ │ │ ├── microphone-alt.svg │ │ │ │ ├── microphone-slash.svg │ │ │ │ ├── microphone.svg │ │ │ │ ├── microscope.svg │ │ │ │ ├── minus-circle.svg │ │ │ │ ├── minus-square.svg │ │ │ │ ├── minus.svg │ │ │ │ ├── mobile-alt.svg │ │ │ │ ├── mobile.svg │ │ │ │ ├── money-bill-alt.svg │ │ │ │ ├── money-bill-wave-alt.svg │ │ │ │ ├── money-bill-wave.svg │ │ │ │ ├── money-bill.svg │ │ │ │ ├── money-check-alt.svg │ │ │ │ ├── money-check.svg │ │ │ │ ├── monument.svg │ │ │ │ ├── moon.svg │ │ │ │ ├── mortar-pestle.svg │ │ │ │ ├── mosque.svg │ │ │ │ ├── motorcycle.svg │ │ │ │ ├── mouse-pointer.svg │ │ │ │ ├── music.svg │ │ │ │ ├── neuter.svg │ │ │ │ ├── newspaper.svg │ │ │ │ ├── not-equal.svg │ │ │ │ ├── notes-medical.svg │ │ │ │ ├── object-group.svg │ │ │ │ ├── object-ungroup.svg │ │ │ │ ├── oil-can.svg │ │ │ │ ├── om.svg │ │ │ │ ├── outdent.svg │ │ │ │ ├── paint-brush.svg │ │ │ │ ├── paint-roller.svg │ │ │ │ ├── palette.svg │ │ │ │ ├── pallet.svg │ │ │ │ ├── paper-plane.svg │ │ │ │ ├── paperclip.svg │ │ │ │ ├── parachute-box.svg │ │ │ │ ├── paragraph.svg │ │ │ │ ├── parking.svg │ │ │ │ ├── passport.svg │ │ │ │ ├── pastafarianism.svg │ │ │ │ ├── paste.svg │ │ │ │ ├── pause-circle.svg │ │ │ │ ├── pause.svg │ │ │ │ ├── paw.svg │ │ │ │ ├── peace.svg │ │ │ │ ├── pen-alt.svg │ │ │ │ ├── pen-fancy.svg │ │ │ │ ├── pen-nib.svg │ │ │ │ ├── pen-square.svg │ │ │ │ ├── pen.svg │ │ │ │ ├── pencil-alt.svg │ │ │ │ ├── pencil-ruler.svg │ │ │ │ ├── people-carry.svg │ │ │ │ ├── percent.svg │ │ │ │ ├── percentage.svg │ │ │ │ ├── phone-slash.svg │ │ │ │ ├── phone-square.svg │ │ │ │ ├── phone-volume.svg │ │ │ │ ├── phone.svg │ │ │ │ ├── piggy-bank.svg │ │ │ │ ├── pills.svg │ │ │ │ ├── place-of-worship.svg │ │ │ │ ├── plane-arrival.svg │ │ │ │ ├── plane-departure.svg │ │ │ │ ├── plane.svg │ │ │ │ ├── play-circle.svg │ │ │ │ ├── play.svg │ │ │ │ ├── plug.svg │ │ │ │ ├── plus-circle.svg │ │ │ │ ├── plus-square.svg │ │ │ │ ├── plus.svg │ │ │ │ ├── podcast.svg │ │ │ │ ├── poll-h.svg │ │ │ │ ├── poll.svg │ │ │ │ ├── poo.svg │ │ │ │ ├── poop.svg │ │ │ │ ├── portrait.svg │ │ │ │ ├── pound-sign.svg │ │ │ │ ├── power-off.svg │ │ │ │ ├── pray.svg │ │ │ │ ├── praying-hands.svg │ │ │ │ ├── prescription-bottle-alt.svg │ │ │ │ ├── prescription-bottle.svg │ │ │ │ ├── prescription.svg │ │ │ │ ├── print.svg │ │ │ │ ├── procedures.svg │ │ │ │ ├── project-diagram.svg │ │ │ │ ├── puzzle-piece.svg │ │ │ │ ├── qrcode.svg │ │ │ │ ├── question-circle.svg │ │ │ │ ├── question.svg │ │ │ │ ├── quidditch.svg │ │ │ │ ├── quote-left.svg │ │ │ │ ├── quote-right.svg │ │ │ │ ├── quran.svg │ │ │ │ ├── random.svg │ │ │ │ ├── receipt.svg │ │ │ │ ├── recycle.svg │ │ │ │ ├── redo-alt.svg │ │ │ │ ├── redo.svg │ │ │ │ ├── registered.svg │ │ │ │ ├── reply-all.svg │ │ │ │ ├── reply.svg │ │ │ │ ├── retweet.svg │ │ │ │ ├── ribbon.svg │ │ │ │ ├── road.svg │ │ │ │ ├── robot.svg │ │ │ │ ├── rocket.svg │ │ │ │ ├── route.svg │ │ │ │ ├── rss-square.svg │ │ │ │ ├── rss.svg │ │ │ │ ├── ruble-sign.svg │ │ │ │ ├── ruler-combined.svg │ │ │ │ ├── ruler-horizontal.svg │ │ │ │ ├── ruler-vertical.svg │ │ │ │ ├── ruler.svg │ │ │ │ ├── rupee-sign.svg │ │ │ │ ├── sad-cry.svg │ │ │ │ ├── sad-tear.svg │ │ │ │ ├── save.svg │ │ │ │ ├── school.svg │ │ │ │ ├── screwdriver.svg │ │ │ │ ├── search-dollar.svg │ │ │ │ ├── search-location.svg │ │ │ │ ├── search-minus.svg │ │ │ │ ├── search-plus.svg │ │ │ │ ├── search.svg │ │ │ │ ├── seedling.svg │ │ │ │ ├── server.svg │ │ │ │ ├── shapes.svg │ │ │ │ ├── share-alt-square.svg │ │ │ │ ├── share-alt.svg │ │ │ │ ├── share-square.svg │ │ │ │ ├── share.svg │ │ │ │ ├── shekel-sign.svg │ │ │ │ ├── shield-alt.svg │ │ │ │ ├── ship.svg │ │ │ │ ├── shipping-fast.svg │ │ │ │ ├── shoe-prints.svg │ │ │ │ ├── shopping-bag.svg │ │ │ │ ├── shopping-basket.svg │ │ │ │ ├── shopping-cart.svg │ │ │ │ ├── shower.svg │ │ │ │ ├── shuttle-van.svg │ │ │ │ ├── sign-in-alt.svg │ │ │ │ ├── sign-language.svg │ │ │ │ ├── sign-out-alt.svg │ │ │ │ ├── sign.svg │ │ │ │ ├── signal.svg │ │ │ │ ├── signature.svg │ │ │ │ ├── sitemap.svg │ │ │ │ ├── skull.svg │ │ │ │ ├── sliders-h.svg │ │ │ │ ├── smile-beam.svg │ │ │ │ ├── smile-wink.svg │ │ │ │ ├── smile.svg │ │ │ │ ├── smoking-ban.svg │ │ │ │ ├── smoking.svg │ │ │ │ ├── snowflake.svg │ │ │ │ ├── socks.svg │ │ │ │ ├── solar-panel.svg │ │ │ │ ├── sort-alpha-down.svg │ │ │ │ ├── sort-alpha-up.svg │ │ │ │ ├── sort-amount-down.svg │ │ │ │ ├── sort-amount-up.svg │ │ │ │ ├── sort-down.svg │ │ │ │ ├── sort-numeric-down.svg │ │ │ │ ├── sort-numeric-up.svg │ │ │ │ ├── sort-up.svg │ │ │ │ ├── sort.svg │ │ │ │ ├── spa.svg │ │ │ │ ├── space-shuttle.svg │ │ │ │ ├── spinner.svg │ │ │ │ ├── splotch.svg │ │ │ │ ├── spray-can.svg │ │ │ │ ├── square-full.svg │ │ │ │ ├── square-root-alt.svg │ │ │ │ ├── square.svg │ │ │ │ ├── stamp.svg │ │ │ │ ├── star-and-crescent.svg │ │ │ │ ├── star-half-alt.svg │ │ │ │ ├── star-half.svg │ │ │ │ ├── star-of-david.svg │ │ │ │ ├── star-of-life.svg │ │ │ │ ├── star.svg │ │ │ │ ├── step-backward.svg │ │ │ │ ├── step-forward.svg │ │ │ │ ├── stethoscope.svg │ │ │ │ ├── sticky-note.svg │ │ │ │ ├── stop-circle.svg │ │ │ │ ├── stop.svg │ │ │ │ ├── stopwatch.svg │ │ │ │ ├── store-alt.svg │ │ │ │ ├── store.svg │ │ │ │ ├── stream.svg │ │ │ │ ├── street-view.svg │ │ │ │ ├── strikethrough.svg │ │ │ │ ├── stroopwafel.svg │ │ │ │ ├── subscript.svg │ │ │ │ ├── subway.svg │ │ │ │ ├── suitcase-rolling.svg │ │ │ │ ├── suitcase.svg │ │ │ │ ├── sun.svg │ │ │ │ ├── superscript.svg │ │ │ │ ├── surprise.svg │ │ │ │ ├── swatchbook.svg │ │ │ │ ├── swimmer.svg │ │ │ │ ├── swimming-pool.svg │ │ │ │ ├── synagogue.svg │ │ │ │ ├── sync-alt.svg │ │ │ │ ├── sync.svg │ │ │ │ ├── syringe.svg │ │ │ │ ├── table-tennis.svg │ │ │ │ ├── table.svg │ │ │ │ ├── tablet-alt.svg │ │ │ │ ├── tablet.svg │ │ │ │ ├── tablets.svg │ │ │ │ ├── tachometer-alt.svg │ │ │ │ ├── tag.svg │ │ │ │ ├── tags.svg │ │ │ │ ├── tape.svg │ │ │ │ ├── tasks.svg │ │ │ │ ├── taxi.svg │ │ │ │ ├── teeth-open.svg │ │ │ │ ├── teeth.svg │ │ │ │ ├── terminal.svg │ │ │ │ ├── text-height.svg │ │ │ │ ├── text-width.svg │ │ │ │ ├── th-large.svg │ │ │ │ ├── th-list.svg │ │ │ │ ├── th.svg │ │ │ │ ├── theater-masks.svg │ │ │ │ ├── thermometer-empty.svg │ │ │ │ ├── thermometer-full.svg │ │ │ │ ├── thermometer-half.svg │ │ │ │ ├── thermometer-quarter.svg │ │ │ │ ├── thermometer-three-quarters.svg │ │ │ │ ├── thermometer.svg │ │ │ │ ├── thumbs-down.svg │ │ │ │ ├── thumbs-up.svg │ │ │ │ ├── thumbtack.svg │ │ │ │ ├── ticket-alt.svg │ │ │ │ ├── times-circle.svg │ │ │ │ ├── times.svg │ │ │ │ ├── tint-slash.svg │ │ │ │ ├── tint.svg │ │ │ │ ├── tired.svg │ │ │ │ ├── toggle-off.svg │ │ │ │ ├── toggle-on.svg │ │ │ │ ├── toolbox.svg │ │ │ │ ├── tooth.svg │ │ │ │ ├── torah.svg │ │ │ │ ├── torii-gate.svg │ │ │ │ ├── trademark.svg │ │ │ │ ├── traffic-light.svg │ │ │ │ ├── train.svg │ │ │ │ ├── transgender-alt.svg │ │ │ │ ├── transgender.svg │ │ │ │ ├── trash-alt.svg │ │ │ │ ├── trash.svg │ │ │ │ ├── tree.svg │ │ │ │ ├── trophy.svg │ │ │ │ ├── truck-loading.svg │ │ │ │ ├── truck-monster.svg │ │ │ │ ├── truck-moving.svg │ │ │ │ ├── truck-pickup.svg │ │ │ │ ├── truck.svg │ │ │ │ ├── tshirt.svg │ │ │ │ ├── tty.svg │ │ │ │ ├── tv.svg │ │ │ │ ├── umbrella-beach.svg │ │ │ │ ├── umbrella.svg │ │ │ │ ├── underline.svg │ │ │ │ ├── undo-alt.svg │ │ │ │ ├── undo.svg │ │ │ │ ├── universal-access.svg │ │ │ │ ├── university.svg │ │ │ │ ├── unlink.svg │ │ │ │ ├── unlock-alt.svg │ │ │ │ ├── unlock.svg │ │ │ │ ├── upload.svg │ │ │ │ ├── user-alt-slash.svg │ │ │ │ ├── user-alt.svg │ │ │ │ ├── user-astronaut.svg │ │ │ │ ├── user-check.svg │ │ │ │ ├── user-circle.svg │ │ │ │ ├── user-clock.svg │ │ │ │ ├── user-cog.svg │ │ │ │ ├── user-edit.svg │ │ │ │ ├── user-friends.svg │ │ │ │ ├── user-graduate.svg │ │ │ │ ├── user-lock.svg │ │ │ │ ├── user-md.svg │ │ │ │ ├── user-minus.svg │ │ │ │ ├── user-ninja.svg │ │ │ │ ├── user-plus.svg │ │ │ │ ├── user-secret.svg │ │ │ │ ├── user-shield.svg │ │ │ │ ├── user-slash.svg │ │ │ │ ├── user-tag.svg │ │ │ │ ├── user-tie.svg │ │ │ │ ├── user-times.svg │ │ │ │ ├── user.svg │ │ │ │ ├── users-cog.svg │ │ │ │ ├── users.svg │ │ │ │ ├── utensil-spoon.svg │ │ │ │ ├── utensils.svg │ │ │ │ ├── vector-square.svg │ │ │ │ ├── venus-double.svg │ │ │ │ ├── venus-mars.svg │ │ │ │ ├── venus.svg │ │ │ │ ├── vial.svg │ │ │ │ ├── vials.svg │ │ │ │ ├── video-slash.svg │ │ │ │ ├── video.svg │ │ │ │ ├── vihara.svg │ │ │ │ ├── volleyball-ball.svg │ │ │ │ ├── volume-down.svg │ │ │ │ ├── volume-off.svg │ │ │ │ ├── volume-up.svg │ │ │ │ ├── walking.svg │ │ │ │ ├── wallet.svg │ │ │ │ ├── warehouse.svg │ │ │ │ ├── weight-hanging.svg │ │ │ │ ├── weight.svg │ │ │ │ ├── wheelchair.svg │ │ │ │ ├── wifi.svg │ │ │ │ ├── window-close.svg │ │ │ │ ├── window-maximize.svg │ │ │ │ ├── window-minimize.svg │ │ │ │ ├── window-restore.svg │ │ │ │ ├── wine-glass-alt.svg │ │ │ │ ├── wine-glass.svg │ │ │ │ ├── won-sign.svg │ │ │ │ ├── wrench.svg │ │ │ │ ├── x-ray.svg │ │ │ │ ├── yen-sign.svg │ │ │ │ └── yin-yang.svg │ │ │ └── webfonts │ │ │ ├── fa-brands-400.eot │ │ │ ├── fa-brands-400.svg │ │ │ ├── fa-brands-400.ttf │ │ │ ├── fa-brands-400.woff │ │ │ ├── fa-brands-400.woff2 │ │ │ ├── fa-regular-400.eot │ │ │ ├── fa-regular-400.svg │ │ │ ├── fa-regular-400.ttf │ │ │ ├── fa-regular-400.woff │ │ │ ├── fa-regular-400.woff2 │ │ │ ├── fa-solid-900.eot │ │ │ ├── fa-solid-900.svg │ │ │ ├── fa-solid-900.ttf │ │ │ ├── fa-solid-900.woff │ │ │ └── fa-solid-900.woff2 │ ├── bulma │ │ ├── CHANGELOG.md │ │ ├── LICENSE │ │ ├── README.md │ │ ├── bulma.sass │ │ ├── css │ │ │ ├── bulma.css │ │ │ ├── bulma.css.map │ │ │ └── bulma.min.css │ │ ├── package.json │ │ └── sass │ │ │ ├── base │ │ │ ├── _all.sass │ │ │ ├── generic.sass │ │ │ ├── helpers.sass │ │ │ └── minireset.sass │ │ │ ├── components │ │ │ ├── _all.sass │ │ │ ├── breadcrumb.sass │ │ │ ├── card.sass │ │ │ ├── dropdown.sass │ │ │ ├── level.sass │ │ │ ├── media.sass │ │ │ ├── menu.sass │ │ │ ├── message.sass │ │ │ ├── modal.sass │ │ │ ├── navbar.sass │ │ │ ├── pagination.sass │ │ │ ├── panel.sass │ │ │ └── tabs.sass │ │ │ ├── elements │ │ │ ├── _all.sass │ │ │ ├── box.sass │ │ │ ├── button.sass │ │ │ ├── container.sass │ │ │ ├── content.sass │ │ │ ├── form.sass │ │ │ ├── icon.sass │ │ │ ├── image.sass │ │ │ ├── notification.sass │ │ │ ├── other.sass │ │ │ ├── progress.sass │ │ │ ├── table.sass │ │ │ ├── tag.sass │ │ │ └── title.sass │ │ │ ├── grid │ │ │ ├── _all.sass │ │ │ ├── columns.sass │ │ │ └── tiles.sass │ │ │ ├── layout │ │ │ ├── _all.sass │ │ │ ├── footer.sass │ │ │ ├── hero.sass │ │ │ └── section.sass │ │ │ └── utilities │ │ │ ├── _all.sass │ │ │ ├── animations.sass │ │ │ ├── controls.sass │ │ │ ├── derived-variables.sass │ │ │ ├── functions.sass │ │ │ ├── initial-variables.sass │ │ │ └── mixins.sass │ └── jquery │ │ ├── AUTHORS.txt │ │ ├── LICENSE.txt │ │ ├── README.md │ │ ├── bower.json │ │ ├── dist │ │ ├── core.js │ │ ├── jquery.js │ │ ├── jquery.min.js │ │ ├── jquery.min.map │ │ ├── jquery.slim.js │ │ ├── jquery.slim.min.js │ │ └── jquery.slim.min.map │ │ ├── external │ │ └── sizzle │ │ │ ├── LICENSE.txt │ │ │ └── dist │ │ │ ├── sizzle.js │ │ │ ├── sizzle.min.js │ │ │ └── sizzle.min.map │ │ ├── package.json │ │ └── src │ │ ├── .eslintrc.json │ │ ├── ajax.js │ │ ├── ajax │ │ ├── jsonp.js │ │ ├── load.js │ │ ├── parseXML.js │ │ ├── script.js │ │ ├── var │ │ │ ├── location.js │ │ │ ├── nonce.js │ │ │ └── rquery.js │ │ └── xhr.js │ │ ├── attributes.js │ │ ├── attributes │ │ ├── attr.js │ │ ├── classes.js │ │ ├── prop.js │ │ ├── support.js │ │ └── val.js │ │ ├── callbacks.js │ │ ├── core.js │ │ ├── core │ │ ├── DOMEval.js │ │ ├── access.js │ │ ├── camelCase.js │ │ ├── init.js │ │ ├── nodeName.js │ │ ├── parseHTML.js │ │ ├── ready-no-deferred.js │ │ ├── ready.js │ │ ├── readyException.js │ │ ├── stripAndCollapse.js │ │ ├── support.js │ │ ├── toType.js │ │ └── var │ │ │ └── rsingleTag.js │ │ ├── css.js │ │ ├── css │ │ ├── addGetHookIf.js │ │ ├── adjustCSS.js │ │ ├── curCSS.js │ │ ├── hiddenVisibleSelectors.js │ │ ├── showHide.js │ │ ├── support.js │ │ └── var │ │ │ ├── cssExpand.js │ │ │ ├── getStyles.js │ │ │ ├── isHiddenWithinTree.js │ │ │ ├── rboxStyle.js │ │ │ ├── rnumnonpx.js │ │ │ └── swap.js │ │ ├── data.js │ │ ├── data │ │ ├── Data.js │ │ └── var │ │ │ ├── acceptData.js │ │ │ ├── dataPriv.js │ │ │ └── dataUser.js │ │ ├── deferred.js │ │ ├── deferred │ │ └── exceptionHook.js │ │ ├── deprecated.js │ │ ├── dimensions.js │ │ ├── effects.js │ │ ├── effects │ │ ├── Tween.js │ │ └── animatedSelector.js │ │ ├── event.js │ │ ├── event │ │ ├── ajax.js │ │ ├── alias.js │ │ ├── focusin.js │ │ ├── support.js │ │ └── trigger.js │ │ ├── exports │ │ ├── amd.js │ │ └── global.js │ │ ├── jquery.js │ │ ├── manipulation.js │ │ ├── manipulation │ │ ├── _evalUrl.js │ │ ├── buildFragment.js │ │ ├── getAll.js │ │ ├── setGlobalEval.js │ │ ├── support.js │ │ ├── var │ │ │ ├── rcheckableType.js │ │ │ ├── rscriptType.js │ │ │ └── rtagName.js │ │ └── wrapMap.js │ │ ├── offset.js │ │ ├── queue.js │ │ ├── queue │ │ └── delay.js │ │ ├── selector-native.js │ │ ├── selector-sizzle.js │ │ ├── selector.js │ │ ├── serialize.js │ │ ├── traversing.js │ │ ├── traversing │ │ ├── findFilter.js │ │ └── var │ │ │ ├── dir.js │ │ │ ├── rneedsContext.js │ │ │ └── siblings.js │ │ ├── var │ │ ├── ObjectFunctionString.js │ │ ├── arr.js │ │ ├── class2type.js │ │ ├── concat.js │ │ ├── document.js │ │ ├── documentElement.js │ │ ├── fnToString.js │ │ ├── getProto.js │ │ ├── hasOwn.js │ │ ├── indexOf.js │ │ ├── isFunction.js │ │ ├── isWindow.js │ │ ├── pnum.js │ │ ├── push.js │ │ ├── rcssNum.js │ │ ├── rnothtmlwhite.js │ │ ├── slice.js │ │ ├── support.js │ │ └── toString.js │ │ └── wrap.js ├── package-lock.json ├── run_local_server.sh ├── script │ ├── build_init_sql.pl │ └── isucon8-portal-server ├── sql │ ├── 00_create_database.sql │ ├── 01_import.sh │ └── schame.sql ├── static │ ├── 404.html │ ├── 500.html │ ├── 502.html │ ├── 503.html │ ├── 504.html │ ├── css │ │ ├── admin.css │ │ ├── bulma.min.css │ │ ├── fontawesome.css │ │ ├── jquery.tablesorter.pager.min.css │ │ ├── landing.css │ │ └── main.css │ ├── img │ │ ├── .gitignore │ │ ├── isucon_icon.png │ │ ├── isucon_logo.jpg │ │ ├── isucon_logo@2x.png │ │ ├── isucon_logo@3x.png │ │ ├── isucon_logo_white.png │ │ ├── isucon_logo_white@2x.png │ │ ├── isucon_logo_white@3x.png │ │ └── landing_bg_01.jpg │ ├── js │ │ ├── jquery.min.js │ │ ├── jquery.tablesorter.combined.js │ │ ├── jquery.tablesorter.min.js │ │ ├── main.js │ │ ├── micro-location.js │ │ ├── micro_dispatcher.js │ │ ├── micro_template.js │ │ ├── sprintf.js │ │ ├── strftime.js │ │ └── xsrf-token.js │ ├── robots.txt │ └── webfonts │ │ ├── fa-brands-400.eot │ │ ├── fa-brands-400.svg │ │ ├── fa-brands-400.ttf │ │ ├── fa-brands-400.woff │ │ ├── fa-brands-400.woff2 │ │ ├── fa-regular-400.eot │ │ ├── fa-regular-400.svg │ │ ├── fa-regular-400.ttf │ │ ├── fa-regular-400.woff │ │ ├── fa-regular-400.woff2 │ │ ├── fa-solid-900.eot │ │ ├── fa-solid-900.svg │ │ ├── fa-solid-900.ttf │ │ ├── fa-solid-900.woff │ │ └── fa-solid-900.woff2 ├── t │ ├── 00_compile.t │ ├── 01_root.t │ ├── 02_mech.t │ ├── 03_assets.t │ ├── 06_jshint.t │ └── Util.pm ├── tmpl │ ├── admin │ │ ├── dashboard.tx │ │ ├── enqueue.tx │ │ ├── enqueue_all.tx │ │ ├── information.tx │ │ ├── job_detail.tx │ │ ├── jobs.tx │ │ ├── login.tx │ │ ├── scores.tx │ │ ├── servers.tx │ │ ├── team_edit.tx │ │ └── teams.tx │ ├── dashboard.tx │ ├── include │ │ ├── admin │ │ │ ├── layout.tx │ │ │ └── layout_simple.tx │ │ ├── graph.tx │ │ ├── layout.tx │ │ ├── layout_simple.tx │ │ ├── pager.tx │ │ └── team_header.tx │ ├── index.tx │ ├── job_detail.tx │ ├── jobs.tx │ ├── landing.tx │ ├── login.tx │ ├── scores.tx │ └── servers.tx └── xt │ ├── 01_pod.t │ └── 02_perlcritic.t └── webapp ├── docker-compose.go.yml ├── docker-compose.mockservice.yml ├── docker-compose.perl.yml ├── docker-compose.php.yml ├── docker-compose.python.yml ├── docker-compose.ruby.yml ├── docker-compose.yml ├── frontend ├── .browserslistrc ├── .gitignore ├── README.md ├── babel.config.js ├── package.json ├── postcss.config.js ├── public │ ├── favicon.ico │ ├── img │ │ └── isucoin_logo.png │ ├── index.html │ └── js │ │ ├── Chart.Financial.js │ │ ├── Chart.min.js │ │ └── moment.min.js ├── src │ ├── App.vue │ ├── assets │ │ └── logo.png │ ├── components │ │ ├── Chart.vue │ │ ├── FailSignup.vue │ │ ├── Header.vue │ │ ├── Log.vue │ │ ├── Modal.vue │ │ ├── Order.vue │ │ ├── Price.vue │ │ ├── ShareButton.vue │ │ ├── SigninForm.vue │ │ └── SignupForm.vue │ ├── main.ts │ ├── model.ts │ ├── router.ts │ ├── shims-tsx.d.ts │ ├── shims-vue.d.ts │ ├── store.ts │ └── views │ │ └── Top.vue ├── tsconfig.json ├── tslint.json ├── vue.config.js └── yarn.lock ├── go ├── .gitignore ├── Dockerfile ├── Makefile └── src │ └── isucon8 │ ├── isubank │ └── isubank.go │ ├── isucoin │ ├── .gitignore │ ├── Gopkg.lock │ ├── Gopkg.toml │ ├── controller │ │ └── handler.go │ ├── model │ │ ├── model.go │ │ ├── order.go │ │ ├── scanner.gen.go │ │ ├── setting.go │ │ ├── trade.go │ │ └── user.go │ └── webapp │ │ └── main.go │ └── isulogger │ └── logger.go ├── mockservice ├── Procfile ├── docker-run.sh ├── isubank │ └── main.go └── isulogger │ └── main.go ├── mysql └── conf.d │ └── my.cnf ├── nginx ├── _.isucon8.flying-chair.net.crt ├── _.isucon8.flying-chair.net.key ├── fastcgi_params ├── nginx.conf └── nginx.php.conf ├── perl ├── .gitignore ├── Dockerfile ├── Makefile.PL ├── app.psgi ├── cpanfile ├── cpanfile.snapshot ├── lib │ ├── Isubank.pm │ ├── Isucoin.pm │ ├── Isucoin │ │ ├── Exception.pm │ │ ├── Model.pm │ │ └── Web.pm │ └── Isulogger.pm └── t │ └── 00_compile.t ├── php ├── .gitignore ├── Dockerfile ├── composer.json ├── composer.lock ├── index.php ├── php-fpm.conf └── src │ └── Isucon8 │ ├── Isubank │ └── Isubank.php │ ├── Isucoin │ ├── Model │ │ ├── Model.php │ │ ├── Order.php │ │ ├── Setting.php │ │ ├── Trade.php │ │ └── User.php │ └── Web.php │ ├── Isulogger │ └── Isulogger.php │ └── PDOWrapper.php ├── public ├── css │ └── app.033eaee3.css ├── favicon.ico ├── img │ └── isucoin_logo.png ├── index.html └── js │ ├── Chart.Financial.js │ ├── Chart.min.js │ ├── app.2be81752.js │ ├── app.2be81752.js.map │ ├── chunk-vendors.3f054da5.js │ ├── chunk-vendors.3f054da5.js.map │ └── moment.min.js ├── python ├── Dockerfile ├── Pipfile ├── Pipfile.lock └── isucoin │ ├── __init__.py │ ├── model │ ├── __init__.py │ ├── orders.py │ ├── settings.py │ ├── trades.py │ └── users.py │ └── vendor │ ├── isubank.py │ └── isulogger.py ├── ruby ├── .gitignore ├── Dockerfile ├── Gemfile ├── Gemfile.lock ├── app.rb ├── config.ru ├── errors.rb ├── isubank │ ├── isubank.gemspec │ └── lib │ │ └── isubank.rb ├── isulogger │ ├── isulogger.gemspec │ └── lib │ │ └── isulogger.rb ├── models.rb └── models │ ├── order.rb │ ├── setting.rb │ ├── trade.rb │ └── user.rb └── sql ├── 00_create_isucoin_database.sql ├── 01_create_user.sql ├── isucoin.sql └── z_initializedata.sql.gz /bench/.gitignore: -------------------------------------------------------------------------------- 1 | src/bench/vendor 2 | bin 3 | pkg 4 | -------------------------------------------------------------------------------- /bench/Makefile: -------------------------------------------------------------------------------- 1 | DIR = $(shell pwd) 2 | all: build 3 | 4 | .PHONY: clean 5 | clean: 6 | rm -rf isucoin 7 | 8 | init: 9 | mkdir -p ${DIR}/bin 10 | curl https://raw.githubusercontent.com/golang/dep/master/install.sh | GOPATH=${DIR} DEP_RELEASE_TAG=v0.5.0 sh 11 | 12 | deps: 13 | cd ${DIR}/src/bench; GOPATH=${DIR} ${DIR}/bin/dep ensure 14 | 15 | .PHONY: build 16 | build: 17 | GOPATH=${DIR} go build -v -o bin/bench bench/cmd/bench 18 | 19 | build-isucointest: 20 | GOPATH=${DIR} go build -v -o bin/isucointest bench/cmd/isucointest 21 | -------------------------------------------------------------------------------- /bench/src/bench/init.go: -------------------------------------------------------------------------------- 1 | package bench 2 | 3 | import ( 4 | "log" 5 | "os" 6 | "time" 7 | ) 8 | 9 | func init() { 10 | var err error 11 | loc, err := time.LoadLocation("Asia/Tokyo") 12 | if err != nil { 13 | log.Panicln(err) 14 | } 15 | time.Local = loc 16 | 17 | // 見せない内部ログ用 18 | log.SetFlags(log.Lshortfile | log.LstdFlags | log.Lmicroseconds) 19 | log.SetOutput(os.Stderr) 20 | } 21 | -------------------------------------------------------------------------------- /bench/src/bench/randnameja/randnameja.go: -------------------------------------------------------------------------------- 1 | package randnameja 2 | 3 | import "math/rand" 4 | 5 | var ( 6 | lastnameLen int 7 | firstnameLen int 8 | Separator string = " " 9 | ) 10 | 11 | func init() { 12 | lastnameLen = len(lastnames) 13 | firstnameLen = len(firstnames) 14 | } 15 | 16 | func Generate() string { 17 | return lastnames[rand.Intn(lastnameLen)] + Separator + firstnames[rand.Intn(firstnameLen)] 18 | } 19 | -------------------------------------------------------------------------------- /blackbox/conf.d/my.cnf: -------------------------------------------------------------------------------- 1 | [mysqld] 2 | performance_schema = off 3 | innodb_flush_log_at_trx_commit = 2 4 | -------------------------------------------------------------------------------- /blackbox/sql/00_create_bank_database.sql: -------------------------------------------------------------------------------- 1 | create database if not exists isubank default character set utf8mb4; 2 | -------------------------------------------------------------------------------- /blackbox/sql/z_isubankdata.sql.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/blackbox/sql/z_isubankdata.sql.gz -------------------------------------------------------------------------------- /portal/.gitignore: -------------------------------------------------------------------------------- 1 | Makefile 2 | /inc/ 3 | MANIFEST 4 | *.bak 5 | *.old 6 | nytprof.out 7 | nytprof/ 8 | *.db 9 | /blib/ 10 | pm_to_blib 11 | META.yml 12 | MYMETA.json 13 | MYMETA.yml 14 | /Build 15 | /_build/ 16 | /local/ 17 | /.carton/ 18 | /ISUCON8-Portal-* 19 | /.build 20 | /_build_params 21 | /Build.bat 22 | !Build/ 23 | !META.json 24 | !LICENSE 25 | log/* 26 | mysql/* 27 | -------------------------------------------------------------------------------- /portal/.proverc: -------------------------------------------------------------------------------- 1 | -l 2 | -r t 3 | -Mt::Util 4 | -------------------------------------------------------------------------------- /portal/Changes: -------------------------------------------------------------------------------- 1 | Revision history for Perl extension ISUCON8-Portal 2 | 3 | {{$NEXT}} 4 | 5 | - original version 6 | 7 | -------------------------------------------------------------------------------- /portal/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM perl:5.28 2 | 3 | COPY ./ /app 4 | WORKDIR /app 5 | RUN curl -sL --compressed https://git.io/cpm > /usr/local/bin/cpm && chmod +x /usr/local/bin/cpm 6 | RUN cpanm -n Carton 7 | RUN cpm install && carton install 8 | -------------------------------------------------------------------------------- /portal/LICENSE: -------------------------------------------------------------------------------- 1 | Minilla cannot detect license terms. -------------------------------------------------------------------------------- /portal/README.md: -------------------------------------------------------------------------------- 1 | # NAME 2 | 3 | ISUCON8::Portal - ISUCON8::Portal 4 | 5 | # DESCRIPTION 6 | 7 | This is a main context class for ISUCON8::Portal 8 | 9 | # AUTHOR 10 | 11 | ISUCON8::Portal authors. 12 | -------------------------------------------------------------------------------- /portal/config/development.pl: -------------------------------------------------------------------------------- 1 | +{ 2 | db => { 3 | dsn => 'DBI::mysql:database=isucon8_portal;host=localhost;port=3306', 4 | user => 'isucon', 5 | pass => 'isucon', 6 | attr => { 7 | AutoCommit => 1, 8 | RaiseError => 1, 9 | ShowErrorStatement => 1, 10 | PrintWarn => 0, 11 | PrintError => 0, 12 | mysql_enable_utf8 => 1, 13 | }, 14 | }, 15 | }; 16 | -------------------------------------------------------------------------------- /portal/config/test.pl: -------------------------------------------------------------------------------- 1 | use File::Spec; 2 | use File::Basename qw(dirname); 3 | my $basedir = File::Spec->rel2abs(File::Spec->catdir(dirname(__FILE__), '..')); 4 | my $dbpath = File::Spec->catfile($basedir, 'db', 'test.db'); 5 | +{ 6 | 'DBI' => [ 7 | "dbi:SQLite:dbname=$dbpath", '', '', 8 | +{ 9 | sqlite_unicode => 1, 10 | } 11 | ], 12 | }; 13 | -------------------------------------------------------------------------------- /portal/env.sh: -------------------------------------------------------------------------------- 1 | ISUCON8_DATABASE=isucon8f_portal 2 | ISUCON8_DBHOST=mysql 3 | ISUCON8_START_AT=2018-10-02T10:00:00+09:00 4 | ISUCON8_FINISH_AT=2018-10-03T20:00:00+09:00 5 | -------------------------------------------------------------------------------- /portal/lib/ISUCON8/Portal/Constants.pm: -------------------------------------------------------------------------------- 1 | package ISUCON8::Portal::Constants; 2 | 3 | use strict; 4 | use warnings; 5 | use parent 'Exporter'; 6 | use Exporter::Constants (); 7 | 8 | sub constants { 9 | my ($class, %stuff) = @_; 10 | my $pkg = caller(0); 11 | 12 | my $array = do { 13 | no strict 'refs'; 14 | \@{"$pkg\::EXPORT"}; 15 | }; 16 | 17 | Exporter::Constants::_declare_constant($class, $array, \%stuff); 18 | } 19 | 20 | 1; 21 | -------------------------------------------------------------------------------- /portal/lib/ISUCON8/Portal/DB.pm: -------------------------------------------------------------------------------- 1 | package ISUCON8::Portal::DB; 2 | use strict; 3 | use warnings; 4 | use utf8; 5 | use parent qw(DBIx::Handler); 6 | 7 | use DBD::mysql; 8 | 9 | 1; 10 | -------------------------------------------------------------------------------- /portal/lib/ISUCON8/Portal/Log.pm: -------------------------------------------------------------------------------- 1 | package ISUCON8::Portal::Log; 2 | 3 | use strict; 4 | use warnings; 5 | use parent 'Log::Minimal::Instance'; 6 | 7 | $Log::Minimal::AUTODUMP = 1; 8 | 9 | 1; 10 | 11 | 12 | -------------------------------------------------------------------------------- /portal/lib/ISUCON8/Portal/Team.pm: -------------------------------------------------------------------------------- 1 | package ISUCON8::Portal::Team; 2 | 3 | use strict; 4 | use warnings; 5 | use parent 'Class::Accessor::Fast'; 6 | 7 | __PACKAGE__->mk_accessors(qw/id name state category/); 8 | 9 | sub serialize { 10 | my $self = shift; 11 | return +{ 12 | id => $self->{id}, 13 | name => $self->{name}, 14 | state => $self->{state}, 15 | category => $self->{category}, 16 | }; 17 | } 18 | 19 | 1; 20 | -------------------------------------------------------------------------------- /portal/lib/ISUCON8/Portal/Web/Controller.pm: -------------------------------------------------------------------------------- 1 | package ISUCON8::Portal::Web::Controller; 2 | use strict; 3 | use warnings; 4 | 5 | 1; 6 | -------------------------------------------------------------------------------- /portal/lib/ISUCON8/Portal/Web/Controller/Root.pm: -------------------------------------------------------------------------------- 1 | package ISUCON8::Portal::Web::Controller::Root; 2 | use strict; 3 | use warnings; 4 | use feature 'state'; 5 | 6 | sub get_index { 7 | my ($self, $c) = @_; 8 | unless ($c->is_during_the_contest) { 9 | return $c->render('landing.tx'); 10 | } 11 | 12 | return $c->session->get('team') ? $c->redirect('/dashboard') : $c->redirect('/login'); 13 | } 14 | 15 | 1; 16 | -------------------------------------------------------------------------------- /portal/log/app/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/log/app/.gitkeep -------------------------------------------------------------------------------- /portal/log/nginx/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/log/nginx/.gitkeep -------------------------------------------------------------------------------- /portal/minil.toml: -------------------------------------------------------------------------------- 1 | name="ISUCON8-Portal" 2 | [build] 3 | build_class = "builder::MyBuilder" 4 | -------------------------------------------------------------------------------- /portal/mysql/conf.d/my.cnf: -------------------------------------------------------------------------------- 1 | [mysqld] 2 | default_authentication_plugin=mysql_native_password 3 | secure-file-priv="" 4 | character-set-server=utf8mb4 5 | max_allowed_packet=16MB 6 | 7 | [client] 8 | default-character-set=utf8mb4 9 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/less/_animated.less: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .@{fa-css-prefix}-spin { 5 | animation: fa-spin 2s infinite linear; 6 | } 7 | 8 | .@{fa-css-prefix}-pulse { 9 | animation: fa-spin 1s infinite steps(8); 10 | } 11 | 12 | @keyframes fa-spin { 13 | 0% { 14 | transform: rotate(0deg); 15 | } 16 | 100% { 17 | transform: rotate(360deg); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/less/_bordered-pulled.less: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-border { 5 | border-radius: .1em; 6 | border: solid .08em @fa-border-color; 7 | padding: .2em .25em .15em; 8 | } 9 | 10 | .@{fa-css-prefix}-pull-left { float: left; } 11 | .@{fa-css-prefix}-pull-right { float: right; } 12 | 13 | .@{fa-css-prefix}, .fas, .far, .fal, .fab { 14 | &.@{fa-css-prefix}-pull-left { margin-right: .3em; } 15 | &.@{fa-css-prefix}-pull-right { margin-left: .3em; } 16 | } 17 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/less/_core.less: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}, .fas, .far, .fal, .fab { 5 | -moz-osx-font-smoothing: grayscale; 6 | -webkit-font-smoothing: antialiased; 7 | display: inline-block; 8 | font-style: normal; 9 | font-variant: normal; 10 | text-rendering: auto; 11 | line-height: 1; 12 | } 13 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/less/_fixed-width.less: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .@{fa-css-prefix}-fw { 4 | text-align: center; 5 | width: (20em / 16); 6 | } 7 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/less/_list.less: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .@{fa-css-prefix}-ul { 5 | list-style-type: none; 6 | margin-left: @fa-li-width * 5/4; 7 | padding-left: 0; 8 | 9 | > li { position: relative; } 10 | } 11 | 12 | .@{fa-css-prefix}-li { 13 | left: -@fa-li-width; 14 | position: absolute; 15 | text-align: center; 16 | width: @fa-li-width; 17 | line-height: inherit; 18 | } 19 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/less/_screen-reader.less: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { .sr-only(); } 5 | .sr-only-focusable { .sr-only-focusable(); } 6 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/less/v4-shims.less: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.3.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import '_variables.less'; 6 | @import '_shims.less'; 7 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/scss/_animated.scss: -------------------------------------------------------------------------------- 1 | // Animated Icons 2 | // -------------------------- 3 | 4 | .#{$fa-css-prefix}-spin { 5 | animation: fa-spin 2s infinite linear; 6 | } 7 | 8 | .#{$fa-css-prefix}-pulse { 9 | animation: fa-spin 1s infinite steps(8); 10 | } 11 | 12 | @keyframes fa-spin { 13 | 0% { 14 | transform: rotate(0deg); 15 | } 16 | 17 | 100% { 18 | transform: rotate(360deg); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/scss/_bordered-pulled.scss: -------------------------------------------------------------------------------- 1 | // Bordered & Pulled 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-border { 5 | border: solid .08em $fa-border-color; 6 | border-radius: .1em; 7 | padding: .2em .25em .15em; 8 | } 9 | 10 | .#{$fa-css-prefix}-pull-left { float: left; } 11 | .#{$fa-css-prefix}-pull-right { float: right; } 12 | 13 | .#{$fa-css-prefix}, 14 | .fas, 15 | .far, 16 | .fal, 17 | .fab { 18 | &.#{$fa-css-prefix}-pull-left { margin-right: .3em; } 19 | &.#{$fa-css-prefix}-pull-right { margin-left: .3em; } 20 | } 21 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/scss/_core.scss: -------------------------------------------------------------------------------- 1 | // Base Class Definition 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}, 5 | .fas, 6 | .far, 7 | .fal, 8 | .fab { 9 | -moz-osx-font-smoothing: grayscale; 10 | -webkit-font-smoothing: antialiased; 11 | display: inline-block; 12 | font-style: normal; 13 | font-variant: normal; 14 | text-rendering: auto; 15 | line-height: 1; 16 | } 17 | 18 | %fa-icon { 19 | @include fa-icon; 20 | } 21 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/scss/_fixed-width.scss: -------------------------------------------------------------------------------- 1 | // Fixed Width Icons 2 | // ------------------------- 3 | .#{$fa-css-prefix}-fw { 4 | text-align: center; 5 | width: (20em / 16); 6 | } 7 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/scss/_larger.scss: -------------------------------------------------------------------------------- 1 | // Icon Sizes 2 | // ------------------------- 3 | 4 | // makes the font 33% larger relative to the icon container 5 | .#{$fa-css-prefix}-lg { 6 | font-size: (4em / 3); 7 | line-height: (3em / 4); 8 | vertical-align: -.0667em; 9 | } 10 | 11 | .#{$fa-css-prefix}-xs { 12 | font-size: .75em; 13 | } 14 | 15 | .#{$fa-css-prefix}-sm { 16 | font-size: .875em; 17 | } 18 | 19 | @for $i from 1 through 10 { 20 | .#{$fa-css-prefix}-#{$i}x { 21 | font-size: $i * 1em; 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/scss/_list.scss: -------------------------------------------------------------------------------- 1 | // List Icons 2 | // ------------------------- 3 | 4 | .#{$fa-css-prefix}-ul { 5 | list-style-type: none; 6 | margin-left: $fa-li-width * 5/4; 7 | padding-left: 0; 8 | 9 | > li { position: relative; } 10 | } 11 | 12 | .#{$fa-css-prefix}-li { 13 | left: -$fa-li-width; 14 | position: absolute; 15 | text-align: center; 16 | width: $fa-li-width; 17 | line-height: inherit; 18 | } 19 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/scss/_screen-reader.scss: -------------------------------------------------------------------------------- 1 | // Screen Readers 2 | // ------------------------- 3 | 4 | .sr-only { @include sr-only; } 5 | .sr-only-focusable { @include sr-only-focusable; } 6 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/scss/fontawesome.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.3.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import 'variables'; 6 | @import 'mixins'; 7 | @import 'core'; 8 | @import 'larger'; 9 | @import 'fixed-width'; 10 | @import 'list'; 11 | @import 'bordered-pulled'; 12 | @import 'animated'; 13 | @import 'rotated-flipped'; 14 | @import 'stacked'; 15 | @import 'icons'; 16 | @import 'screen-reader'; 17 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/scss/v4-shims.scss: -------------------------------------------------------------------------------- 1 | /*! 2 | * Font Awesome Free 5.3.1 by @fontawesome - https://fontawesome.com 3 | * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) 4 | */ 5 | @import 'variables'; 6 | @import 'shims'; 7 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/adn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/angular.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/autoprefixer.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/bandcamp.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/bitbucket.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/black-tie.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/buysellads.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/cloudsmith.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/css3-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/css3.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/cuttlefish.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/dashcube.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/deviantart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/discourse.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/dochub.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/dropbox.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/dyalog.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/elementor.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/envira.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/ethereum.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/facebook-f.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/facebook-messenger.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/facebook-square.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/facebook.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/firstdraft.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/flipboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/gg.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/gitter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/google-drive.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/google-play.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/google.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/gratipay.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/hacker-news-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/hacker-news.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/hotjar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/houzz.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/html5.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/korvue.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/magento.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/maxcdn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/microsoft.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/mix.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/modx.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/monero.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/npm.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/openid.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/patreon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/pied-piper.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/product-hunt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/rockrms.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/servicestack.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/sistrix.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/stack-exchange.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/stack-overflow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/strava.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/telegram-plane.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/twitch.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/uikit.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/viacoin.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/vuejs.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/windows.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/y-combinator.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/yahoo.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/yandex-international.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/brands/yandex.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/calendar.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/comment-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/play-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/star-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/sticky-note.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/stop-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/window-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/window-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/regular/window-restore.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/adjust.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/angle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/angle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/angle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/angle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/archive.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-alt-circle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-alt-circle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-alt-circle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-alt-circle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/arrow-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/backward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/battery-empty.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/battery-full.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/battery-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/battery-quarter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/battery-three-quarters.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/bookmark.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/bowling-ball.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/box.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/briefcase.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/brush.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/burn.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-square-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-square-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-square-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/caret-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/chalkboard.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/chart-area.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/check.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-circle-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-circle-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-circle-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-circle-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/chevron-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/clock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/clone.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/cloud.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/coffee.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/columns.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/comment-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/comment.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/compact-disc.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/cross.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/desktop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice-one.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/dice-two.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/divide.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/door-closed.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/dot-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/eject.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/ellipsis-h.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/ellipsis-v.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/equals.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/exclamation.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/fast-backward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/fast-forward.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/file.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/filter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/folder-minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/folder.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/forward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/gem.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/genderless.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/glass-martini-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/glass-martini.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/heart.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/hockey-puck.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/hospital-symbol.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/industry.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/laptop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/less-than.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/level-down-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/location-arrow.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/lock-open.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/lock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/long-arrow-alt-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/long-arrow-alt-left.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/long-arrow-alt-right.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/long-arrow-alt-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/map-marker-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/map-marker.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/map.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/meh-blank.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/meh.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/minus-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/minus-square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/minus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/mobile-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/mobile.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/neuter.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/paper-plane.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/paragraph.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/parking.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/pause-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/pause.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/pen.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/phone.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/play-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/play.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/plus-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/plus.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/qrcode.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/seedling.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/shield-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/sign.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/sort-down.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/sort-up.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/sort.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/square-full.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/square.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/star-half.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/star.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/step-backward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/step-forward.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/sticky-note.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/stop-circle.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/stop.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/suitcase.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/surprise.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/table.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/tablet-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/tablet.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/tape.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/toggle-on.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/tv.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/unlock.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-alt.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/user-tie.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/user.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/utensil-spoon.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/video.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/volume-off.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/window-maximize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/window-minimize.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/svgs/solid/wine-glass.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/node_modules/@fortawesome/fontawesome-free/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /portal/node_modules/bulma/bulma.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | /*! bulma.io v0.7.1 | MIT License | github.com/jgthms/bulma */ 3 | @import "sass/utilities/_all" 4 | @import "sass/base/_all" 5 | @import "sass/elements/_all" 6 | @import "sass/components/_all" 7 | @import "sass/grid/_all" 8 | @import "sass/layout/_all" 9 | -------------------------------------------------------------------------------- /portal/node_modules/bulma/sass/base/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "minireset.sass" 4 | @import "generic.sass" 5 | @import "helpers.sass" 6 | -------------------------------------------------------------------------------- /portal/node_modules/bulma/sass/components/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "breadcrumb.sass" 4 | @import "card.sass" 5 | @import "dropdown.sass" 6 | @import "level.sass" 7 | @import "media.sass" 8 | @import "menu.sass" 9 | @import "message.sass" 10 | @import "modal.sass" 11 | @import "navbar.sass" 12 | @import "pagination.sass" 13 | @import "panel.sass" 14 | @import "tabs.sass" 15 | -------------------------------------------------------------------------------- /portal/node_modules/bulma/sass/elements/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "box.sass" 4 | @import "button.sass" 5 | @import "container.sass" 6 | @import "content.sass" 7 | @import "form.sass" 8 | @import "icon.sass" 9 | @import "image.sass" 10 | @import "notification.sass" 11 | @import "progress.sass" 12 | @import "table.sass" 13 | @import "tag.sass" 14 | @import "title.sass" 15 | 16 | @import "other.sass" 17 | -------------------------------------------------------------------------------- /portal/node_modules/bulma/sass/grid/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "columns.sass" 4 | @import "tiles.sass" 5 | -------------------------------------------------------------------------------- /portal/node_modules/bulma/sass/layout/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "hero.sass" 4 | @import "section.sass" 5 | @import "footer.sass" 6 | -------------------------------------------------------------------------------- /portal/node_modules/bulma/sass/layout/footer.sass: -------------------------------------------------------------------------------- 1 | $footer-background-color: $white-bis !default 2 | 3 | .footer 4 | background-color: $footer-background-color 5 | padding: 3rem 1.5rem 6rem 6 | -------------------------------------------------------------------------------- /portal/node_modules/bulma/sass/layout/section.sass: -------------------------------------------------------------------------------- 1 | $section-padding: 3rem 1.5rem !default 2 | $section-padding-medium: 9rem 1.5rem !default 3 | $section-padding-large: 18rem 1.5rem !default 4 | 5 | .section 6 | padding: $section-padding 7 | // Responsiveness 8 | +desktop 9 | // Sizes 10 | &.is-medium 11 | padding: $section-padding-medium 12 | &.is-large 13 | padding: $section-padding-large 14 | -------------------------------------------------------------------------------- /portal/node_modules/bulma/sass/utilities/_all.sass: -------------------------------------------------------------------------------- 1 | @charset "utf-8" 2 | 3 | @import "initial-variables.sass" 4 | @import "functions.sass" 5 | @import "derived-variables.sass" 6 | @import "animations.sass" 7 | @import "mixins.sass" 8 | @import "controls.sass" 9 | -------------------------------------------------------------------------------- /portal/node_modules/bulma/sass/utilities/animations.sass: -------------------------------------------------------------------------------- 1 | @keyframes spinAround 2 | from 3 | transform: rotate(0deg) 4 | to 5 | transform: rotate(359deg) 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/bower.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "jquery", 3 | "main": "dist/jquery.js", 4 | "license": "MIT", 5 | "ignore": [ 6 | "package.json" 7 | ], 8 | "keywords": [ 9 | "jquery", 10 | "javascript", 11 | "browser", 12 | "library" 13 | ] 14 | } -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "root": true, 3 | 4 | "extends": "../.eslintrc-browser.json" 5 | } 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/ajax/var/location.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return window.location; 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/ajax/var/nonce.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return Date.now(); 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/ajax/var/rquery.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /\?/ ); 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/attributes.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "./attributes/attr", 4 | "./attributes/prop", 5 | "./attributes/classes", 6 | "./attributes/val" 7 | ], function( jQuery ) { 8 | 9 | "use strict"; 10 | 11 | // Return jQuery for attributes-only inclusion 12 | return jQuery; 13 | } ); 14 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/core/nodeName.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | "use strict"; 4 | 5 | function nodeName( elem, name ) { 6 | 7 | return elem.nodeName && elem.nodeName.toLowerCase() === name.toLowerCase(); 8 | 9 | }; 10 | 11 | return nodeName; 12 | 13 | } ); 14 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/core/readyException.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | jQuery.readyException = function( error ) { 8 | window.setTimeout( function() { 9 | throw error; 10 | } ); 11 | }; 12 | 13 | } ); 14 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/core/stripAndCollapse.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/rnothtmlwhite" 3 | ], function( rnothtmlwhite ) { 4 | "use strict"; 5 | 6 | // Strip and collapse whitespace according to HTML spec 7 | // https://infra.spec.whatwg.org/#strip-and-collapse-ascii-whitespace 8 | function stripAndCollapse( value ) { 9 | var tokens = value.match( rnothtmlwhite ) || []; 10 | return tokens.join( " " ); 11 | } 12 | 13 | return stripAndCollapse; 14 | } ); 15 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/core/toType.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/class2type", 3 | "../var/toString" 4 | ], function( class2type, toString ) { 5 | 6 | "use strict"; 7 | 8 | function toType( obj ) { 9 | if ( obj == null ) { 10 | return obj + ""; 11 | } 12 | 13 | // Support: Android <=2.3 only (functionish RegExp) 14 | return typeof obj === "object" || typeof obj === "function" ? 15 | class2type[ toString.call( obj ) ] || "object" : 16 | typeof obj; 17 | } 18 | 19 | return toType; 20 | } ); 21 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/core/var/rsingleTag.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | // Match a standalone tag 5 | return ( /^<([a-z][^\/\0>:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i ); 6 | } ); 7 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/css/hiddenVisibleSelectors.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../selector" 4 | ], function( jQuery ) { 5 | 6 | "use strict"; 7 | 8 | jQuery.expr.pseudos.hidden = function( elem ) { 9 | return !jQuery.expr.pseudos.visible( elem ); 10 | }; 11 | jQuery.expr.pseudos.visible = function( elem ) { 12 | return !!( elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length ); 13 | }; 14 | 15 | } ); 16 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/css/var/cssExpand.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return [ "Top", "Right", "Bottom", "Left" ]; 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/css/var/getStyles.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return function( elem ) { 5 | 6 | // Support: IE <=11 only, Firefox <=30 (#15098, #14150) 7 | // IE throws on elements created in popups 8 | // FF meanwhile throws on frame elements through "defaultView.getComputedStyle" 9 | var view = elem.ownerDocument.defaultView; 10 | 11 | if ( !view || !view.opener ) { 12 | view = window; 13 | } 14 | 15 | return view.getComputedStyle( elem ); 16 | }; 17 | } ); 18 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/css/var/rboxStyle.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./cssExpand" 3 | ], function( cssExpand ) { 4 | "use strict"; 5 | 6 | return new RegExp( cssExpand.join( "|" ), "i" ); 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/css/var/rnumnonpx.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../var/pnum" 3 | ], function( pnum ) { 4 | "use strict"; 5 | 6 | return new RegExp( "^(" + pnum + ")(?!px)[a-z%]+$", "i" ); 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/data/var/acceptData.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | "use strict"; 4 | 5 | /** 6 | * Determines whether an object can have data 7 | */ 8 | return function( owner ) { 9 | 10 | // Accepts only: 11 | // - Node 12 | // - Node.ELEMENT_NODE 13 | // - Node.DOCUMENT_NODE 14 | // - Object 15 | // - Any 16 | return owner.nodeType === 1 || owner.nodeType === 9 || !( +owner.nodeType ); 17 | }; 18 | 19 | } ); 20 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/data/var/dataPriv.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../Data" 3 | ], function( Data ) { 4 | "use strict"; 5 | 6 | return new Data(); 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/data/var/dataUser.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../Data" 3 | ], function( Data ) { 4 | "use strict"; 5 | 6 | return new Data(); 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/effects/animatedSelector.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../selector", 4 | "../effects" 5 | ], function( jQuery ) { 6 | 7 | "use strict"; 8 | 9 | jQuery.expr.pseudos.animated = function( elem ) { 10 | return jQuery.grep( jQuery.timers, function( fn ) { 11 | return elem === fn.elem; 12 | } ).length; 13 | }; 14 | 15 | } ); 16 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/event/ajax.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../core", 3 | "../event" 4 | ], function( jQuery ) { 5 | 6 | "use strict"; 7 | 8 | // Attach a bunch of functions for handling common AJAX events 9 | jQuery.each( [ 10 | "ajaxStart", 11 | "ajaxStop", 12 | "ajaxComplete", 13 | "ajaxError", 14 | "ajaxSuccess", 15 | "ajaxSend" 16 | ], function( i, type ) { 17 | jQuery.fn[ type ] = function( fn ) { 18 | return this.on( type, fn ); 19 | }; 20 | } ); 21 | 22 | } ); 23 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/event/support.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/support" 3 | ], function( support ) { 4 | 5 | "use strict"; 6 | 7 | support.focusin = "onfocusin" in window; 8 | 9 | return support; 10 | 11 | } ); 12 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/manipulation/_evalUrl.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../ajax" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | jQuery._evalUrl = function( url ) { 8 | return jQuery.ajax( { 9 | url: url, 10 | 11 | // Make this explicit, since user can override this through ajaxSetup (#11264) 12 | type: "GET", 13 | dataType: "script", 14 | cache: true, 15 | async: false, 16 | global: false, 17 | "throws": true 18 | } ); 19 | }; 20 | 21 | return jQuery._evalUrl; 22 | 23 | } ); 24 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/manipulation/setGlobalEval.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../data/var/dataPriv" 3 | ], function( dataPriv ) { 4 | 5 | "use strict"; 6 | 7 | // Mark scripts as having already been evaluated 8 | function setGlobalEval( elems, refElements ) { 9 | var i = 0, 10 | l = elems.length; 11 | 12 | for ( ; i < l; i++ ) { 13 | dataPriv.set( 14 | elems[ i ], 15 | "globalEval", 16 | !refElements || dataPriv.get( refElements[ i ], "globalEval" ) 17 | ); 18 | } 19 | } 20 | 21 | return setGlobalEval; 22 | } ); 23 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/manipulation/var/rcheckableType.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /^(?:checkbox|radio)$/i ); 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/manipulation/var/rscriptType.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /^$|^module$|\/(?:java|ecma)script/i ); 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/manipulation/var/rtagName.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /<([a-z][^\/\0>\x20\t\r\n\f]+)/i ); 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/selector-sizzle.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./core", 3 | "../external/sizzle/dist/sizzle" 4 | ], function( jQuery, Sizzle ) { 5 | 6 | "use strict"; 7 | 8 | jQuery.find = Sizzle; 9 | jQuery.expr = Sizzle.selectors; 10 | 11 | // Deprecated 12 | jQuery.expr[ ":" ] = jQuery.expr.pseudos; 13 | jQuery.uniqueSort = jQuery.unique = Sizzle.uniqueSort; 14 | jQuery.text = Sizzle.getText; 15 | jQuery.isXMLDoc = Sizzle.isXML; 16 | jQuery.contains = Sizzle.contains; 17 | jQuery.escapeSelector = Sizzle.escape; 18 | 19 | } ); 20 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/selector.js: -------------------------------------------------------------------------------- 1 | define( [ "./selector-sizzle" ], function() { 2 | "use strict"; 3 | } ); 4 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/traversing/var/dir.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core" 3 | ], function( jQuery ) { 4 | 5 | "use strict"; 6 | 7 | return function( elem, dir, until ) { 8 | var matched = [], 9 | truncate = until !== undefined; 10 | 11 | while ( ( elem = elem[ dir ] ) && elem.nodeType !== 9 ) { 12 | if ( elem.nodeType === 1 ) { 13 | if ( truncate && jQuery( elem ).is( until ) ) { 14 | break; 15 | } 16 | matched.push( elem ); 17 | } 18 | } 19 | return matched; 20 | }; 21 | 22 | } ); 23 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/traversing/var/rneedsContext.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../../core", 3 | "../../selector" 4 | ], function( jQuery ) { 5 | "use strict"; 6 | 7 | return jQuery.expr.match.needsContext; 8 | } ); 9 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/traversing/var/siblings.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | 3 | "use strict"; 4 | 5 | return function( n, elem ) { 6 | var matched = []; 7 | 8 | for ( ; n; n = n.nextSibling ) { 9 | if ( n.nodeType === 1 && n !== elem ) { 10 | matched.push( n ); 11 | } 12 | } 13 | 14 | return matched; 15 | }; 16 | 17 | } ); 18 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/ObjectFunctionString.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./fnToString" 3 | ], function( fnToString ) { 4 | "use strict"; 5 | 6 | return fnToString.call( Object ); 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/arr.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return []; 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/class2type.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | // [[Class]] -> type pairs 5 | return {}; 6 | } ); 7 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/concat.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | "use strict"; 5 | 6 | return arr.concat; 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/document.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return window.document; 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/documentElement.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./document" 3 | ], function( document ) { 4 | "use strict"; 5 | 6 | return document.documentElement; 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/fnToString.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./hasOwn" 3 | ], function( hasOwn ) { 4 | "use strict"; 5 | 6 | return hasOwn.toString; 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/getProto.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return Object.getPrototypeOf; 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/hasOwn.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./class2type" 3 | ], function( class2type ) { 4 | "use strict"; 5 | 6 | return class2type.hasOwnProperty; 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/indexOf.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | "use strict"; 5 | 6 | return arr.indexOf; 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/isFunction.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return function isFunction( obj ) { 5 | 6 | // Support: Chrome <=57, Firefox <=52 7 | // In some browsers, typeof returns "function" for HTML elements 8 | // (i.e., `typeof document.createElement( "object" ) === "function"`). 9 | // We don't want to classify *any* DOM node as a function. 10 | return typeof obj === "function" && typeof obj.nodeType !== "number"; 11 | }; 12 | 13 | } ); 14 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/isWindow.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return function isWindow( obj ) { 5 | return obj != null && obj === obj.window; 6 | }; 7 | 8 | } ); 9 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/pnum.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | return ( /[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/ ).source; 5 | } ); 6 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/push.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | "use strict"; 5 | 6 | return arr.push; 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/rcssNum.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "../var/pnum" 3 | ], function( pnum ) { 4 | 5 | "use strict"; 6 | 7 | return new RegExp( "^(?:([+-])=|)(" + pnum + ")([a-z%]*)$", "i" ); 8 | 9 | } ); 10 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/rnothtmlwhite.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | // Only count HTML whitespace 5 | // Other whitespace should count in values 6 | // https://infra.spec.whatwg.org/#ascii-whitespace 7 | return ( /[^\x20\t\r\n\f]+/g ); 8 | } ); 9 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/slice.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./arr" 3 | ], function( arr ) { 4 | "use strict"; 5 | 6 | return arr.slice; 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/support.js: -------------------------------------------------------------------------------- 1 | define( function() { 2 | "use strict"; 3 | 4 | // All support tests are defined in their respective modules. 5 | return {}; 6 | } ); 7 | -------------------------------------------------------------------------------- /portal/node_modules/jquery/src/var/toString.js: -------------------------------------------------------------------------------- 1 | define( [ 2 | "./class2type" 3 | ], function( class2type ) { 4 | "use strict"; 5 | 6 | return class2type.toString; 7 | } ); 8 | -------------------------------------------------------------------------------- /portal/run_local_server.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | export DBIX_QUERYLOG_COLOR=green 4 | export DBIX_QUERYLOG_EXPLAIN=1 5 | plackup -s Gazelle -p 8888 -E production -MDBIx::QueryLog -a script/isucon8-portal-server -R lib 6 | -------------------------------------------------------------------------------- /portal/sql/00_create_database.sql: -------------------------------------------------------------------------------- 1 | CREATE DATABASE IF NOT EXISTS isucon8f_portal DEFAULT CHARACTER SET utf8mb4; 2 | GRANT ALL ON isucon8f_portal.* TO 'isucon'@'%' IDENTIFIED BY 'isucon'; 3 | -------------------------------------------------------------------------------- /portal/sql/01_import.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/sql/01_import.sh -------------------------------------------------------------------------------- /portal/static/css/admin.css: -------------------------------------------------------------------------------- 1 | body { 2 | background-color: hsl(0, 0%, 96%); 3 | } 4 | 5 | body.is-simple-layout.is-admin { 6 | background-color: hsl(348, 90%, 68%); 7 | } 8 | 9 | .menu-list a.is-active { 10 | background-color: hsl(348, 100%, 61%); 11 | } -------------------------------------------------------------------------------- /portal/static/css/jquery.tablesorter.pager.min.css: -------------------------------------------------------------------------------- 1 | .tablesorter-pager{padding:5px}td.tablesorter-pager{background-color:#e6eeee;margin:0}.tablesorter-pager img{vertical-align:middle;margin-right:2px;cursor:pointer}.tablesorter-pager .pagedisplay{padding:0 5px 0 5px;width:auto;white-space:nowrap;text-align:center}.tablesorter-pager select{margin:0;padding:0}.tablesorter-pager.disabled{display:none}.tablesorter-pager .disabled{opacity:.5;cursor:default} -------------------------------------------------------------------------------- /portal/static/img/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/img/.gitignore -------------------------------------------------------------------------------- /portal/static/img/isucon_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/img/isucon_icon.png -------------------------------------------------------------------------------- /portal/static/img/isucon_logo.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/img/isucon_logo.jpg -------------------------------------------------------------------------------- /portal/static/img/isucon_logo@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/img/isucon_logo@2x.png -------------------------------------------------------------------------------- /portal/static/img/isucon_logo@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/img/isucon_logo@3x.png -------------------------------------------------------------------------------- /portal/static/img/isucon_logo_white.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/img/isucon_logo_white.png -------------------------------------------------------------------------------- /portal/static/img/isucon_logo_white@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/img/isucon_logo_white@2x.png -------------------------------------------------------------------------------- /portal/static/img/isucon_logo_white@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/img/isucon_logo_white@3x.png -------------------------------------------------------------------------------- /portal/static/img/landing_bg_01.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/img/landing_bg_01.jpg -------------------------------------------------------------------------------- /portal/static/js/main.js: -------------------------------------------------------------------------------- 1 | $(function() { 2 | $('.table').tablesorter(); 3 | }); 4 | -------------------------------------------------------------------------------- /portal/static/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/robots.txt -------------------------------------------------------------------------------- /portal/static/webfonts/fa-brands-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-brands-400.eot -------------------------------------------------------------------------------- /portal/static/webfonts/fa-brands-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-brands-400.ttf -------------------------------------------------------------------------------- /portal/static/webfonts/fa-brands-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-brands-400.woff -------------------------------------------------------------------------------- /portal/static/webfonts/fa-brands-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-brands-400.woff2 -------------------------------------------------------------------------------- /portal/static/webfonts/fa-regular-400.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-regular-400.eot -------------------------------------------------------------------------------- /portal/static/webfonts/fa-regular-400.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-regular-400.ttf -------------------------------------------------------------------------------- /portal/static/webfonts/fa-regular-400.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-regular-400.woff -------------------------------------------------------------------------------- /portal/static/webfonts/fa-regular-400.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-regular-400.woff2 -------------------------------------------------------------------------------- /portal/static/webfonts/fa-solid-900.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-solid-900.eot -------------------------------------------------------------------------------- /portal/static/webfonts/fa-solid-900.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-solid-900.ttf -------------------------------------------------------------------------------- /portal/static/webfonts/fa-solid-900.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-solid-900.woff -------------------------------------------------------------------------------- /portal/static/webfonts/fa-solid-900.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/portal/static/webfonts/fa-solid-900.woff2 -------------------------------------------------------------------------------- /portal/t/00_compile.t: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | use Test::More; 4 | 5 | 6 | use ISUCON8::Portal; 7 | use ISUCON8::Portal::Web; 8 | use ISUCON8::Portal::Web::View; 9 | use ISUCON8::Portal::Web::ViewFunctions; 10 | 11 | use ISUCON8::Portal::DB::Schema; 12 | use ISUCON8::Portal::Web::Dispatcher; 13 | 14 | 15 | pass "All modules can load."; 16 | 17 | done_testing; 18 | -------------------------------------------------------------------------------- /portal/t/01_root.t: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | use utf8; 4 | use t::Util; 5 | use Plack::Test; 6 | use Plack::Util; 7 | use Test::More; 8 | 9 | my $app = Plack::Util::load_psgi 'script/isucon8-portal-server'; 10 | test_psgi 11 | app => $app, 12 | client => sub { 13 | my $cb = shift; 14 | my $req = HTTP::Request->new(GET => 'http://localhost/'); 15 | my $res = $cb->($req); 16 | is $res->code, 200; 17 | diag $res->content if $res->code != 200; 18 | }; 19 | 20 | done_testing; 21 | -------------------------------------------------------------------------------- /portal/t/02_mech.t: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | use utf8; 4 | use t::Util; 5 | use Plack::Test; 6 | use Plack::Util; 7 | use Test::More; 8 | use Test::Requires 'Test::WWW::Mechanize::PSGI'; 9 | 10 | my $app = Plack::Util::load_psgi 'script/isucon8-portal-server'; 11 | 12 | my $mech = Test::WWW::Mechanize::PSGI->new(app => $app); 13 | $mech->get_ok('/'); 14 | 15 | done_testing; 16 | -------------------------------------------------------------------------------- /portal/xt/01_pod.t: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | use Test::More; 4 | eval "use Test::Pod 1.00"; 5 | plan skip_all => "Test::Pod 1.00 required for testing POD" if $@; 6 | all_pod_files_ok(); 7 | -------------------------------------------------------------------------------- /webapp/docker-compose.go.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | isucoin: 4 | build: go 5 | command: 6 | - "sh" 7 | - "-c" 8 | - "dep ensure && go run ./webapp/main.go" 9 | working_dir: /go/src/isucon8/isucoin 10 | volumes: 11 | - ./go/src/isucon8:/go/src/isucon8 12 | 13 | volumes: 14 | gopath: 15 | -------------------------------------------------------------------------------- /webapp/docker-compose.mockservice.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | mockservice: 4 | image: golang:1.10 5 | working_dir: /go/src/mockservice 6 | volumes: 7 | - gopath:/go 8 | - ./mockservice:/go/src/mockservice 9 | ports: 10 | - "14690:14690" 11 | - "14809:14809" 12 | command: sh ./docker-run.sh 13 | 14 | isucoin: 15 | links: 16 | - mockservice 17 | -------------------------------------------------------------------------------- /webapp/docker-compose.perl.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | isucoin: 4 | environment: 5 | - "TZ=Asia/Tokyo" 6 | build: perl 7 | command: 8 | - "sh" 9 | - "-c" 10 | - "cpm install && carton install && carton exec plackup -s Starlet --port=$${ISU_APP_PORT} --reload --max-workers=5 app.psgi" 11 | working_dir: /perl 12 | volumes: 13 | - ./perl:/perl 14 | - ./public:/perl/public 15 | - perllocallib:/perl/local 16 | 17 | volumes: 18 | perllocallib: 19 | -------------------------------------------------------------------------------- /webapp/docker-compose.php.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | nginx: 4 | volumes: 5 | - ./php:/var/www 6 | - ./nginx/nginx.php.conf:/etc/nginx/nginx.conf 7 | depends_on: 8 | - isucoin 9 | 10 | isucoin: 11 | build: php 12 | image: php 13 | working_dir: /var/www 14 | volumes: 15 | - ./php:/var/www 16 | - ./php/php-fpm.conf:/usr/local/etc/php-fpm.d/zz-www.conf 17 | 18 | composer: 19 | restart: 'no' 20 | image: composer 21 | command: install 22 | volumes: 23 | - ./php:/app 24 | -------------------------------------------------------------------------------- /webapp/docker-compose.python.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | isucoin: 4 | build: python 5 | environment: 6 | - "TZ=Asia/Tokyo" 7 | command: 8 | - "sh" 9 | - "-c" 10 | - "pipenv sync && pipenv run gunicorn -w5 isucoin:app -b :5000 --access-logfile=-" 11 | working_dir: /app 12 | volumes: 13 | - ./python:/app 14 | - virtualenvs:/root/.local/share/virtualenvs 15 | volumes: 16 | virtualenvs: 17 | -------------------------------------------------------------------------------- /webapp/docker-compose.ruby.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | isucoin: 4 | build: ruby 5 | environment: 6 | BUNDLE_PATH: "/bundle" 7 | RACK_ENV: production 8 | command: 9 | - "sh" 10 | - "-c" 11 | - "bundle install && bundle exec puma -p 5000 -t 5:5" 12 | working_dir: /app 13 | volumes: 14 | - bundle:/bundle 15 | - ./ruby:/app 16 | - ./public:/public 17 | 18 | volumes: 19 | bundle: 20 | -------------------------------------------------------------------------------- /webapp/frontend/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not ie <= 8 4 | -------------------------------------------------------------------------------- /webapp/frontend/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw* 22 | -------------------------------------------------------------------------------- /webapp/frontend/README.md: -------------------------------------------------------------------------------- 1 | # frontend 2 | 3 | ## Project setup 4 | ``` 5 | yarn install 6 | ``` 7 | 8 | ### Compiles and hot-reloads for development 9 | ``` 10 | yarn run serve 11 | ``` 12 | 13 | ### Compiles and minifies for production 14 | ``` 15 | yarn run build 16 | ``` 17 | 18 | ### Run your tests 19 | ``` 20 | yarn run test 21 | ``` 22 | 23 | ### Lints and fixes files 24 | ``` 25 | yarn run lint 26 | ``` 27 | -------------------------------------------------------------------------------- /webapp/frontend/babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: [ 3 | '@vue/app' 4 | ] 5 | } 6 | -------------------------------------------------------------------------------- /webapp/frontend/postcss.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | plugins: { 3 | autoprefixer: {} 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /webapp/frontend/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/webapp/frontend/public/favicon.ico -------------------------------------------------------------------------------- /webapp/frontend/public/img/isucoin_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/webapp/frontend/public/img/isucoin_logo.png -------------------------------------------------------------------------------- /webapp/frontend/src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/webapp/frontend/src/assets/logo.png -------------------------------------------------------------------------------- /webapp/frontend/src/components/FailSignup.vue: -------------------------------------------------------------------------------- 1 | 4 | 5 | 12 | 13 | 19 | -------------------------------------------------------------------------------- /webapp/frontend/src/main.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import router from './router' 4 | import store from './store' 5 | 6 | Vue.config.productionTip = false 7 | 8 | new Vue({ 9 | router, 10 | store, 11 | render: (h) => h(App), 12 | }).$mount('#app') 13 | -------------------------------------------------------------------------------- /webapp/frontend/src/router.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Router from 'vue-router' 3 | import Top from './views/Top.vue' 4 | 5 | Vue.use(Router) 6 | 7 | export default new Router({ 8 | mode: 'history', 9 | base: process.env.BASE_URL, 10 | routes: [ 11 | { 12 | path: '/', 13 | name: 'top', 14 | component: Top, 15 | }, 16 | ], 17 | }) 18 | -------------------------------------------------------------------------------- /webapp/frontend/src/shims-tsx.d.ts: -------------------------------------------------------------------------------- 1 | import Vue, { VNode } from 'vue' 2 | 3 | declare global { 4 | namespace JSX { 5 | // tslint:disable no-empty-interface 6 | interface Element extends VNode {} 7 | // tslint:disable no-empty-interface 8 | interface ElementClass extends Vue {} 9 | interface IntrinsicElements { 10 | [elem: string]: any 11 | } 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /webapp/frontend/src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import Vue from 'vue' 3 | export default Vue 4 | } 5 | -------------------------------------------------------------------------------- /webapp/frontend/tslint.json: -------------------------------------------------------------------------------- 1 | { 2 | "defaultSeverity": "warning", 3 | "extends": [ 4 | "tslint:recommended" 5 | ], 6 | "linterOptions": { 7 | "exclude": [ 8 | "node_modules/**" 9 | ] 10 | }, 11 | "rules": { 12 | "quotemark": [true, "single"], 13 | "indent": [true, "spaces", 2], 14 | "interface-name": false, 15 | "ordered-imports": false, 16 | "object-literal-sort-keys": false, 17 | "no-consecutive-blank-lines": false, 18 | "semicolon": [true, "never"] 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /webapp/frontend/vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | outputDir: '../public' 3 | } -------------------------------------------------------------------------------- /webapp/go/.gitignore: -------------------------------------------------------------------------------- 1 | vendor/* 2 | pkg 3 | -------------------------------------------------------------------------------- /webapp/go/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM golang:1.11 2 | 3 | RUN apt-get update && apt-get -y install mysql-client 4 | RUN curl -sL https://github.com/golang/dep/releases/download/v0.5.0/dep-linux-amd64 > /usr/bin/dep && chmod +x /usr/bin/dep 5 | -------------------------------------------------------------------------------- /webapp/go/Makefile: -------------------------------------------------------------------------------- 1 | DIR = $(shell pwd) 2 | all: build 3 | 4 | .PHONY: clean 5 | clean: 6 | rm -rf isucoin 7 | 8 | init: 9 | mkdir -p ${DIR}/bin 10 | curl https://raw.githubusercontent.com/golang/dep/master/install.sh | GOPATH=${DIR} DEP_RELEASE_TAG=v0.5.0 sh 11 | 12 | deps: 13 | cd ${DIR}/src/isucon8/isucoin; GOPATH=${DIR} ${DIR}/bin/dep ensure 14 | 15 | .PHONY: build 16 | build: 17 | GOPATH=${DIR} go build -v -o isucoin isucon8/isucoin/webapp 18 | -------------------------------------------------------------------------------- /webapp/go/src/isucon8/isucoin/.gitignore: -------------------------------------------------------------------------------- 1 | vendor/* 2 | -------------------------------------------------------------------------------- /webapp/mockservice/Procfile: -------------------------------------------------------------------------------- 1 | isubank: isubank 2 | isulogger: isulogger 3 | -------------------------------------------------------------------------------- /webapp/mockservice/docker-run.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | go get github.com/mattn/goreman 3 | go install mockservice/isubank 4 | go install mockservice/isulogger 5 | exec goreman start 6 | -------------------------------------------------------------------------------- /webapp/mysql/conf.d/my.cnf: -------------------------------------------------------------------------------- 1 | [mysqld] 2 | default_authentication_plugin=mysql_native_password 3 | performance_schema=off 4 | -------------------------------------------------------------------------------- /webapp/perl/.gitignore: -------------------------------------------------------------------------------- 1 | local 2 | -------------------------------------------------------------------------------- /webapp/perl/Makefile.PL: -------------------------------------------------------------------------------- 1 | use ExtUtils::MakeMaker; 2 | 3 | WriteMakefile( 4 | NAME => 'Isucoin', 5 | VERSION_FROM => 'lib/Isucoin.pm', 6 | PREREQ_PM => { 7 | 'Kossy' => '0.40', 8 | }, 9 | MIN_PERL_VERSION => '5.008001' 10 | ); 11 | 12 | -------------------------------------------------------------------------------- /webapp/perl/lib/Isucoin.pm: -------------------------------------------------------------------------------- 1 | package Isucoin; 2 | 3 | use strict; 4 | use warnings; 5 | use utf8; 6 | 7 | our $VERSION = 0.40; 8 | 9 | 1; 10 | 11 | -------------------------------------------------------------------------------- /webapp/perl/t/00_compile.t: -------------------------------------------------------------------------------- 1 | use strict; 2 | use warnings; 3 | use Test::More; 4 | 5 | use_ok $_ for qw( 6 | Isucoin 7 | Isucoin::Web 8 | ); 9 | 10 | done_testing; 11 | 12 | 13 | -------------------------------------------------------------------------------- /webapp/php/.gitignore: -------------------------------------------------------------------------------- 1 | vendor 2 | -------------------------------------------------------------------------------- /webapp/php/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM php:7.2.10-fpm-alpine 2 | 3 | RUN docker-php-ext-install pdo_mysql 4 | 5 | RUN apk --no-cache add tzdata && \ 6 | cp /usr/share/zoneinfo/Asia/Tokyo /etc/localtime && \ 7 | apk del tzdata 8 | -------------------------------------------------------------------------------- /webapp/php/composer.json: -------------------------------------------------------------------------------- 1 | { 2 | "require": { 3 | "ext-pdo": "*", 4 | "slim/slim": "^3.1", 5 | "bryanjhv/slim-session": "~3.0", 6 | "guzzlehttp/guzzle": "~6.3", 7 | "adbario/slim-secure-session-middleware": "^1.3" 8 | }, 9 | "autoload": { 10 | "psr-4": { 11 | "Isucon8\\": "src/Isucon8/" 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /webapp/php/index.php: -------------------------------------------------------------------------------- 1 | = '2018-10-16 10:00:00'") 14 | cur.execute("DELETE FROM trade WHERE created_at >= '2018-10-16 10:00:00'") 15 | cur.execute("DELETE FROM user WHERE created_at >= '2018-10-16 10:00:00'") 16 | -------------------------------------------------------------------------------- /webapp/ruby/.gitignore: -------------------------------------------------------------------------------- 1 | /vendor/bundle/ 2 | -------------------------------------------------------------------------------- /webapp/ruby/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:18.04 2 | ENV DEBIAN_FRONTEND=noninteractive 3 | RUN apt-get update && apt-get install -y build-essential git-core tzdata ruby ruby-dev ruby-bundler libmysqlclient-dev 4 | ENV TZ=Asia/Tokyo 5 | -------------------------------------------------------------------------------- /webapp/ruby/Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'puma' 4 | gem 'sinatra' 5 | gem 'mysql2' 6 | gem 'mysql2-cs-bind' 7 | gem 'bcrypt' 8 | 9 | gem 'isulogger', path: File.join(__dir__, 'isulogger') 10 | gem 'isubank', path: File.join(__dir__, 'isubank') 11 | 12 | group :development do 13 | gem 'sinatra-contrib' 14 | end 15 | -------------------------------------------------------------------------------- /webapp/ruby/config.ru: -------------------------------------------------------------------------------- 1 | require_relative './app' 2 | $stdout.sync = true 3 | run Isucoin::Web 4 | -------------------------------------------------------------------------------- /webapp/sql/00_create_isucoin_database.sql: -------------------------------------------------------------------------------- 1 | create database if not exists isucoin default character set utf8mb4; 2 | 3 | -------------------------------------------------------------------------------- /webapp/sql/01_create_user.sql: -------------------------------------------------------------------------------- 1 | CREATE USER 'isucon'@'%' IDENTIFIED WITH mysql_native_password BY 'isucon'; 2 | GRANT ALL ON isucoin.* TO 'isucon'@'%'; 3 | CREATE USER 'isucon'@'localhost' IDENTIFIED WITH mysql_native_password BY 'isucon'; 4 | GRANT ALL ON isucoin.* TO 'isucon'@'localhost'; 5 | -------------------------------------------------------------------------------- /webapp/sql/z_initializedata.sql.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/isucon/isucon8-final/38c4f6e20388d1c4f1ed393fb75b38d472e44abf/webapp/sql/z_initializedata.sql.gz --------------------------------------------------------------------------------