text:
.text-center {
  text-align: center !important;
}

* {
  box-sizing: border-box;
}

*:before,
*:after {
  box-sizing: border-box;
}

blockquote,
body,
fieldset,
figure,
menu,
pre,
ol,
ul,
dd,
dl {
  margin: 0;
  padding: 0;
  word-wrap: break-word;
}

ol,
ul,
dd,
dl {
  padding-left: 2rem;
}

h1 {
  font-size: 1.5rem;
}

h2 {
  font-size: 1.5rem;
}

h3 {
  font-size: 1.25rem;
}

h4,
h5,
h6 {
  font-size: 1rem;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  margin: 40px auto 25px auto;
  line-height: 1.5rem;
  font-weight: 500;
}

b,
optgroup,
strong {
  font-weight: 600;
}

a {
  color: inherit;
}

p {
  margin: 0.75rem 0;
}

.post-content p {
  margin: 0.75rem 0;
  font-weight: normal;
}

a:link,
a:visited,
a:hover,
a:active {
  outline: none;
  text-decoration: none;
}

.pr {
  position: absolute !important;
  right: 0;
}

.float-r {
  float: right;
}

em {
  color: #FF5722;
  font-weight: bold;
  font-style: normal;
}

footer {
  background-color: #fff;
  border-top: 1px solid #eee;
  padding-bottom: 1.5rem !important;
  padding-top: 1.5rem !important;
  margin-top: 1rem !important;
  color: #555;
  font-size: 12px;
  position: relative;
  z-index: 1024;
}

iframe {
  width: 100%;
  height: 100%;
}

.clearfix:before,
.clearfix:after {
  content: " ";
  display: table;
}

.clearfix:after {
  clear: both;
}

/* 设置滚动条的样式 */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

/* 滚动槽 */
::-webkit-scrollbar-track {
  border-radius: 4px;
}

/* 滚动条滑块 */
::-webkit-scrollbar-thumb {
  background-color: rgba(0, 0, 0, 0.1);
  border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
  background-color: rgba(0, 0, 0, 0.3);
}

.tag-button {
  font-size: 12px;
  line-height: 30px;
  display: inline-block;
  height: 30px;
  margin: 5px;
  color: #555;
  border-radius: 15px;
  background: #f6f6f6;
  min-width: 50px;
  text-align: center;
  padding: 0 10px;
}

.tag-button a {
  padding: 0 12px;
  color: #555;
  display: inline-block;
}

.tag-button:hover {
  color: #555;
  background: #efefef;
}

.post-page {
  background-color: #fff;
  margin: 0 auto;
  max-width: 920px;
  padding: 0 10px;
  position: relative;
}

@media screen and (min-width: 576px) {
  .post-page {
    padding: 0 60px;
  }
}

html,
body {
  font-size: 16px;
  font-weight: 300;
  font-family: "Microsoft Yahei", "Helvetica Neue", "PingFang SC", Arial, "Hiragino Sans GB", "Heiti SC", "WenQuanYi Micro Hei", sans-serif;
}

body {
  color: #202020;
  line-height: 1.8rem;
  margin: 0;
}

.left {
  text-align: left;
}

.right {
  text-align: right;
}

.home-menu {
  background: transparent;
  height: 50px;
  padding: 5px 20px;
  display: none;
}

@media screen {
  .home-menu {
    display: block;
  }
}

@media screen and (max-width: 1020px) {
  .home-menu {
    background: white;
    padding: 5px;
  }
}

.home-menu .pure-menu-heading {
  padding: 0;
  position: relative;
}

.home-menu img {
  display: inline-block;
  vertical-align: middle;
}

.home-menu .title {
  color: #202020;
  margin: 0 5px;
  display: inline-block;
  vertical-align: middle;
  font-family: '思源宋体', '宋体', '黑体';
  font-weight: 700;
  font-size: 25px;
  line-height: 40px;
}

.home-menu .logo {
  cursor: pointer;
  position: absolute;
  left: 50%;
  top: 8px;
  margin-left: -16px;
  width: 32px;
  height: 32px;
  padding: 5px;
}

@media screen and (max-width: 1280px) {
  .home-menu .logo {
    left: auto;
    right: 10px;
  }
}

.home-menu .pure-menu-list .toc-menu {
  display: none;
}

@media screen and (min-width: 1280px) {
  .home-menu .pure-menu-list .toc-menu {
    display: initial;
  }
}

.home-menu .pure-menu-list .menu-icon {
  width: 18px;
  height: 18px;
}

.home-menu .pure-menu-list .pure-menu-children {
  border: 1px solid #999;
}

.home-menu .pure-menu-list .pure-menu-link {
  padding: 4px 15px;
  color: inherit;
}

.home-menu .pure-menu-list .pure-menu-link:after {
  content: '';
  display: inline;
  vertical-align: middle;
}

.home-menu .pure-menu-list .pure-menu-link:focus {
  background-color: #fff;
}

.home-menu .pure-menu-list .pure-menu-item.actived {
  color: #2196f3;
}

.container {
  padding-top: 60px;
  margin: 0 auto;
  max-width: 1000px;
  min-height: calc(100vh - 120px);
}

@media screen and (min-width: 1280px) {
  .container {
    max-width: 1200px;
  }
}

.recent-posts {
  margin: 0 auto;
  max-width: 800px;
}

.recent-posts .recent-post-item {
  margin: 10px;
  padding: 10px 0;
  border-top: none;
}

.recent-posts .recent-post-item .post-title {
  position: relative;
}

.recent-posts .recent-post-item .post-excerpt {
  color: #999;
}

@media screen and (max-width: 576px) {
  .recent-posts .recent-post-item .post-excerpt {
    display: none;
  }
}

.recent-posts .recent-post-item .post-footer {
  font-size: 14px;
  position: relative;
  padding-right: 60px;
  min-height: 30px;
}

.recent-posts .recent-post-item .post-footer a {
  font-weight: 300;
  display: block;
  padding: 2px 6px;
  line-height: 1rem;
}

.recent-posts .recent-post-item .title {
  line-height: 1.8rem;
  display: block;
  padding-right: 64px;
}

.recent-posts .recent-post-item .title h2 {
  font-size: 1.2rem;
  font-weight: 300;
}

@media screen and (max-width: 576px) {
  .recent-posts .recent-post-item .title h2 {
    font-size: 1rem;
  }
}

.recent-posts .recent-post-item .title:hover {
  color: #2196f3;
}

.recent-posts .recent-post-item .index-tag-list {
  display: inline;
  padding: 0;
}

.recent-posts .recent-post-item .index-tag-list .index-tag-list-item {
  margin-right: 5px;
  color: #999;
  border-radius: 2px;
  display: inline-block;
  list-style: none;
  border: 1px solid rgba(0, 0, 0, 0.06);
}

.recent-posts .recent-post-item .index-tag-list .index-tag-list-item:hover {
  background-color: #efefef;
}

.recent-posts .recent-post-item .time {
  top: 0;
  font-size: 14px;
  color: #999;
}

.page-nav {
  margin: 12px 0 0;
  padding: 10px 0 10px;
}

.page-nav .page-number {
  border-bottom: 1px solid #eee;
  display: inline-block;
  position: relative;
  top: -1px;
  margin: 0 10px;
  padding: 0 11px;
}

.page-nav .page-number:hover {
  border-bottom-color: #222;
}

.page-nav .page-number.current {
  color: #fff;
  background: #ccc;
  border-top-color: #ccc;
}

.post {
  background-color: #fff;
  margin: 0 auto;
  max-width: 920px;
  padding: 0 10px;
  position: relative;
}

@media screen and (min-width: 576px) {
  .post {
    padding: 0 60px;
  }
}

.post .post-header {
  margin: 10px 0 20px;
}

.post .post-header .title {
  margin: 1rem;
  line-height: 2rem;
}

.post .post-header .time {
  color: #999;
}

.post hr {
  width: 10%;
}

.post blockquote {
  padding: 1rem;
  margin: 1rem 0;
  padding-left: 20px;
  border: 1px solid #eee;
  border-left: 4px solid #ccc;
  color: #555;
}

.post blockquote p {
  margin: 0;
}

.post table {
  max-width: 100%;
}

.post img {
  text-align: center;
  margin: 0 auto;
  display: block;
  max-width: 100%;
  max-height: 1024px;
}

.post .post-content h2,
.post .post-content h3,
.post .post-content h4,
.post .post-content h5,
.post .post-content h6 {
  padding-top: 70px;
  margin-top: -56px;
}

.post .post-content table {
  width: 100%;
  max-width: 100%;
  margin-bottom: 21px;
  border: 1px solid #ddd;
}

.post .post-content table tr {
  border-top: 1px solid #cccccc;
  background-color: white;
  margin: 0;
  padding: 0;
}

.post .post-content table tr:nth-child(2n) {
  background-color: #f8f8f8;
}

.post .post-content table th {
  font-weight: bold;
  border: 1px solid #cccccc;
  text-align: left;
  margin: 0;
  padding: 6px 13px;
  background-color: #f6f8fa;
}

.post .post-content table td {
  border: 1px solid #cccccc;
  text-align: left;
  margin: 0;
  padding: 6px 13px;
}

.post .post-content table th:first-child,
.post .post-content table td:first-child {
  margin-top: 0;
}

.post .post-content table th:last-child,
.post .post-content table td:last-child {
  margin-bottom: 0;
}

.post .post-content .note {
  position: relative;
  padding: 15px;
  margin-bottom: 20px;
  border: 1px solid #eee;
  border-left-width: 5px;
}

.post .post-content .note p {
  margin: 0;
}

.post .post-content .note.primary {
  border-left-color: #6f42c1;
}

.post .post-content .note.info {
  border-left-color: #428bca;
}

.post .post-content .note.success {
  border-left-color: #5cb85c;
}

.post .post-content .note.warning {
  border-left-color: #f0ad4e;
}

.post .post-content .note.danger {
  border-left-color: #d9534f;
}

.post .post-content a {
  color: #2196f3;
}

.post .post-tags {
  text-align: center;
  margin: 20px 0;
}

.post .post-tags .article-tag-list-item {
  font-size: 12px;
  line-height: 30px;
  display: inline-block;
  height: 30px;
  margin: 5px;
  color: #555;
  border-radius: 15px;
  background: #f6f6f6;
  min-width: 50px;
  text-align: center;
  padding: 0 10px;
}

.post .post-tags .article-tag-list-item a {
  padding: 0 12px;
  color: #555;
  display: inline-block;
}

.post .post-tags .article-tag-list-item:hover {
  color: #555;
  background: #efefef;
}

.page {
  max-width: 920px;
  border: none;
  box-shadow: none;
}

.page hr {
  width: 10%;
}

.page li {
  padding: .25rem 0;
}

.page .tag-list .tag-list-item {
  font-size: 12px;
  line-height: 30px;
  display: inline-block;
  height: 30px;
  margin: 5px;
  color: #555;
  border-radius: 15px;
  background: #f6f6f6;
  min-width: 50px;
  text-align: center;
  padding: 0 10px;
}

.page .tag-list .tag-list-item a {
  padding: 0 12px;
  color: #555;
  display: inline-block;
}

.page .tag-list .tag-list-item:hover {
  color: #555;
  background: #efefef;
}

.page .tag-list .tag-list-item .tag-list-link {
  font-weight: 500;
  margin-right: 5px;
}

.tag-page {
  background-color: #fff;
  margin: 0 auto;
  max-width: 920px;
  padding: 0 10px;
  position: relative;
  border: none !important;
  box-shadow: none !important;
}

@media screen and (min-width: 576px) {
  .tag-page {
    padding: 0 60px;
  }
}

.tag-page .tag-item {
  padding: .5rem 0;
}

.tag-page .tag-item time {
  color: #999;
  font-size: 12px;
  float: right;
}

@media screen and (max-width: 576px) {
  .tag-page .tag-item time {
    display: block;
    float: none;
  }
}

.toc-article {
  display: none;
}

.post-nav {
  background-color: #fff;
  display: block;
  display: -ms-flexbox;
  display: flex;
  font-size: 0;
  margin: 10px auto;
  max-width: 920px;
  padding: 0 60px;
  position: relative;
}

.post-nav .post-nav-item {
  display: inline-block;
  -ms-flex: 1;
  flex: 1;
  font-size: 14px;
  padding: 10px 0;
  position: relative;
  vertical-align: top;
  width: 49.5%;
}

.post-nav .post-nav-item a {
  display: inline-block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  width: 100%;
}

.post-nav .post-nav-prev {
  text-align: right;
}

@media screen and (max-width: 576px) {
  .post-nav {
    display: none;
  }
}

.toc-article {
  display: none;
}

@media screen and (min-width: 1280px) {
  .toc-article {
    max-height: calc(100vh - 80px);
    position: fixed;
    top: 60px;
    font-size: 13px;
    width: 200px;
    padding: 10px;
    margin-left: 1050px;
    overflow-y: auto;
    border-radius: 4px;
    color: white;
    background-color: #555;
  }
}

.toc-article ol,
.toc-article ul {
  list-style: none;
  padding-left: 0;
}

.toc-article ol ol,
.toc-article ul ol,
.toc-article ol ul,
.toc-article ul ul {
  padding-left: 1rem;
}

.disqus-comments {
  background-color: #fff;
  display: block;
  margin: 0 auto;
  max-width: 920px;
  padding: 0 15px;
}

.search-content .pure-input {
  border-radius: 2px !important;
}

.search-content .pure-input:focus {
  border-color: #202020 !important;
}

.search-content .search-result {
  color: #999;
}

.search-result-list {
  margin-top: 10px;
}

.search-result-list a.search-result-title {
  color: #202020;
  font-weight: normal;
  font-size: 1.2rem;
}

.search-result-list .search-keyword {
  color: #ff5722;
  font-weight: bold;
}

.archives .archive-year-wrap {
  font-size: 1.5rem;
  line-height: 1.5rem;
}

@media screen and (min-width: 476px) {
  .archives .archive-year-wrap {
    margin-left: -1rem;
  }
}

.archives .archive {
  border-left: 2px solid #ccc;
  position: relative;
  padding: .5rem 0;
  padding-left: 1rem !important;
}

.archives .archive:before {
  position: absolute;
  top: 1rem;
  left: -7px;
  z-index: 1;
  display: block;
  content: "";
  background-color: #999;
  width: 12px;
  height: 12px;
  border-radius: 50%;
  border: 2px solid #fff;
}

.archives .archive .title {
  margin: 0;
  font-weight: normal;
}

.archives .archive .date {
  color: #666;
  font-family: 'Montserrat', sans-serif;
  text-transform: uppercase;
  font-size: 0.7rem;
  font-weight: 300;
  letter-spacing: 2px;
}

@media screen and (min-width: 476px) {
  .archives .archive .date {
    position: absolute;
    right: 0;
    top: .5em;
  }
}

.footer .footer-link:after {
  content: "|";
  display: inline;
  margin: 0 5px;
}

.footer .footer-link:last-child:after {
  display: none;
}

.photos .photo {
  margin-bottom: 12px;
}

.video-container {
  width: 100%;
  height: 400px;
}

pre,
code {
  font-family: "Source Code Pro", "courier new", "微软雅黑", "Input Mono", "PT Mono", Consolas, Monaco, Menlo, monospace;
  font-weight: normal;
}

code {
  padding: 2px;
  color: #008c7f;
  margin: 0 2px;
  border-radius: 2px;
  white-space: nowrap;
  font-size: 1em;
  background: #f9f9fa;
  font-weight: bold;
}

pre {
  padding: 10px;
}

pre code {
  padding: 10px;
}

.highlight {
  display: block;
  overflow-x: auto;
  color: #555;
  font-size: 14px;
  border-radius: 2px;
  box-shadow: 0px 1px 2px 1px rgba(0, 0, 0, 0.15);
  background-color: #f3f5f6;
  overflow-y: hidden;
  margin: 20px 0;
  position: relative;
}

.highlight table {
  margin: 0 !important;
  border: none !important;
  position: relative;
}

.highlight table tr {
  border: none !important;
}

.highlight table td {
  border: none !important;
  padding: 0 !important;
}

.highlight table:after {
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  padding: 0 6px;
  font-size: 12px;
  font-weight: 500;
  background: #e6e9ea;
  content: "Code";
  color: #708090;
  height: 28px;
}

.highlight pre,
.highlight code {
  background-color: #f3f5f6;
}

.highlight .line {
  height: 20px;
  line-height: 20px;
}

.highlight .gutter pre {
  padding: 10px;
  color: #869194;
  background-color: #eff2f3;
  text-align: center;
  overflow: hidden;
}

.highlight .code {
  font-size: 14px;
}

.highlight .code pre {
  padding: 38px 10px 10px;
}

.highlight .comment,
.highlight .meta {
  color: #b3b3b3;
}

.highlight .string,
.highlight .value,
.highlight .variable,
.highlight .template-variable,
.highlight .strong,
.highlight .emphasis,
.highlight .quote,
.highlight .inheritance,
.highlight .ruby .symbol,
.highlight .xml .cdata {
  color: #1abc9c;
}

.highlight .keyword,
.highlight .selector-tag,
.highlight .type,
.highlight .javascript .function {
  color: #e96900;
}

.highlight .preprocessor,
.highlight .built_in,
.highlight .params,
.highlight .constant,
.highlight .symbol,
.highlight .bullet,
.highlight .attribute,
.highlight .css .hexcolor {
  color: #1abc9c;
}

.highlight .number,
.highlight .literal {
  color: #ae81ff;
}

.highlight .section,
.highlight .header,
.highlight .name,
.highlight .function,
.highlight .python .decorator,
.highlight .python .title,
.highlight .ruby .function .title,
.highlight .ruby .title .keyword,
.highlight .perl .sub,
.highlight .javascript .title,
.highlight .coffeescript .title {
  color: #525252;
}

.highlight .tag,
.highlight .regexp {
  color: #2973b7;
}

.highlight .title,
.highlight .attr,
.highlight .selector-id,
.highlight .selector-class,
.highlight .selector-attr,
.highlight .selector-pseudo,
.highlight .ruby .constant,
.highlight .xml .tag .title,
.highlight .xml .pi,
.highlight .xml .doctype,
.highlight .html .doctype,
.highlight .css .id,
.highlight .css .pseudo,
.highlight .class,
.highlight .ruby .class .title {
  color: #2973b7;
}

.highlight .css .code .attribute {
  color: #e96900;
}

.highlight .css .class {
  color: #525252;
}

.highlight .tag .attribute {
  color: #e96900;
}

.highlight .addition {
  color: #55a532;
  background-color: #eaffea;
}

.highlight .deletion {
  color: #bd2c00;
  background-color: #ffecec;
}

.highlight .link {
  text-decoration: underline;
}

.highlight .function .keyword {
  color: #0092db;
}

.highlight .function .params {
  color: #808080;
}

.highlight .function .title {
  color: #525252;
  font-weight: 500;
}

.highlight.html>table::after {
  content: "HTML";
}

.highlight.html>figcaption>span::after {
  content: " · HTML";
}

.highlight.html figcaption+table::after {
  display: none;
}

.highlight.javascript>table::after {
  content: "JavaScript";
}

.highlight.javascript>figcaption>span::after {
  content: " · JavaScript";
}

.highlight.javascript figcaption+table::after {
  display: none;
}

.highlight.bash>table::after {
  content: "Bash";
}

.highlight.bash>figcaption>span::after {
  content: " · Bash";
}

.highlight.bash figcaption+table::after {
  display: none;
}

.highlight.css>table::after {
  content: "CSS";
}

.highlight.css>figcaption>span::after {
  content: " · CSS";
}

.highlight.css figcaption+table::after {
  display: none;
}

.highlight.scss>table::after {
  content: "Scss";
}

.highlight.scss>figcaption>span::after {
  content: " · Scss";
}

.highlight.scss figcaption+table::after {
  display: none;
}

.highlight.java>table::after {
  content: "Java";
}

.highlight.java>figcaption>span::after {
  content: " · Java";
}

.highlight.java figcaption+table::after {
  display: none;
}

.highlight.xml>table::after {
  content: "XML";
}

.highlight.xml>figcaption>span::after {
  content: " · XML";
}

.highlight.xml figcaption+table::after {
  display: none;
}

.highlight.python>table::after {
  content: "Python";
}

.highlight.python>figcaption>span::after {
  content: " · Python";
}

.highlight.python figcaption+table::after {
  display: none;
}

.highlight.javascripton>table::after {
  content: "JSON";
}

.highlight.javascripton>figcaption>span::after {
  content: " · JSON";
}

.highlight.javascripton figcaption+table::after {
  display: none;
}

.highlight.swift>table::after {
  content: "Swift";
}

.highlight.swift>figcaption>span::after {
  content: " · Swift";
}

.highlight.swift figcaption+table::after {
  display: none;
}

.highlight.ruby>table::after {
  content: "Ruby";
}

.highlight.ruby>figcaption>span::after {
  content: " · Ruby";
}

.highlight.ruby figcaption+table::after {
  display: none;
}

.highlight.php>table::after {
  content: "PHP";
}

.highlight.php>figcaption>span::after {
  content: " · PHP";
}

.highlight.php figcaption+table::after {
  display: none;
}

.highlight.c>table::after {
  content: "C";
}

.highlight.c>figcaption>span::after {
  content: " · C";
}

.highlight.c figcaption+table::after {
  display: none;
}

.highlight.cpp>table::after {
  content: "C++";
}

.highlight.cpp>figcaption>span::after {
  content: " · C++";
}

.highlight.cpp figcaption+table::after {
  display: none;
}

.highlight.scheme>table::after {
  content: "Scheme";
}

.highlight.scheme>figcaption>span::after {
  content: " · Scheme";
}

.highlight.scheme figcaption+table::after {
  display: none;
}

.highlight.objectivec>table::after {
  content: "Objective-C";
}

.highlight.objectivec>figcaption>span::after {
  content: " · Objective-C";
}

.highlight.objectivec figcaption+table::after {
  display: none;
}

.highlight.yml>table::after {
  content: "YAML";
}

.highlight.yml>figcaption>span::after {
  content: " · YAML";
}

.highlight.yml figcaption+table::after {
  display: none;
}

.highlight.stylus>table::after {
  content: "Stylus";
}

.highlight.stylus>figcaption>span::after {
  content: " · Stylus";
}

.highlight.stylus figcaption+table::after {
  display: none;
}

.highlight.sql>table::after {
  content: "SQL";
}

.highlight.sql>figcaption>span::after {
  content: " · SQL";
}

.highlight.sql figcaption+table::after {
  display: none;
}

.highlight.http>table::after {
  content: "HTTP";
}

.highlight.http>figcaption>span::after {
  content: " · HTTP";
}

.highlight.http figcaption+table::after {
  display: none;
}

.highlight.go>table::after {
  content: "Go";
}

.highlight.go>figcaption>span::after {
  content: " · Go";
}

.highlight.go figcaption+table::after {
  display: none;
}

/*# sourceMappingURL=microb.css.map */


text:
using System;
using System.Collections.Generic;
using System.Linq;
using Alpha.Interfaces.Interfaces;
using Alpha.Infrastructure.ViewModels;
using Alpha.DAL.Context;
using Alpha.Infrastructure.BindingModels;
using System.Data.Entity;
using System.Globalization;
using System.Threading.Tasks;

namespace Alpha.BusinessLogic.Repositories {
    public class GamesRepository : IDisposable, IGamesRepository {

        private AlphaContext db = new AlphaContext();

        public IEnumerable<GameSummary> GetAll() {
            var entities = db.Games
                .Include(p => p.Publisher)
                .ToList()
                .Where(g => g.IsDeleted == false);

            return entities.Select(e => new GameSummary(e)).ToList();
        }

        public async Task<GameDetails> GetById(int id) {
            var entity = await db.Games.Include(p => p.Publisher)
                .Include(a => a.Accessories).Where(a => a.IsDeleted == false)
                .Include(a => a.Addons).Where(a => a.IsDeleted == false)
                .Where(g => g.IsDeleted == false)
                .FirstOrDefaultAsync(g => g.GameId == id);

            if(entity != null) {
                return new GameDetails(entity);
            }

            return null;
        }

        public CreateGameBindingModel Add(CreateGameBindingModel game) {
            var pattern = "dd-MM-yy";
            DateTime returnDate;

            if(!DateTime.TryParseExact(game.ReleaseDate, pattern, null, DateTimeStyles.None, out returnDate)) {
                returnDate = DateTime.UtcNow;
            }

            var entity = new DAL.Models.Games {
                Title = game.Title,
                PublisherId = game.PublisherId,
                ReleaseDate = returnDate,
                PictureLink = game.PictureLink,
                Price = game.Price
            };

            db.Games.Add(entity);
            db.SaveChanges();

            return game;
        }

        public void Update(UpdateGameBindingModel game) {
            var pattern = "dd-MM-yy";
            DateTime returnDate;

            if (!DateTime.TryParseExact(game.ReleaseDate, pattern, null, DateTimeStyles.None, out returnDate)) {
                returnDate = DateTime.UtcNow;
            }

            var entity = db.Games.FirstOrDefault(g => g.GameId == game.GameId);

            entity.Title = game.Title;
            entity.ReleaseDate = returnDate;
            entity.PublisherId = game.PublisherId;
            entity.PictureLink = game.PictureLink;
            entity.Price = game.Price;

            db.Entry(entity).State = EntityState.Modified;
            db.SaveChanges();
        }

        public void Delete(DeleteGameBindingModel game) {
            var entity = db.Games.FirstOrDefault(p => p.GameId == game.GameId);

            db.Games.Remove(entity);
            db.SaveChanges();
        }

        public void DeleteById(int id) {
            var entity = db.Games.FirstOrDefault(p => p.GameId == id);

            db.Games.Remove(entity);
            db.SaveChanges();
        }

        public void Dispose() {
            db.Dispose();
        }
    }
}

redpajama_set_name: RedPajamaGithub


text:
package com.example.rubi.projectsgs;

import junit.framework.TestCase;

public class ServeTest extends TestCase {

    public void testDoGet() throws Exception {

    }
}


text:
require 'spec_helper'

describe Bugsnag::CodeExtractor do
  it "extracts code from a file and adds it to the given hash" do
    file1_hash = { lineNumber: 5 }
    file2_hash = { lineNumber: 7 }

    code_extractor = Bugsnag::CodeExtractor.new(Bugsnag::Configuration.new)
    code_extractor.add_file("spec/fixtures/crashes/file1.rb", file1_hash)
    code_extractor.add_file("spec/fixtures/crashes/file2.rb", file2_hash)

    code_extractor.extract!

    expect(file1_hash).to eq({
      lineNumber: 5,
      code: {
        2 => "",
        3 => "module File1",
        4 => "  def self.foo1",
        5 => "    File2.foo2",
        6 => "  end",
        7 => "",
        8 => "  def self.bar1"
      }
    })

    expect(file2_hash).to eq({
      lineNumber: 7,
      code: {
        4 => "  end",
        5 => "",
        6 => "  def self.bar2",
        7 => "    File1.baz1",
        8 => "  end",
        9 => "",
        10 => "  def self.baz2"
      }
    })
  end

  it "handles extracting code from the first & last line in a file" do
    file1_hash = { lineNumber: 1 }
    file2_hash = { lineNumber: 25 }

    code_extractor = Bugsnag::CodeExtractor.new(Bugsnag::Configuration.new)
    code_extractor.add_file("spec/fixtures/crashes/file1.rb", file1_hash)
    code_extractor.add_file("spec/fixtures/crashes/file2.rb", file2_hash)

    code_extractor.extract!

    expect(file1_hash).to eq({
      lineNumber: 1,
      code: {
        1 => "require_relative 'file2'",
        2 => "",
        3 => "module File1",
        4 => "  def self.foo1",
        5 => "    File2.foo2",
        6 => "  end",
        7 => ""
      }
    })

    expect(file2_hash).to eq({
      lineNumber: 25,
      code: {
        19 => "    puts 'abcdef2'",
        20 => "  end",
        21 => "",
        22 => "  def self.abcdefghi2",
        23 => "    puts 'abcdefghi2'",
        24 => "  end",
        25 => "end"
      }
    })
  end

  it "truncates lines to a maximum of 200 characters" do
    hash = { lineNumber: 4 }

    code_extractor = Bugsnag::CodeExtractor.new(Bugsnag::Configuration.new)
    code_extractor.add_file("spec/fixtures/crashes/file_with_long_lines.rb", hash)

    code_extractor.extract!

    # rubocop:disable Layout/LineLength
    expect(hash).to eq({
      lineNumber: 4,
      code: {
        1 => "# rubocop:disable Layout/LineLength",
        2 => "def a_super_long_function_name_that_would_be_really_impractical_to_use_but_luckily_this_is_just_for_a_test_to_prove_we_can_handle_really_long_lines_of_code_that_go_over_200_characters_and_some_more_pa",
        3 => "  puts 'This is a shorter string'",
        4 => "  puts 'A more realistic example of when a line would be really long is long strings such as this one, which extends over the 200 character limit by containing a lot of excess words for padding its le",
        5 => "  puts 'and another shorter string for comparison'",
        6 => "end",
        7 => "# rubocop:enable Layout/LineLength",
      }
    })
    # rubocop:enable Layout/LineLength
  end

  it "rescues exceptions raised in extract!" do
    file1_hash = { lineNumber: 1 }
    file2_hash = { lineNumber: 25 }

    code_extractor = Bugsnag::CodeExtractor.new(Bugsnag::Configuration.new)
    code_extractor.add_file("spec/fixtures/crashes/file1.rb", file1_hash)
    code_extractor.add_file("spec/fixtures/crashes/file2.rb", file2_hash)

    file1_hash[:first_line_number] = nil

    code_extractor.extract!

    expect(file1_hash).to eq({ lineNumber: 1, code: nil })

    expect(file2_hash).to eq({
      lineNumber: 25,
      code: {
        19 => "    puts 'abcdef2'",
        20 => "  end",
        21 => "",
        22 => "  def self.abcdefghi2",
        23 => "    puts 'abcdefghi2'",
        24 => "  end",
        25 => "end"
      }
    })
  end
end


text:
    <input class="sheet-tabs sheet-tabs1" type=radio name="attr_tab" value="1" checked="true"/>
Main Info

    <input class="sheet-tabs sheet-tabs2" type=radio name="attr_tab" value="2"/>
Stats & Spirit

    <input class="sheet-tabs sheet-tabs3" type=radio name="attr_tab" value="3"/>
Talents

    <input class="sheet-tabs sheet-tabs4" type=radio name="attr_tab" value="4"/>
Equipment

    <input class="sheet-tabs-pictos sheet-tabs5" type=radio name="attr_tab" value="5"/>
y

    <input class="sheet-tabs-small sheet-tabs6" type=radio name="attr_tab" value="6"/>
Mononoke

            <input type="checkbox" class="arrow collapse" name="attr_CharInfoSec" checked="true">
            MAIN INFO

NAME<input type="text" name="attr_character_name" spellcheck="false">

DIVINE NAME<input type="text" name="attr_divine_name" spellcheck="false">

FACADE<input type="text" name="attr_facade">

FACADE TRAIT<input type="text" name="attr_facade_trait">

ANCESTRY<input type="text" name="attr_ancestry" spellcheck="false">

ANCESTRAL TRAIT<input type="text" name="attr_ancestral_trait" spellcheck="false">

AGE<input type="text" name="attr_age">

HEIGHT<input type="text" name="attr_Height">

WEIGHT<input type="text" name="attr_weight">

GENDER<input type="text" name="attr_gender" spellcheck="false">

EARS/TAIL(S)<input type="text" name="attr_ears" spellcheck="false">

EYES<input type="text" name="attr_eye" spellcheck="false">

HAIR<input type="text" name="attr_hair" spellcheck="false">

SKIN<input type="text" name="attr_skin" spellcheck="false">

FACTION<input type="text" name="attr_faction" spellcheck="false">

ORIGINS<input type="text" name="attr_origins" spellcheck="false">

GOAL<input type="text" name="attr_goal" spellcheck="false">

CREST LOCATION<input type="text" name="attr_crest_location" spellcheck="false">

CREST FORM<input type="text" name="attr_crest_form" spellcheck="false">

	                            <textarea spellcheck="false" placeholder="Character Description" name="attr_characterDescription" spellcheck="false"></textarea>

            <input type="checkbox" class="arrow collapse" name="attr_Charfacets" checked="true">
            FACET

Level:

<input type="number" name="attr_level" value="1">

XP:

<input type="number" name="attr_xp">

Next level:

<input type="number" name="attr_xp_next">

Group:

                            <select name="attr_group_type" class="cell-drop">
                                <option value="Martial">Martial</option>
                                <option value="Skilled">Skilled</option>
                                <option value="Caster">Caster</option>
                            </select>

Main:

<input type="text" name="attr_main_facet">

                            <select name="attr_main_facet_type" class="cell-drop">
                                <option value="A">A</option>
                                <option value="B">B</option>
                            </select>

Second:

<input type="text" name="attr_second_facet">

                            <select name="attr_second_facet_type" class="cell-drop">
                                <option value="A">A</option>
                                <option value="B">B</option>
                            </select>

                <fieldset class="repeating_facets">

Additional:

<input type="text" name="attr_repeat_facet">

                            <select name="attr_repeat_facet_type" class="cell-drop">
                                <option value="A">A</option>
                                <option value="B">B</option>
                            </select>

                </fieldset>

                <input type="checkbox" class="arrow collapse" name="attr_statssec" checked="true">
                MAIN AND SUB STATS

MAIN STATS

STAT TYPE:

                            <select name="attr_Stat_Type" class="cell-drop">
                                <option value="Warrior">Warrior</option>
                                <option value="Adept">Adept</option>
                                <option value="Occultist">Occultist</option>
                            </select>

<input type="number" name="attr_strength" value="0">

<input type="number" name="attr_agility" value="0">

<input type="number" name="attr_intellect" value="0">

<input type="number" name="attr_will" value="0">

<input type="number" name="attr_luck" value="0">

STRENGTH

AGILITY

INTELLECT

WILL

LUCK

Total

Facade

Talents

Items

Misc

Total

Facade

Talents

Items

Misc

<button type="roll" value="/roll [Strength] 2d6 + ?{Bonus|0} + ?{Bonus dice|0}d6 +@{strength_generic}" name="roll_strength"></button>

Strength

<input type="number" name="attr_strength_generic" value="0" readonly>

<input type="number" name="attr_strength_facade" value="0">

<input type="number" name="attr_strength_talents" value="0">

<input type="number" name="attr_strength_items" value="0">

<input type="number" name="attr_strength_misc" value="0">

<button type="roll" value="/roll [Intellect] 2d6 + ?{Bonus|0} + ?{Bonus dice|0}d6 +@{Intellect_generic} " name="roll_Intellect"></button>

Intellect

<input type="number" name="attr_intellect_generic" value="0">

<input type="number" name="attr_intellect_facade" value="0">

<input type="number" name="attr_intellect_talents" value="0">

<input type="number" name="attr_intellect_items" value="0">

<input type="number" name="attr_intellect_misc" value="0">

<button type="roll" value="/roll [Agility] 2d6 + ?{Bonus|0} + ?{Bonus dice|0}d6 +@{Agility_generic}" name="roll_Agility"></button>

Agility

<input type="number" name="attr_agility_generic" value="0">

<input type="number" name="attr_agility_facade" value="0">

<input type="number" name="attr_agility_talents" value="0">

<input type="number" name="attr_agility_items" value="0">

<input type="number" name="attr_agility_misc" value="0">

<button type="roll" value="/roll [Will] 2d6 + ?{Bonus|0} + ?{Bonus dice|0}d6 +@{Will_generic}" name="roll_Will"></button>

Will

<input type="number" name="attr_will_generic" value="0">

<input type="number" name="attr_will_facade" value="0">

<input type="number" name="attr_will_talents" value="0">

<input type="number" name="attr_will_items" value="0">

<input type="number" name="attr_will_misc" value="0">

<button type="roll" value="/roll [Luck] 2d6 + ?{Bonus|0} + ?{Bonus dice|0}d6 +@{Luck_generic}" name="roll_luck"></button>

Luck

<input type="number" name="attr_luck_generic" value="0">

<input type="number" name="attr_luck_facade" value="0">

<input type="number" name="attr_luck_talents" value="0">

<input type="number" name="attr_luck_items" value="0">

<input type="number" name="attr_luck_misc" value="0">

<button type="roll" value="/roll [@{custom_roll}] 2d6 + ?{Bonus|0} + ?{Bonus dice|0}d6 +@{custom_roll_total}" name="roll_misc"></button>

<input type="text" name="attr_custom_roll" value="Misc">

<input type="number" name="attr_custom_roll_total" value="0">

<input type="number" name="attr_custom_roll_facade" value="0">

<input type="number" name="attr_custom_roll_talents" value="0">

<input type="number" name="attr_custom_roll_items" value="0">

<input type="number" name="attr_custom_roll_misc" value="0">

                        SUB STATS

Total:

Main Stat:

Facet Stat:

Weapon:

Protector:

Accessory:

Accessory:

Talent:

Misc:

                                <button type="roll" value="/roll [Accuracy] @{dicepool_accuracy}d6 + ?{Bonus|0} +@{accuracy} + ?{Bonus dice|0}d6" name="roll_accuracy"></button>

                                ACCURACY:

                                <input class="input-Autocalc" type="number" name="attr_accuracy" value="0" readyonly>

Strength

<input type="number" name="attr_accuracy_facet" value="0">

<input type="number" name="attr_accuracy_weapon" value="0">

<input type="number" name="attr_accuracy_protector" value="0">

<input type="number" name="attr_accuracy_accessory1" value="0">

<input type="number" name="attr_accuracy_accessory2" value="0">

<input type="number" name="attr_accuracy_talent" value="0">

<input type="number" name="attr_accuracy_misc" value="0">

                                <button type="roll" value="/roll [Evasion] @{dicepool_evasion}d6 + ?{Bonus|0} +@{evasion} + ?{Bonus dice|0}d6" name="roll_evasion"></button>

                                EVASION:

                                <input type="number" name="attr_evasion" value="0" readyonly>

Agility

<input type="number" name="attr_evasion_facet" value="0">

<input type="number" name="attr_evasion_weapon" value="0">

<input type="number" name="attr_evasion_protector" value="0">

<input type="number" name="attr_evasion_accessory1" value="0">

<input type="number" name="attr_evasion_accessory2" value="0">

<input type="number" name="attr_evasion_talent" value="0">

<input type="number" name="attr_evasion_misc" value="0">

                                <button type="roll" value="/roll [Invoaction] @{dicepool_invocation}d6 + ?{Bonus|0} +@{invocation} + ?{Bonus dice|0}d6" name="roll_invocation"></button>

                                INVOCATION:

                                <input type="number" name="attr_invocation" value="0" readyonly>

Intellect

<input type="number" name="attr_invocation_facet" value="0">

<input type="number" name="attr_invocation_weapon" value="0">

<input type="number" name="attr_invocation_protector" value="0">

<input type="number" name="attr_invocation_accessory1" value="0">

<input type="number" name="attr_invocation_accessory2" value="0">

<input type="number" name="attr_invocation_talent" value="0">

<input type="number" name="attr_invocation_misc" value="0">

                                <button type="roll" value="/roll [Resistance] @{dicepool_resistance}d6 + ?{Bonus|0} +@{resistance} + ?{Bonus dice|0}d6" name="roll_resistance"></button>

                                RESISTANCE:

                                <input type="number" name="attr_resistance" value="0" readyonly>

Will

<input type="number" name="attr_resistance_facet" value="0">

<input type="number" name="attr_resistance_weapon" value="0">

<input type="number" name="attr_resistance_protector" value="0">

<input type="number" name="attr_resistance_accessory1" value="0">

<input type="number" name="attr_resistance_accessory2" value="0">

<input type="number" name="attr_resistance_talent" value="0">

<input type="number" name="attr_resistance_misc" value="0">

                                <button type="roll" value="/roll [Instinct] @{dicepool_instinct}d6 + ?{Bonus|0} +@{instinct} + ?{Bonus dice|0}d6" name="roll_instinct"></button>

                                INSTINCT:

                                <input type="number" name="attr_instinct" value="0" readyonly>

Luck

<input type="number" name="attr_instinct_facet" value="0">

<input type="number" name="attr_instinct_weapon" value="0">

<input type="number" name="attr_instinct_protector" value="0">

<input type="number" name="attr_instinct_accessory1" value="0">

<input type="number" name="attr_instinct_accessory2" value="0">

<input type="number" name="attr_instinct_talent" value="0">

<input type="number" name="attr_instinct_misc" value="0">

Total:

Facet Stat:

Weapon:

Protector:

Accessory:

Accessory:

Talent:

Misc:

                                PD:

                                <input type="number" name="attr_pd" value="0" readyonly>

Strength ÷ 2

<input type="number" name="attr_pd_facet" value="0">

<input type="number" name="attr_pd_weapon" value="0">

<input type="number" name="attr_pd_protector" value="0">

<input type="number" name="attr_pd_accessory1" value="0">

<input type="number" name="attr_pd_accessory2" value="0">

<input type="number" name="attr_pd_talent" value="0">

<input type="number" name="attr_pd_misc" value="0">

                                MD:

                                <input type="number" name="attr_md" value="0" readyonly>

Intellect ÷ 2

<input type="number" name="attr_md_facet" value="0">

<input type="number" name="attr_md_weapon" value="0">

<input type="number" name="attr_md_protector" value="0">

<input type="number" name="attr_md_accessory1" value="0">

<input type="number" name="attr_md_accessory2" value="0">

<input type="number" name="attr_md_talent" value="0">

<input type="number" name="attr_md_misc" value="0">

<button type="roll" value="/roll @{initiative} + ?{Bonus|0} &{tracker}" name="roll_instinct">Track</button>

                                INITIATIVE:

                                <input type="number" name="attr_initiative" value="0" readyonly>

Agility + 5

<input type="number" name="attr_initiative_facet" value="0">

<input type="number" name="attr_initiative_weapon" value="0">

<input type="number" name="attr_initiative_protector" value="0">

<input type="number" name="attr_initiative_accessory1" value="0">

<input type="number" name="attr_initiative_accessory2" value="0">

<input type="number" name="attr_initiative_talent" value="0">

<input type="number" name="attr_initiative_misc" value="0">

                                HP:

                                <input type="number" name="attr_hitpoints_max" value="0" readyonly>

Strength + Will + (Level x 3)

<input type="number" name="attr_hitpoints_facet" value="0">

<input type="number" name="attr_hitpoints_weapon" value="0">

<input type="number" name="attr_hitpoints_protector" value="0">

<input type="number" name="attr_hitpoints_accessory1" value="0">

<input type="number" name="attr_hitpoints_accessory2" value="0">

<input type="number" name="attr_hitpoints_talent" value="0">

<input type="number" name="attr_hitpoints_misc" value="0">

                                GUARD:

                                <input type="number" name="attr_guard" value="0" readyonly>

-

<input type="number" name="attr_guard_facet" value="0">

<input type="number" name="attr_guard_weapon" value="0">

<input type="number" name="attr_guard_protector" value="0">

<input type="number" name="attr_guard_accessory1" value="0">

<input type="number" name="attr_guard_accessory2" value="0">

<input type="number" name="attr_guard_talent" value="0">

<input type="number" name="attr_guard_misc" value="0">

                                WARD:

                                <input type="number" name="attr_ward" value="0" readyonly>

-

<input type="number" name="attr_ward_facet" value="0">

<input type="number" name="attr_ward_weapon" value="0">

<input type="number" name="attr_ward_protector" value="0">

<input type="number" name="attr_ward_accessory1" value="0">

<input type="number" name="attr_ward_accessory2" value="0">

<input type="number" name="attr_ward_talent" value="0">

<input type="number" name="attr_ward_misc" value="0">

Simple Move:

<input type="number" name="attr_simple_move_total" value="@{simple_move_misc} + 1" disabled="true">

<input type="number" name="attr_simple_move_misc" value="0">

Combat Move:

<input type="number" name="attr_combat_move_total" value="0" readonly>

(Initiative + 5) / 3

<input type="number" name="attr_combat_move_misc" value="0">

Full Move:

<input type="number" name="attr_full_move_total" value="0" readonly>

Initiative + 5

<input type="number" name="attr_full_move_misc" value="0">

                <input type="checkbox" class="arrow collapse" name="attr_spiritPoolSec" checked="true">
                SPIRIT POOL

DICE:

                                <select name="attr_spiritpool_1" class="cell-drop">
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <select name="attr_spiritpool_2" class="cell-drop">
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <select name="attr_spiritpool_3" class="cell-drop">
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <select name="attr_spiritpool_4" class="cell-drop">
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <select name="attr_spiritpool_5" class="cell-drop">
                                    <option value="7">-</option>
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <select name="attr_spiritpool_6" class="cell-drop">
                                    <option value="7">-</option>
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <button class="templatebutton" type="roll" name="spiritPoolRoll" title="Spirit Pool" value="&{template:spirit} {{name=@{character_name}}} {{die1=[[1d@{spiritpool_used_1}cf0cs>0]]}} {{die2=[[1d@{spiritpool_used_2}cf0cs>0]]}} {{die3=[[1d@{spiritpool_used_3}cf0cs>0]]}} {{die4=[[1d@{spiritpool_used_4}cf0cs>0]]}} {{die5=[[1d@{spiritpool_used_5}cf0cs>0]]}} {{die6=[[1d@{spiritpool_used_6}cf0cs>0]]}}">Spirit Pool</button>

  OVERFLOW:

                                <input type="radio" class="normal zero" name="attr_spirit_overflow" value="0" checked="checked" />
                                <input type="radio" class="normal" name="attr_spirit_overflow" value="1" />
                                <input type="radio" class="normal" name="attr_spirit_overflow" value="2" />
                                <input type="radio" class="normal" name="attr_spirit_overflow" value="3" />
                                <input type="radio" class="normal" name="attr_spirit_overflow" value="4" />
                                <input type="radio" class="normal" name="attr_spirit_overflow" value="5" />
                                <input type="radio" class="normal" name="attr_spirit_overflow" value="6" />
                                <input type="radio" class="normal" name="attr_spirit_overflow" value="7" />

Used:

<input type="checkbox" name="attr_spiritpool_used_1" value="6">

<input type="checkbox" name="attr_spiritpool_used_2" value="6">

<input type="checkbox" name="attr_spiritpool_used_3" value="6">

<input type="checkbox" name="attr_spiritpool_used_4" value="6">

<input type="checkbox" name="attr_spiritpool_used_5" value="6">

<input type="checkbox" name="attr_spiritpool_used_6" value="6">

HP:

<input type="number" name="attr_hitpoints">

/

<input type="number" name="attr_hitpoints_max">

Spirit Crest:

<input type="number" name="attr_current_spiritcrest" value="22">

/

22

                    BONDS

①

<input type="text" name="attr_Bond1" spellcheck="false">

<input type="text" name="attr_Bond1_Desc" spellcheck="false">

②

<input type="text" name="attr_Bond2" spellcheck="false">

<input type="text" name="attr_Bond2_Desc" spellcheck="false">

③

<input type="text" name="attr_Bond3" spellcheck="false">

<input type="text" name="attr_Bond3_Desc" spellcheck="false">

④

<input type="text" name="attr_Bond4" spellcheck="false">

<input type="text" name="attr_Bond4_Desc" spellcheck="false">

⑤

<input type="text" name="attr_Bond5" spellcheck="false">

<input type="text" name="attr_Bond5_Desc" spellcheck="false">

⑥

<input type="text" name="attr_Bond6" spellcheck="false">

<input type="text" name="attr_Bond6_Desc" spellcheck="false">

⑦

<input type="text" name="attr_Bond7" spellcheck="false">

<input type="text" name="attr_Bond7_Desc" spellcheck="false">

                <input type="checkbox" class="arrow collapse" name="attr_spiritQuickRef" checked="True" value="true">
                SPIRIT POOL

DICE:

                                <select name="attr_spiritpool_1" class="cell-drop">
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <select name="attr_spiritpool_2" class="cell-drop">
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <select name="attr_spiritpool_3" class="cell-drop">
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <select name="attr_spiritpool_4" class="cell-drop">
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <select name="attr_spiritpool_5" class="cell-drop">
                                    <option value="7">-</option>
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <select name="attr_spiritpool_6" class="cell-drop">
                                    <option value="7">-</option>
                                    <option value="1">1</option>
                                    <option value="2">2</option>
                                    <option value="3">3</option>
                                    <option value="4">4</option>
                                    <option value="5">5</option>
                                    <option value="6">6</option>
                                </select>

                                <button class="templatebutton" type="roll" name="spiritPoolRoll" title="spirit Pool" value="&{template:spirit} {{name=@{character_name}}} {{die1=[[1d@{spiritpool_used_1}cf0cs>0]]}} {{die2=[[1d@{spiritpool_used_2}cf0cs>0]]}} {{die3=[[1d@{spiritpool_used_3}cf0cs>0]]}} {{die4=[[1d@{spiritpool_used_4}cf0cs>0]]}} {{die5=[[1d@{spiritpool_used_5}cf0cs>0]]}} {{die6=[[1d@{spiritpool_used_6}cf0cs>0]]}}">Spirit Pool</button>

  OVERFLOW:

                                <input type="number" class="normal zero" name="attr_spirit_overflow" value="0">

Used:

<input type="checkbox" name="attr_spiritpool_used_1" value="6">

<input type="checkbox" name="attr_spiritpool_used_2" value="6">

<input type="checkbox" name="attr_spiritpool_used_3" value="6">

<input type="checkbox" name="attr_spiritpool_used_4" value="6">

<input type="checkbox" name="attr_spiritpool_used_5" value="6">

<input type="checkbox" name="attr_spiritpool_used_6" value="6">

            <input type="checkbox" class="arrow collapse" name="attr_talentssec" checked="true">
            TALENTS

Name:

Spirit Barrier

Source:

Innate Power

Type:

Innate Power

Timing:

 Start

Range:

Combat Zone

Target:

Combat Zone

Cost:

None

Share:

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="/w gm &{template:talent} {{name=@{character_name}}} {{talent=Numinal Barrier}} {{time=Free}} {{range=Combat Zone}} {{target=Combat Zone}} {{cost=None}} {{desc=@{talent_desc_numinalbarrier}}}">GM</button>

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="&{template:talent} {{name=@{character_name}}} {{talent=Numinal Barrier}} {{time=Free}} {{range=Combat Zone}} {{target=Combat Zone}} {{cost=None}} {{desc=@{talent_desc_numinalbarrier}}}">Chat</button>

                        <textarea spellcheck="false" placeholder="Talent Description" name="attr_talent_desc_numinalbarrier" spellcheck="false"></textarea>

Name:

Spirit Burn

Source:

Innate Power

Type:

Innate Power

Timing:

Free

Range:

User

Target:

User

Cost:

None

Share:

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="/w gm &{template:talent} {{name=@{character_name}}} {{talent=Soul Burn}} {{time=Free}} {{range=User}} {{target=User}} {{cost=None}} {{desc=@{talent_desc_soulburn}}}">GM</button>

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="&{template:talent} {{name=@{character_name}}} {{talent=Soul Burn}} {{time=Free}} {{range=User}} {{target=User}} {{cost=None}} {{desc=@{talent_desc_soulburn}}}">Chat</button>

                        <textarea spellcheck="false" placeholder="Talent Description" name="attr_talent_desc_soulburn" spellcheck="false"></textarea>

Name:

<input type="text" name="attr_talent_ancestral_a_name" spellcheck="false">

Source:

Ancestral

Type:

Ancestral

Timing:

<input type="text" name="attr_talent_ancestral_a_time">

Range:

<input type="text" name="attr_talent_ancestral_a_range">

Target:

<input type="text" name="attr_talent_ancestral_a_target">

Cost:

<input type="text" name="attr_talent_ancestral_a_cost">

Uses Per:

							<select name="attr_ancestral_a_usagee_tpye" class="cell-drop">
								<option value="Unlimited">No Limit</option>
								<option value="Round">Round</option>
								<option value="Combat">Combat</option>
								<option value="Session">Session</option>
							</select>

Used:

<input type="checkbox" name="attr_talent_used_ancestral_a_1" value="1">

<input type="checkbox" name="attr_talent_used_ancestral_a_2" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_ancestral_a_3" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_ancestral_a_4" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_ancestral_a_5" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_ancestral_a_6" value="1" checked="checked">

Share:

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="/w gm &{template:talent} {{name=@{character_name}}} {{talent=@{talent_ancestral_a_name}}} {{time=@{talent_ancestral_a_time}}} {{range=@{talent_ancestral_a_range}}} {{target=@{talent_ancestral_a_target}}} {{cost=@{talent_ancestral_a_cost}}} {{desc=@{talent_desc_ancestral_a}}}">GM</button>

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="&{template:talent} {{name=@{character_name}}} {{talent=@{talent_ancestral_a_name}}} {{time=@{talent_ancestral_a_time}}} {{range=@{talent_ancestral_a_range}}} {{target=@{talent_ancestral_a_target}}} {{cost=@{talent_ancestral_a_cost}}} {{desc=@{talent_desc_ancestral_a}}}">Chat</button>

                        <textarea spellcheck="false" placeholder="Talent Description" name="attr_talent_desc_ancestral_a" spellcheck="false"></textarea>

Name:

<input type="text" name="attr_talent_ancestral_b_name" spellcheck="false">

Source:

Ancestral

Type:

Ancestral

Timing:

<input type="text" name="attr_talent_ancestral_b_time">

Range:

<input type="text" name="attr_talent_ancestral_b_range">

Target:

<input type="text" name="attr_talent_ancestral_b_target">

Cost:

<input type="text" name="attr_talent_ancestral_b_cost">

Uses Per:

							<select name="attr_ancestral_b_usagee_tpye" class="cell-drop">
								<option value="Unlimited">No Limit</option>
								<option value="Round">Round</option>
								<option value="Combat">Combat</option>
								<option value="Session">Session</option>
							</select>

Used:

<input type="checkbox" name="attr_talent_used_ancestral_b_1" value="1">

<input type="checkbox" name="attr_talent_used_ancestral_b_2" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_ancestral_b_3" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_ancestral_b_4" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_ancestral_b_5" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_ancestral_b_6" value="1" checked="checked">

Share:

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="/w gm &{template:talent} {{name=@{character_name}}} {{talent=@{talent_ancestral_b_name}}} {{time=@{talent_ancestral_b_time}}} {{range=@{talent_ancestral_b_range}}} {{target=@{talent_ancestral_b_target}}} {{cost=@{talent_ancestral_a_cost}}} {{desc=@{talent_desc_ancestral_b}}}">GM</button>

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="&{template:talent} {{name=@{character_name}}} {{talent=@{talent_ancestral_b_name}}} {{time=@{talent_ancestral_b_time}}} {{range=@{talent_ancestral_b_range}}} {{target=@{talent_ancestral_b_target}}} {{cost=@{talent_ancestral_b_cost}}} {{desc=@{talent_desc_ancestral_b}}}">Chat</button>

                        <textarea spellcheck="false" placeholder="Talent Description" name="attr_talent_desc_ancestral_b" spellcheck="false"></textarea>

Name:

<input type="text" name="attr_talent_key_a_name" spellcheck="false">

Source:

<input type="text" name="attr_talent_key_a_Source" spellcheck="false">

                                <select name="attr_second_key_a_type" class="cell-drop">
                                    <option value="-">-</option>
                                    <option value="A">α</option>
                                    <option value="B">Ω</option>
                                </select>

Key

Timing:

<input type="text" name="attr_talent_key_a_time">

Range:

<input type="text" name="attr_talent_key_a_range">

Target:

<input type="text" name="attr_talent_key_a_target">

Cost:

<input type="text" name="attr_talent_key_a_cost">

Uses Per:

							<select name="attr_key_a_usagee_tpye" class="cell-drop">
								<option value="Unlimited">No Limit</option>
								<option value="Round">Round</option>
								<option value="Combat">Combat</option>
								<option value="Session">Session</option>
							</select>

Used:

<input type="checkbox" name="attr_talent_used_key_a_1" value="1">

<input type="checkbox" name="attr_talent_used_key_a_2" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_key_a_3" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_key_a_4" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_key_a_5" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_key_a_6" value="1" checked="checked">

Share:

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="/w gm &{template:talent} {{name=@{character_name}}} {{talent=@{talent_key_a_name}}} {{time=@{talent_key_a_time}}} {{range=@{talent_key_a_range}}} {{target=@{talent_key_a_target}}} {{cost=@{talent_key_a_cost}}} {{desc=@{talent_desc_key_a}}}">GM</button>

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="&{template:talent} {{name=@{character_name}}} {{talent=@{talent_key_a_name}}} {{time=@{talent_key_a_time}}} {{range=@{talent_key_a_range}}} {{target=@{talent_key_a_target}}} {{cost=@{talent_key_a_cost}}} {{desc=@{talent_desc_key_a}}}"">Chat</button>

                        <textarea spellcheck="false" placeholder="Talent Description" name="attr_talent_desc_key_a" spellcheck="false"></textarea>

Name:

<input type="text" name="attr_talent_key_b_name" spellcheck="false">

Source:

<input type="text" name="attr_talent_key_b_Source" spellcheck="false">

                                <select name="attr_key_b_type" class="cell-drop">
                                    <option value="-">-</option>
                                    <option value="A">α</option>
                                    <option value="B">Ω</option>
                                </select>

Key

Timing:

<input type="text" name="attr_talent_key_b_time">

Range:

<input type="text" name="attr_talent_key_b_range">

Target:

<input type="text" name="attr_talent_key_b_target">

Cost:

<input type="text" name="attr_talent_key_b_cost">

Uses Per:

							<select name="attr_key_b_usagee_tpye" class="cell-drop">
								<option value="Unlimited">No Limit</option>
								<option value="Round">Round</option>
								<option value="Combat">Combat</option>
								<option value="Session">Session</option>
							</select>

Used:

<input type="checkbox" name="attr_talent_used_key_b_1" value="1">

<input type="checkbox" name="attr_talent_used_key_b_2" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_key_b_3" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_key_b_4" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_key_b_5" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_key_b_6" value="1" checked="checked">

Share:

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="/w gm &{template:talent} {{name=@{character_name}}} {{talent=@{talent_key_b_name}}} {{time=@{talent_key_b_time}}} {{range=@{talent_key_b_range}}} {{target=@{talent_key_b_target}}} {{cost=@{talent_key_b_cost}}} {{desc=@{talent_desc_key_b}}}">GM</button>

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="&{template:talent} {{name=@{character_name}}} {{talent=@{talent_key_b_name}}} {{time=@{talent_key_b_time}}} {{range=@{talent_key_b_range}}} {{target=@{talent_key_b_target}}} {{cost=@{talent_key_b_cost}}} {{desc=@{talent_desc_key_b}}}"">Chat</button>

                        <textarea spellcheck="false" placeholder="Talent Description" name="attr_talent_desc_key_b" spellcheck="false"></textarea>

					<fieldset class="repeating_talents">

Name:

<input type="text" name="attr_talent_name" spellcheck="false">

Source:

<input type="text" name="attr_talent_Source" spellcheck="false">

											<select name="attr_second_facet_type" class="cell-drop">
												<option value="-">-</option>
												<option value="A">α</option>
												<option value="B">Ω</option>
											</select>

LV:

<input type="text" name="attr_talent_level_taken" spellcheck="false">

											<select name="attr_talent_type" class="cell-drop">
												<option value="0"> </option>
												<option value="1">Key</option>
												<option value="2">Expert</option>
												<option value="3">Focus</option>
												<option value="4">Ancestral</option>
												<option value="5">High</option>
											</select>

Timing:

<input type="text" name="attr_talent_time">

Range:

<input type="text" name="attr_talent_range">

Target:

<input type="text" name="attr_talent_target">

Cost:

<input type="text" name="attr_talent_cost">

Uses Per:

										<select name="attr_talent_usagee_tpye" class="cell-drop">
											<option value="Unlimited">No Limit</option>
											<option value="Round">Round</option>
											<option value="Combat">Combat</option>
											<option value="Session">Session</option>
										</select>

Used:

<input type="checkbox" name="attr_talent_used_1" value="1">

<input type="checkbox" name="attr_talent_used_2" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_3" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_4" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_5" value="1" checked="checked">

<input type="checkbox" name="attr_talent_used_6" value="1" checked="checked">

Share:

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="/w gm &{template:talent} {{name=@{character_name}}} {{talent=@{talent_name}}} {{time=@{talent_time}}} {{range=@{talent_range}}} {{target=@{talent_target}}} {{cost=@{talent_cost}}} {{desc=@{talent_desc}}}">GM</button>

<button class="templatebutton" type="roll" name="TalentPost" title="talentpost" value="&{template:talent} {{name=@{character_name}}} {{talent=@{talent_name}}} {{time=@{talent_time}}} {{range=@{talent_range}}} {{target=@{talent_target}}} {{cost=@{talent_cost}}} {{desc=@{talent_desc}}}">Chat</button>

									<textarea spellcheck="false" placeholder="Talent Description" name="attr_talent_desc" spellcheck="false"></textarea>

					</fieldset>

WEAPONS:

                    <fieldset class="repeating_weapons">

Divine Name:

ACC:

IVC:

INIT:

PD:

MD:

<input type="text" name="attr_weapon_name" spellcheck="false">

<input type="number" name="attr_weapon_accuracy">

<input type="number" name="attr_weapon_invocation">

<input type="number" name="attr_weapon_stats_init">

<input type="text" name="attr_weapon_pd" spellcheck="false">

<input type="text" name="attr_weapon_md" spellcheck="false">

Form:

DMG Type:

Range:

T#:

Rank:

Element:

Resist:

Restriction:

Grip:

<input type="text" name="attr_weapon_form" spellcheck="false">

                                    <select name="attr_attr_weapon_dmg_type" class="cell-drop">
                                        <option value="Physical">Physical</option>
                                        <option value="Magic">Magic</option>
                                        <option value="Other">Other</option>
                                    </select>

<input type="text" name="attr_weapon_range">

<input type="text" name="attr_weapon_target">

<input type="text" name="attr_weapon_rank">

<input type="text" name="attr_weapon_element">

                                    <select name="attr_attr_weapon_dmg_type" class="cell-drop">
                                        <option value="-">-</option>
                                        <option value="N/A">N/A</option>
                                        <option value="Physical">Half</option>
                                        <option value="Magic">None</option>
                                        <option value="Other">Other</option>
                                    </select>

<input type="text" name="attr_weapon_restriction" spellcheck="false">

<input type="text" name="attr_weapon_grip">

Equipped:

<input class= "equipment"type="checkbox" name="attr_weapon_equipped">

        	                                <textarea spellcheck="false" placeholder="Weapon Description" name="attr_weapon_desc" spellcheck="false"></textarea>

            	                                <textarea spellcheck="false" placeholder="Customizations and Material Integration" name="attr_weapon_integration" spellcheck="false"></textarea>

                    </fieldset>

ARMOR:

                    <fieldset class="repeating_protectors">

Name:

Restriction:

EVA:

INIT:

GUARD:

WARD:

<input type="text" name="attr_protector_name" spellcheck="false">

<input type="text" name="attr_protector_restrict">

<input type="number" name="attr_protector_stats_acc">

<input type="number" name="attr_protector_stats_init">

<input type="number" name="attr_protector_guard">

<input type="number" name="attr_protector_ward">

Equipped:

<input class= "equipment"type="checkbox" name="attr_protector_equipped">

            	                                <textarea spellcheck="false" placeholder="Protector Description" name="attr_protector_desc" spellcheck="false"></textarea>

            	                                <textarea spellcheck="false" placeholder="Additional Effects and Material Integration" name="attr_protector_effects" spellcheck="false"></textarea>

                    </fieldset>

ACCESSORIES:

                    <fieldset class="repeating_accessories">

Name:

Slot:

Description:

Equipped:

<input placeholder="Name" type="text" name="attr_accessories_name" spellcheck="false">

<input placeholder="Slot" type="text" name="attr_accessories_slot">

<input placeholder="Description" type="text" name="attr_accessories_desc">

<input class= "equipment" type="checkbox" name="attr_accessories_equipped" spellcheck="false">

            	                                <textarea spellcheck="false" placeholder="Material Integration" name="attr_accessories_integration" spellcheck="false"></textarea>

                    </fieldset>

INVENTORY:

<input type="text" name="attr_gold">

G

Name:

Description:

Count:

Equip:

<input placeholder="Name" type="text" name="attr_gear_name_first" spellcheck="false">

<input placeholder="Description" type="text" name="attr_gear_desc_first" spellcheck="false">

<input type="number" name="attr_gear_amount_first">

<input type="checkbox" name="attr_inv_equipped">

                                <fieldset class="repeating_gear">

<input placeholder="Name" type="text" name="attr_gear_name_first" spellcheck="false">

<input placeholder="Description" type="text" name="attr_gear_desc_first" spellcheck="false">

<input type="number" name="attr_gear_amount_first">

<input type="checkbox" name="attr_inv_equipped">

                                </fieldset>

Dice Pool Sizes

Set the number of dice for each pool here for the sheet roll buttons

<input type="number" name="attr_dicepool_accuracy" value="2">

Accuracy

<input type="number" name="attr_dicepool_evasion" value="2">

Evasion

<input type="number" name="attr_dicepool_invocation" value="2">

Invocation

<input type="number" name="attr_dicepool_resistance" value="2">

Resistance

<input type="number" name="attr_dicepool_instinct" value="2">

Instinct

                        You can change the built in sheet macro that puts Mononoke or Aramitama information in chat here:

Mononoke Info:

<input type="text" name="attr_mononoke_macro" spellcheck="false" value="?{Warning: this will send all info to chat|0} {{name=@{mononoke_name}}} {{class=@{mononoke_class}}} {{level=@{mononoke_level}}} {{initiative=@{mononoke_Initiative}}} {{perception=@{mononoke_perception} }} {{acc=@{mononoke_acc_fix} }} {{eva=@{mononoke_eva_fix} }} {{ivc=@{mononoke_ivc_fix} }} {{res=@{mononoke_res_fix} }} {{guard=@{mononoke_guard} }} {{ward=@{mononoke_ward} }} {{HP=@{mononoke_hp}  }} {{reaction=@{mononoke_reaction} }} {{speech=@{mononoke_speech} }} {{weaknesses=@{mononoke_weakness} }} {{movement=@{mononoke_movement} }} {{size=@{mononoke_size}}">

Boss/Aramitama Info

<input type="text" name="attr_boss_macro" spellcheck="false" value="?{Warning: this will send boss info to chat|0} {{name=@{mononoke_name}}} {{class=@{mononoke_class}}} {{level=@{mononoke_level}}} {{initiative=@{mononoke_Initiative}}} {{perception=@{mononoke_perception} }} {{reaction=@{mononoke_reaction} }} {{speech=@{mononoke_speech} }} {{weaknesses=@{mononoke_weakness} }} {{movement=@{mononoke_movement} }} {{size=@{mononoke_size}}">

            MONONOKE:

<input type="text" placeholder="Name" name="attr_mononoke_name" spellcheck="false">

<input type="text" placeholder="Type" name="attr_mononoke_class" spellcheck="false">

LV:

<input type="text" name="attr_mononoke_level">

Size

<input type="text" name="attr_mononoke_size">

Cunning

<input type="text" name="attr_mononoke_cunning">

Perception

<input type="text" name="attr_mononoke_perception">

Speech

<input type="text" name="attr_mononoke_speech" spellcheck="false">

Reaction

<input type="text" name="attr_mononoke_reaction" spellcheck="false">

ID

<input type="text" name="attr_mononoke_ID" spellcheck="false">

Weakness

<input type="text" name="attr_mononoke_weakness" spellcheck="false">

Movement

<input type="text" name="attr_mononoke_movement">

ACC

EVA

IVC

RES

CHK

Initiative

HP

Guard

Ward

Combat Stats

<input type="text" name="attr_mononoke_acc">

<input type="text" name="attr_mononoke_eva">

<input type="text" name="attr_mononoke_ivc">

<input type="text" name="attr_mononoke_res">

<input type="text" name="attr_mononoke_chk">

<input type="text" name="attr_mononoke_Initiative">

<input type="text" name="attr_mononoke_hp">

<input type="text" name="attr_mononoke_guard">

<input type="text" name="attr_mononoke_ward">

Fixed Values

<input type="text" name="attr_mononoke_acc_fix">

<input type="text" name="attr_mononoke_eva_fix">

<input type="text" name="attr_mononoke_ivc_fix">

<input type="text" name="attr_mononoke_res_fix">

<input type="text" name="attr_mononoke_chk_fix">

Identify:

<button type="roll" value="&{template:mononoke} @{mononoke_macro}" name="roll_Mononoke">Mononoke</button>

<button type="roll" value="&{template:mononoke} @{boss_macro}" name="roll_likeaboss">Aramitama/Boss</button>

Attack Options

                            <textarea spellcheck="false" name="attr_mononoke_attack_desc" spellcheck="false"></textarea>

Materials

                        <textarea spellcheck="false" name="attr_mononoke_materials_desc" spellcheck="false"></textarea>

Description

                            <textarea spellcheck="false" name="attr_mononoke_description" spellcheck="false"></textarea>

<rolltemplate class="sheet-rolltemplate-spirit">

{{name}}'s spirit Roll

    	        1st:
    	        {{die1}}
    	        2nd:
    	        {{die2}}
    	        3rd:
    	        {{die3}}

    	        4th:
    	        {{die4}}
    	        5th:
    	        {{die5}}
    	        6th:
    	        {{die6}}

</rolltemplate>

<rolltemplate class="sheet-rolltemplate-talent">

{{name}}

{{talent}}

        	        Timing:
        	        {{time}}

        	        Range:
        	        {{range}}

        	        Target:
        	        {{target}}

        	        Cost:
        	        {{cost}}

{{desc}}

</rolltemplate>

<rolltemplate class="sheet-rolltemplate-mononoke">

{{name}}

                {{#class}}

        	        Class:
        	        {{class}}

        	    {{/class}}
        	    {{#level}}

        	        Level:
        	        {{level}}

        	    {{/level}}
        	    {{#initiative}}

        	        Initiative:
        	        {{initiative}}

        	    {{/initiative}}
        	    {{#perception}}

        	        Senses:
        	        {{perception}}

        	    {{/perception}}
        	    {{#acc}}

        	        ACC
        	        EVA
        	        IVC
        	        RES

        	        {{acc}}
        	        {{eva}}
        	        {{ivc}}
        	        {{res}}

        	    {{/acc}}
        	    {{#guard}}

        	        Guard:
        	        {{guard}}
        	        Ward:
        	        {{ward}}

        	    {{/guard}}
        	    {{#HP}}

        	        HP:
        	        {{HP}}

        	    {{/HP}}
        	    {{#reaction}}

        	        Reaction:
        	        {{reaction}}

        	    {{/reaction}}
        	    {{#speech}}

        	        Speech:
        	        {{speech}}

        	    {{/speech}}
        	    {{#weaknesses}}

        	        Weaknesses:

        	        {{weaknesses}}

        	    {{/weaknesses}}
        	    {{#movement}}

        	        Movement:
        	        {{movement}}

        	    {{/movement}}
        	    {{#size}}

        	        Size:
        	        {{size}}

        	    {{/size}}

</rolltemplate>


text:
namespace glm
{
	/// @addtogroup gtx_projection
	/// @{

	/// Projects x on Normal.
	///
	/// @see gtx_projection
	template<typename genType>
	GLM_FUNC_DECL genType proj(genType const& x, genType const& Normal);

	/// @}
}//namespace glm

#include "projection.inl"


text:
using System;

namespace DNX.Helpers.Providers
{
    /// <summary>
    /// Class FormatProviderFunc.
    /// </summary>
    /// <seealso cref="System.IFormatProvider" />
    public class FormatProviderFunc : IFormatProvider
    {
        private readonly Func<Type, object> _func;

        private FormatProviderFunc(Func<Type, object> func)
        {
            _func = func;
        }

        /// <summary>
        /// Returns an object that provides formatting services for the specified type.
        /// </summary>
        /// <param name="formatType">An object that specifies the type of format object to return.</param>
        /// <returns>An instance of the object specified by <paramref name="formatType" />, if the <see cref="T:System.IFormatProvider" /> implementation can supply that type of object; otherwise, null.</returns>
        public object GetFormat(Type formatType)
        {
            return _func(formatType);
        }

        /// <summary>
        /// Creates the specified function.
        /// </summary>
        /// <param name="func">The function.</param>
        /// <returns>FormatProviderFunc.</returns>
        public static FormatProviderFunc Create(Func<Type, object> func)
        {
            return new FormatProviderFunc(func);
        }
    }
}


text:
import os
import sys

try:
    from setuptools import setup
except ImportError:
    from distutils.core import setup

settings = dict()

# Publish Helper.
if sys.argv[-1] == 'publish':
    os.system('python setup.py sdist upload')
    sys.exit()

settings.update(
    name='inbox',
    version='0.0.7',
    description='SMTP for Humans.',
    long_description=open('README.rst').read(),
    author='Kenneth Reitz',
    author_email='me@kennethreitz.com',
    url='https://github.com/kennethreitz/inbox.py',
    py_modules= ['inbox',],
    install_requires=['logbook', 'argparse','flanker'],
    license='BSD',
    classifiers=(
        # 'Development Status :: 5 - Production/Stable',
        'Intended Audience :: Developers',
        'Natural Language :: English',
        'License :: OSI Approved :: BSD License',
        'Programming Language :: Python',
        # 'Programming Language :: Python :: 2.5',
        'Programming Language :: Python :: 2.6',
        'Programming Language :: Python :: 2.7',
    )
)

setup(**settings)


text:
package main

import (
	"archive/tar"
	"bytes"
	"compress/gzip"
	"crypto/sha1"
	"errors"
	"flag"
	"fmt"
	"io"
	"log"
	"os"
	"os/exec"
	"path/filepath"
	"sort"
	"strings"

	"golang.org/x/build/buildlet"
)

func push(args []string) error {
	fs := flag.NewFlagSet("push", flag.ContinueOnError)
	fs.Usage = func() {
		fmt.Fprintln(os.Stderr, "create usage: gomote push <instance>")
		fs.PrintDefaults()
		os.Exit(1)
	}
	fs.Parse(args)

	goroot := os.Getenv("GOROOT")
	if goroot == "" {
		slurp, err := exec.Command("go", "env", "GOROOT").Output()
		if err != nil {
			return fmt.Errorf("failed to get GOROOT from go env: %v", err)
		}
		goroot = strings.TrimSpace(string(slurp))
		if goroot == "" {
			return errors.New("Failed to get $GOROOT from environment or go env")
		}
	}

	if fs.NArg() != 1 {
		fs.Usage()
	}
	name := fs.Arg(0)
	bc, conf, err := clientAndConf(name)
	if err != nil {
		return err
	}

	haveGo14 := false
	haveGo := false
	remote := map[string]buildlet.DirEntry{} // keys like "src/make.bash"

	lsOpts := buildlet.ListDirOpts{
		Recursive: true,
		Digest:    true,
		Skip: []string{
			// Ignore binary output directories:
			"go/pkg", "go/bin",
			// We don't care about the digest of
			// particular source files for Go 1.4.  And
			// exclude /pkg. This leaves go1.4/bin, which
			// is enough to know whether we have Go 1.4 or
			// not.
			"go1.4/src", "go1.4/pkg",
		},
	}
	if err := bc.ListDir(".", lsOpts, func(ent buildlet.DirEntry) {
		name := ent.Name()
		if strings.HasPrefix(name, "go1.4/") {
			haveGo14 = true
			return
		}
		if strings.HasPrefix(name, "go/") {
			haveGo = true
			remote[name[len("go/"):]] = ent
		}

	}); err != nil {
		return fmt.Errorf("error listing buildlet's existing files: %v", err)
	}

	if !haveGo14 {
		if u := conf.GoBootstrapURL(buildEnv); u != "" {
			log.Printf("installing go1.4")
			if err := bc.PutTarFromURL(u, "go1.4"); err != nil {
				return err
			}
		}
	}

	// TODO(bradfitz,adg): if !haveGo, then run 'git rev-parse
	// HEAD' in goroot and see what the user's HEAD is,
	// approximately. Then tell the buildlet to fetch that tarball
	// directly from Gerrit as a base. Then do another ListDir to
	// the buildlet to get the new list, which will result in a
	// smaller upload payload. This is important when working from
	// home with a slower network connection to GCE. (upload a few
	// KB instead of 10-40 MB)

	type fileInfo struct {
		fi   os.FileInfo
		sha1 string // if regular file
	}
	local := map[string]fileInfo{} // keys like "src/make.bash"
	if err := filepath.Walk(goroot, func(path string, fi os.FileInfo, err error) error {
		if isEditorBackup(path) {
			return nil
		}
		if err != nil {
			return err
		}
		rel := strings.TrimPrefix(filepath.ToSlash(strings.TrimPrefix(path, goroot)), "/")
		if rel == "" {
			return nil
		}
		if strings.HasPrefix(rel, "test/") && isDotArchChar(rel) {
			// Skip test/bench/shootout/spectral-norm.6, etc.
			return nil
		}
		if fi.IsDir() {
			switch rel {
			case ".git", "pkg", "bin":
				return filepath.SkipDir
			}
		}
		inf := fileInfo{fi: fi}
		if fi.Mode().IsRegular() {
			inf.sha1, err = fileSHA1(path)
			if err != nil {
				return err
			}
		}
		local[rel] = inf
		return nil
	}); err != nil {
		return fmt.Errorf("error enumerating local GOROOT files: %v", err)
	}

	var toDel []string
	for rel := range remote {
		if rel == "VERSION" {
			// Don't delete this. It's harmless, and necessary.
			// Clients can overwrite it if they want.
			continue
		}
		rel = strings.TrimRight(rel, "/")
		if rel == "" {
			continue
		}
		if _, ok := local[rel]; !ok {
			toDel = append(toDel, rel)
		}
	}
	if len(toDel) > 0 {
		withGo := make([]string, len(toDel)) // with the "go/" prefix
		for i, v := range toDel {
			withGo[i] = "go/" + v
		}
		sort.Strings(withGo)
		log.Printf("Deleting remote files: %q", withGo)
		if err := bc.RemoveAll(withGo...); err != nil {
			return fmt.Errorf("Deleting remote unwanted files: %v", err)
		}
	}

	var toSend []string
	for rel, inf := range local {
		if !inf.fi.Mode().IsRegular() {
			// TODO(bradfitz): this is only doing regular files
			// for now, so empty directories, symlinks, etc aren't
			// supported. revisit if that's a problem.
			if !inf.fi.IsDir() {
				log.Printf("Ignoring local non-regular, non-directory file %s: %v", rel, inf.fi.Mode())
			}
			continue
		}
		rem, ok := remote[rel]
		if !ok {
			log.Printf("Remote doesn't have %q", rel)
			toSend = append(toSend, rel)
			continue
		}
		if rem.Digest() != inf.sha1 {
			log.Printf("Remote's %s digest is %q; want %q", rel, rem.Digest(), inf.sha1)
			toSend = append(toSend, rel)
		}
	}
	if _, hasVersion := remote["VERSION"]; !hasVersion {
		log.Printf("Remote lacks a VERSION file; sending a fake one")
		toSend = append(toSend, "VERSION")
	}
	if len(toSend) > 0 {
		sort.Strings(toSend)
		tgz, err := generateDeltaTgz(goroot, toSend)
		if err != nil {
			return err
		}
		log.Printf("Uploading %d new/changed files; %d byte .tar.gz", len(toSend), tgz.Len())
		if err := bc.PutTar(tgz, "go"); err != nil {
			return fmt.Errorf("writing tarball to buildlet: %v", err)
		}
	}
	return nil
}

func isEditorBackup(path string) bool {
	base := filepath.Base(path)
	if strings.HasPrefix(base, ".") && strings.HasSuffix(base, ".swp") {
		// vi
		return true
	}
	if strings.HasSuffix(path, "~") || strings.HasSuffix(path, "#") ||
		strings.HasPrefix(base, "#") || strings.HasPrefix(base, ".#") {
		// emacs
		return true
	}
	return false
}

// file is forward-slash separated
func generateDeltaTgz(goroot string, files []string) (*bytes.Buffer, error) {
	var buf bytes.Buffer
	zw := gzip.NewWriter(&buf)
	tw := tar.NewWriter(zw)
	for _, file := range files {
		// Special.
		if file == "VERSION" {
			// TODO(bradfitz): a dummy VERSION file's contents to make things
			// happy. Notably it starts with "devel ". Do we care about it
			// being accurate beyond that?
			version := "devel gomote.XXXXX"
			if err := tw.WriteHeader(&tar.Header{
				Name: "VERSION",
				Mode: 0644,
				Size: int64(len(version)),
			}); err != nil {
				return nil, err
			}
			if _, err := io.WriteString(tw, version); err != nil {
				return nil, err
			}
			continue
		}
		f, err := os.Open(filepath.Join(goroot, file))
		if err != nil {
			return nil, err
		}
		fi, err := f.Stat()
		if err != nil {
			f.Close()
			return nil, err
		}
		header, err := tar.FileInfoHeader(fi, "")
		if err != nil {
			f.Close()
			return nil, err
		}
		header.Name = file // forward slash
		if err := tw.WriteHeader(header); err != nil {
			f.Close()
			return nil, err
		}
		if _, err := io.CopyN(tw, f, header.Size); err != nil {
			f.Close()
			return nil, fmt.Errorf("error copying contents of %s: %v", file, err)
		}
		f.Close()
	}
	if err := tw.Close(); err != nil {
		return nil, err
	}
	if err := zw.Close(); err != nil {
		return nil, err
	}

	return &buf, nil
}

func fileSHA1(path string) (string, error) {
	f, err := os.Open(path)
	if err != nil {
		return "", err
	}
	defer f.Close()
	s1 := sha1.New()
	if _, err := io.Copy(s1, f); err != nil {
		return "", err
	}
	return fmt.Sprintf("%x", s1.Sum(nil)), nil
}

func isDotArchChar(path string) bool {
	if len(path) < 2 || path[len(path)-2] != '.' {
		return false
	}
	switch path[len(path)-1] {
	case '6', '8', '5', '7', '9':
		return true
	}
	return false
}


text:
@implementation StravaSegmentEffort

+ (NSDictionary *)JSONKeyPathsByPropertyKey
{
    return @{
             @"id": @"id",
             @"name": @"name",
             @"segment": @"segment",
             @"activityId": @"activity.id",
             @"athleteId": @"athlete.id",
             @"komRank": @"kom_rank",
             @"prRank": @"pr_rank",
             @"elapsedTime": @"elapsed_time",
             @"movingTime": @"moving_time",
             @"startDate": @"start_date",
             @"distance": @"start_date_local",
             @"startIndex": @"start_index",
             @"endIndex": @"end_index",
             @"hidden": @"hidden",
             @"resourceState": @"resource_state"
             };
}

#define HANDLE_NIL_FOR_KEY(keyname,ivar,value) if ([key isEqualToString:keyname]) { ivar = value; }

-(void) setNilValueForKey:(NSString *)key
{
    HANDLE_NIL_FOR_KEY(@"id",                   _id,                    0);
    HANDLE_NIL_FOR_KEY(@"activityId",           _activityId,            0);
    HANDLE_NIL_FOR_KEY(@"athleteId",            _athleteId,             0);
    HANDLE_NIL_FOR_KEY(@"komRank",              _komRank,               0);
    HANDLE_NIL_FOR_KEY(@"prRank",               _prRank,                0);
    HANDLE_NIL_FOR_KEY(@"elapsedTime",          _elapsedTime,           0.0);
    HANDLE_NIL_FOR_KEY(@"movingTime",           _movingTime,            0.0);
    HANDLE_NIL_FOR_KEY(@"distance",             _distance,              0.0f);
    HANDLE_NIL_FOR_KEY(@"startIndex",           _startIndex,            0);
    HANDLE_NIL_FOR_KEY(@"endIndex",             _endIndex,              0);
    HANDLE_NIL_FOR_KEY(@"hidden",               _hidden,                FALSE);
    HANDLE_NIL_FOR_KEY(@"resourceState",        _resourceState,         kResourceStateUnknown);
}

+ (NSValueTransformer *) startDateJSONValueTransformer
{
    return [StravaCommon dateJSONTransformer];
}

+ (NSValueTransformer *) segmentJSONValueTransformer
{
    return [NSValueTransformer mtl_JSONDictionaryTransformerWithModelClass:StravaSegment.class];
}

@end


text:
{% extends "core/base.html" %}
{% block title %}LeagON{% endblock %}
{% block js %}
{% endblock %}
{% block content %}
    <form action="{% url core.views.manage_team team.id %}" method="POST">
        {{ form.as_ul }}
        <input id="player_search" />
        <input id="player_search_id" />
        <input type="submit" value="Update Team">
        {% csrf_token %}
    </form>

{% endblock %}


text:
require 'formula'

class Gts < Formula
  homepage 'http://gts.sourceforge.net/'
  url 'https://downloads.sourceforge.net/project/gts/gts/0.7.6/gts-0.7.6.tar.gz'
  sha1 '000720bebecf0b153eb28260bd30fbd979dcc040'

  option :universal

  depends_on 'pkg-config' => :build
  depends_on 'gettext'
  depends_on 'glib'
  depends_on 'netpbm'

  conflicts_with 'pcb', :because => 'both install `include/gts.h`'

  # Fix for newer netpbm.
  # This software hasn't been updated in seven years
  patch :DATA

  def install
    ENV.universal_binary if build.universal?
    system "./configure", "--disable-debug", "--disable-dependency-tracking",
                          "--prefix=#{prefix}"

    system "make install"
  end
end

__END__
diff --git a/examples/happrox.c b/examples/happrox.c
index 88770a8..11f140d 100644
--- a/examples/happrox.c
+++ b/examples/happrox.c
@@ -21,7 +21,7 @@
 #include <stdlib.h>
 #include <locale.h>
 #include <string.h>
-#include <pgm.h>
+#include <netpbm/pgm.h>
 #include "config.h"
 #ifdef HAVE_GETOPT_H
 #  include <getopt.h>


text:
<?php if ( ! defined('EVENT_ESPRESSO_VERSION')) exit('No direct script access allowed');

/**
 * EE_Admin_Page_CPT_Init
 *
 * This is utilized by all child EE_Admin_Init classes who use core WordPress Custom Post Type views for adding/editing new items.
 *
 * @package			Event Espresso
 * @abstract
 * @subpackage		includes/core/admin/EE_Admin_Page_CPT_Init.core.php
 * @author			Darren Ethier
 *
 * ------------------------------------------------------------------------
 */
abstract class EE_Admin_Page_CPT_Init extends EE_Admin_Page_Init {

	public function do_initial_loads() {
		//we want to use the corresponding admin page object (but not route it!).  To do this we just set _routing to false.  That way this page object is being loaded on all pages to make sure we hook into admin properly.  But note... we are ONLY doing this if the given page is NOT pages we WANT to load ;)
		//This is important because we have hooks that help redirect custom post type saves
		if ( !isset( $_REQUEST['page'] ) || ( isset( $_REQUEST['page'] ) && $_REQUEST['page'] != $this->_menu_map->menu_slug ) ) {
			$this->_routing = FALSE;
			$this->_initialize_admin_page();
		} else {
			//normal init loads
			$this->_initialize_admin_page();
			//added for 4.1 to completely disable autosave for our pages. This can be removed once we fully enable autosave functionality
			remove_filter('wp_print_scripts', 'wp_just_in_time_script_localization');
			add_filter('wp_print_scripts', array($this, 'wp_just_in_time_script_localization'), 100 );
			//end removal of autosave functionality.
		}
	}

	public function wp_just_in_time_script_localization() {
		wp_localize_script( 'autosave', 'autosaveL10n', array(
			'autosaveInterval' => 172800,
			'savingText' => __('Saving Draft…'),
			'saveAlert' => __('The changes you made will be lost if you navigate away from this page.')
		) );
	}

	public function adjust_post_lock_window($interval) {
		return 172800;
	}
}


text:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-2.0.xsd">
    <changeSet author="fx (generated)" id="1371219534726-1">
        <createTable tableName="abstractaccount_permission">
            <column name="abstractaccount_id" type="int8">
                <constraints nullable="false"/>
            </column>
            <column name="permissions_id" type="int8">
                <constraints nullable="false"/>
            </column>
        </createTable>
        <createTable tableName="permission">
            <column name="id" type="int8">
                <constraints nullable="false" primaryKey="true" primaryKeyName="permission_pkey"/>
            </column>
            <column name="inducedpermission" type="VARCHAR(255)"/>
            <column name="permissions" type="VARCHAR(255)"/>
        </createTable>
        <createTable tableName="roles_permission">
            <column name="role_id" type="int8">
                <constraints nullable="false"/>
            </column>
            <column name="permissions_id" type="int8">
                <constraints nullable="false"/>
            </column>
        </createTable>
        <addPrimaryKey columnNames="abstractaccount_id, permissions_id" constraintName="abstractaccount_permission_pkey" tableName="abstractaccount_permission"/>
        <addPrimaryKey columnNames="role_id, permissions_id" constraintName="roles_permission_pkey" tableName="roles_permission"/>
        <addForeignKeyConstraint baseColumnNames="abstractaccount_id" baseTableName="abstractaccount_permission" baseTableSchemaName="public" constraintName="fk_abstractaccount_permission_abstractaccount_id" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="abstractaccount" referencedTableSchemaName="public" referencesUniqueColumn="false"/>
        <addForeignKeyConstraint baseColumnNames="permissions_id" baseTableName="abstractaccount_permission" baseTableSchemaName="public" constraintName="fk_abstractaccount_permission_permissions_id" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="permission" referencedTableSchemaName="public" referencesUniqueColumn="false"/>
        <addForeignKeyConstraint baseColumnNames="permissions_id" baseTableName="roles_permission" baseTableSchemaName="public" constraintName="fk_roles_permission_permissions_id" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="permission" referencedTableSchemaName="public" referencesUniqueColumn="false"/>
        <addForeignKeyConstraint baseColumnNames="role_id" baseTableName="roles_permission" baseTableSchemaName="public" constraintName="fk_roles_permission_role_id" deferrable="false" initiallyDeferred="false" onDelete="NO ACTION" onUpdate="NO ACTION" referencedColumnNames="id" referencedTableName="roles" referencedTableSchemaName="public" referencesUniqueColumn="false"/>
    </changeSet>
</databaseChangeLog>


text:
// CLASS HEADER
#include <dali-toolkit/devel-api/controls/text-controls/text-anchor-devel.h>

// INTERNAL INCLUDES
#include <dali-toolkit/internal/controls/text-controls/text-anchor-impl.h>

using namespace Dali;

namespace Dali
{
namespace Toolkit
{
TextAnchor TextAnchor::New()
{
  return Internal::TextAnchor::New();
}

TextAnchor::TextAnchor()
{
}

TextAnchor::TextAnchor(const TextAnchor& handle)
: Control(handle)
{
}

TextAnchor& TextAnchor::operator=(const TextAnchor& handle)
{
  if(&handle != this)
  {
    Control::operator=(handle);
  }
  return *this;
}

TextAnchor::~TextAnchor()
{
}

TextAnchor TextAnchor::DownCast(BaseHandle handle)
{
  return Control::DownCast<TextAnchor, Internal::TextAnchor>(handle);
}

TextAnchor::TextAnchor(Internal::TextAnchor& implementation)
: Control(implementation)
{
}

TextAnchor::TextAnchor(Dali::Internal::CustomActor* internal)
: Control(internal)
{
  VerifyCustomActorPointer<Internal::TextAnchor>(internal);
}

} // namespace Toolkit

} // namespace Dali


text:
.class Landroid/os/storage/StorageManager$ObbListenerDelegate$1;
.super Landroid/os/Handler;
.source "StorageManager.java"

# annotations
.annotation system Ldalvik/annotation/EnclosingMethod;
    value = Landroid/os/storage/StorageManager$ObbListenerDelegate;-><init>(Landroid/os/storage/StorageManager;Landroid/os/storage/OnObbStateChangeListener;)V
.end annotation

.annotation system Ldalvik/annotation/InnerClass;
    accessFlags = 0x0
    name = null
.end annotation

# instance fields
.field final synthetic this$1:Landroid/os/storage/StorageManager$ObbListenerDelegate;

# direct methods
.method constructor <init>(Landroid/os/storage/StorageManager$ObbListenerDelegate;Landroid/os/Looper;)V
    .locals 0

    iput-object p1, p0, Landroid/os/storage/StorageManager$ObbListenerDelegate$1;->this$1:Landroid/os/storage/StorageManager$ObbListenerDelegate;

    invoke-direct {p0, p2}, Landroid/os/Handler;-><init>(Landroid/os/Looper;)V

    return-void
.end method

# virtual methods
.method public handleMessage(Landroid/os/Message;)V
    .locals 3

    iget-object v1, p0, Landroid/os/storage/StorageManager$ObbListenerDelegate$1;->this$1:Landroid/os/storage/StorageManager$ObbListenerDelegate;

    invoke-virtual {v1}, Landroid/os/storage/StorageManager$ObbListenerDelegate;->getListener()Landroid/os/storage/OnObbStateChangeListener;

    move-result-object v0

    if-nez v0, :cond_0

    return-void

    :cond_0
    iget-object v1, p1, Landroid/os/Message;->obj:Ljava/lang/Object;

    check-cast v1, Ljava/lang/String;

    iget v2, p1, Landroid/os/Message;->arg1:I

    invoke-virtual {v0, v1, v2}, Landroid/os/storage/OnObbStateChangeListener;->onObbStateChange(Ljava/lang/String;I)V

    return-void
.end method