travis-web/public/javascripts/application.js
2012-09-11 18:17:07 +02:00

1 line
282 KiB
JavaScript

minispade.register('templates', "(function() {Ember.TEMPLATES['auth/show']=Ember.Handlebars.compile(\"<h1>Sign in</h1>\\n\\n<p>\\n <a href=\\\"\\\" class=\\\"profile-signup\\\" {{action signIn target=\\\"Travis.app\\\"}}>\\n Sign in with GitHub\\n </a>\\n</p>\\n\\n\");Ember.TEMPLATES['builds/list']=Ember.Handlebars.compile(\"<table id=\\\"builds\\\" class=\\\"list\\\">\\n <thead>\\n <tr>\\n <th>{{t builds.name}}</th>\\n <th>{{t builds.commit}}</th>\\n <th>{{t builds.message}}</th>\\n <th>{{t builds.duration}}</th>\\n <th>{{t builds.finished_at}}</th>\\n </tr>\\n </thead>\\n\\n <tbody>\\n {{#each build in builds}}\\n {{#view Travis.BuildsItemView contextBinding=\\\"build\\\"}}\\n <tr {{bindAttr class=\\\"view.color\\\"}}>\\n <td class=\\\"number\\\">\\n <a {{bindAttr href=\\\"view.urlBuild\\\"}} {{action route}}>\\n {{number}}\\n </a>\\n </td>\\n <td class=\\\"commit\\\">\\n <a {{bindAttr href=\\\"view.urlGithubCommit\\\"}}>\\n {{formatCommit commit}}\\n </a>\\n </td>\\n <td class=\\\"message\\\">\\n {{{formatMessage commit.message short=\\\"true\\\"}}}\\n </td>\\n <td class=\\\"duration\\\" {{bindAttr title=\\\"started_at\\\"}}>\\n {{formatDuration duration}}\\n </td>\\n <td class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finished_at\\\"}}>\\n {{formatTime finishedAt}}\\n </td>\\n </tr>\\n {{/view}}\\n {{/each}}\\n </tbody>\\n</table>\\n\\n<p>\\n <button {{action showMore on=\\\"click\\\" target=\\\"this\\\" isVisibleBinding=\\\"hasMore\\\"}}>\\n {{t builds.show_more}}\\n </button>\\n</p>\\n\");Ember.TEMPLATES['builds/show']=Ember.Handlebars.compile(\"{{#with view}}\\n {{#if build.isLoaded}}\\n <div id=\\\"build\\\" {{bindAttr class=\\\"color\\\"}}>\\n <dl id=\\\"summary\\\">\\n <div class=\\\"left\\\">\\n <dt>{{t builds.name}}</dt>\\n <dd class=\\\"number\\\"><a {{bindAttr href=\\\"urlBuild\\\"}} {{action route}}>{{build.number}}</a></dd>\\n <dt class=\\\"finished_at_label\\\">{{t builds.finished_at}}</dt>\\n <dd class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finished_at\\\"}}>{{formatTime build.finishedAt}}</dd>\\n <dt>{{t builds.duration}}</dt>\\n <dd class=\\\"duration\\\" {{bindAttr title=\\\"started_at\\\"}}>{{formatDuration build.duration}}</dd>\\n </div>\\n\\n <div class=\\\"right\\\">\\n <dt>{{t builds.commit}}</dt>\\n <dd class=\\\"commit\\\"><a {{bindAttr href=\\\"urlGithubCommit\\\"}}>{{formatCommit build.commit}}</a></dd>\\n {{#if commit.compareUrl}}\\n <dt>{{t builds.compare}}</dt>\\n <dd class=\\\"compare\\\"><a {{bindAttr href=\\\"commit.compareUrl\\\"}}>{{pathFrom build.commit.compareUrl}}</a></dd>\\n {{/if}}\\n {{#if commit.authorName}}\\n <dt>{{t builds.author}}</dt>\\n <dd class=\\\"author\\\"><a {{bindAttr href=\\\"urlAuthor\\\"}}>{{build.commit.authorName}}</a></dd>\\n {{/if}}\\n {{#if commit.committerName}}\\n <dt>{{t builds.committer}}</dt>\\n <dd class=\\\"committer\\\"><a {{bindAttr href=\\\"urlCommitter\\\"}}>{{build.commit.committerName}}</a></dd>\\n {{/if}}\\n </div>\\n\\n <dt>{{t builds.message}}</dt>\\n <dd class=\\\"message\\\">{{{formatMessage build.commit.message}}}</dd>\\n\\n {{#unless isMatrix}}\\n <dt>{{t builds.config}}</dt>\\n <dd class=\\\"config\\\">{{formatConfig build.config}}</dd>\\n {{/unless}}\\n </dl>\\n\\n {{#if build.isMatrix}}\\n {{view Travis.JobsView jobsBinding=\\\"build.requiredJobs\\\" required=\\\"true\\\"}}\\n {{view Travis.JobsView jobsBinding=\\\"build.allowedFailureJobs\\\"}}\\n {{else}}\\n {{view Travis.LogView contextBinding=\\\"build.jobs.firstObject\\\"}}\\n {{/if}}\\n </div>\\n {{else}}\\n <div id=\\\"build\\\" class=\\\"loading\\\">\\n <span>Loading</span>\\n </div>\\n {{/if}}\\n{{/with}}\\n\");Ember.TEMPLATES['jobs/list']=Ember.Handlebars.compile(\"{{#if view.jobs.length}}\\n {{#if view.required}}\\n <table id=\\\"jobs\\\" class=\\\"list\\\">\\n <caption>\\n {{t jobs.build_matrix}}\\n </caption>\\n {{else}}\\n <table id=\\\"allowed_failure_jobs\\\" class=\\\"list\\\">\\n <caption>\\n {{t jobs.allowed_failures}}\\n <a title=\\\"What's this?\\\" class=\\\"help\\\" {{action toggleHelp}}></a>\\n </caption>\\n {{/if}}\\n <thead>\\n <tr>\\n {{#each key in view.build.configKeys}}\\n <th>{{key}}</th>\\n {{/each}}\\n </tr>\\n </thead>\\n <tbody>\\n {{#each job in view.jobs}}\\n {{#view Travis.JobsItemView contextBinding=\\\"job\\\"}}\\n <td class=\\\"number\\\"><a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>{{number}}</a></td>\\n <td class=\\\"duration\\\" {{bindAttr title=\\\"started_at\\\"}}>{{formatDuration duration}}</td>\\n <td class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finishedAt\\\"}}>{{formatTime finishedAt}}</td>\\n {{#each value in configValues}}\\n <td>{{value}}</td>\\n {{/each}}\\n {{/view}}\\n {{/each}}\\n </tbody>\\n </table>\\n\\n {{#unless required}}\\n <div id=\\\"allow_failure_help\\\" class=\\\"context_help\\\">\\n <div class=\\\"context_help_caption\\\">{{t \\\"jobs.allowed_failures\\\"}}</div>\\n <div class=\\\"context_help_body\\\">\\n <p>\\n Allowed Failures are items in your build matrix that are allowed to\\n fail without causing the entire build to be shown as failed. This lets you add\\n in experimental and preparatory builds to test against versions or\\n configurations that you are not ready to officially support.\\n </p>\\n <p>\\n You can define allowed failures in the build matrix as follows:\\n </p>\\n <pre> matrix:\\n allow_failures:\\n - rvm: ruby-head </pre>\\n </div>\\n </div>\\n {{/unless}}\\n{{/if}}\\n\");Ember.TEMPLATES['jobs/log']=Ember.Handlebars.compile(\"{{view.logSubscriber}}\\n\\n{{#if log.isLoaded}}\\n <pre id=\\\"log\\\">{{{formatLog log.body}}}</pre>\\n\\n {{#if sponsor.name}}\\n <p class=\\\"sponsor\\\">\\n {{t builds.messages.sponsored_by}}\\n <a {{bindAttr href=\\\"sponsor.url\\\"}}>{{sponsor.name}}</a>\\n </p>\\n {{/if}}\\n{{else}}\\n <div id=\\\"log\\\" class=\\\"loading\\\">\\n <span>Loading</span>\\n </div>\\n{{/if}}\\n\");Ember.TEMPLATES['jobs/show']=Ember.Handlebars.compile(\"{{#with view}}\\n {{#if job.isLoaded}}\\n <div {{bindAttr class=\\\"view.color\\\"}}>\\n <dl id=\\\"summary\\\">\\n <div class=\\\"left\\\">\\n <dt>Job</dt>\\n <dd class=\\\"number\\\"><a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>{{job.number}}</a></dd>\\n <dt class=\\\"finished_at_label\\\">{{t jobs.finished_at}}</dt>\\n <dd class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"finished_at\\\"}}>{{formatTime job.finishedAt}}</dd>\\n <dt>{{t jobs.duration}}</dt>\\n <dd class=\\\"duration\\\" {{bindAttr title=\\\"started_at\\\"}}>{{formatDuration job.duration}}</dd>\\n </div>\\n\\n <div class=\\\"right\\\">\\n <dt>{{t jobs.commit}}</dt>\\n <dd class=\\\"commit\\\"><a {{bindAttr href=\\\"urlGithubCommit\\\"}}>{{formatCommit commit}}</a></dd>\\n {{#if commit.compareUrl}}\\n <dt>{{t jobs.compare}}</dt>\\n <dd class=\\\"compare\\\"><a {{bindAttr href=\\\"commit.compareUrl\\\"}}>{{pathFrom commit.compareUrl}}</a></dd>\\n {{/if}}\\n {{#if commit.authorName}}\\n <dt>{{t jobs.author}}</dt>\\n <dd class=\\\"author\\\"><a {{bindAttr href=\\\"urlAuthor\\\"}}>{{commit.authorName}}</a></dd>\\n {{/if}}\\n {{#if commit.committerName}}\\n <dt>{{t jobs.committer}}</dt>\\n <dd class=\\\"committer\\\"><a {{bindAttr href=\\\"urlCommitter\\\"}}>{{commit.committerName}}</a></dd>\\n {{/if}}\\n </div>\\n\\n <dt>{{t jobs.message}}</dt>\\n <dd class=\\\"message\\\">{{formatMessage commit.message}}</dd>\\n <dt>{{t jobs.config}}</dt>\\n <dd class=\\\"config\\\">{{formatConfig job.config}}</dd>\\n </dl>\\n\\n {{view Travis.LogView contextBinding=\\\"job\\\"}}}\\n </div>\\n {{else}}\\n <div id=\\\"job\\\" class=\\\"loading\\\">\\n <span>Loading</span>\\n </div>\\n {{/if}}\\n{{/with}}\\n\");Ember.TEMPLATES['layouts/home']=Ember.Handlebars.compile(\"<div id=\\\"top\\\">\\n {{outlet top}}\\n</div>\\n\\n<div id=\\\"left\\\">\\n {{outlet left}}\\n</div>\\n\\n<div id=\\\"main\\\">\\n {{outlet main}}\\n\\n <div id=\\\"right\\\">\\n {{outlet right}}\\n </div>\\n</div>\\n\\n\");Ember.TEMPLATES['layouts/profile']=Ember.Handlebars.compile(\"<div id=\\\"top\\\">\\n {{outlet top}}\\n</div>\\n\\n<div id=\\\"left\\\">\\n {{outlet left}}\\n</div>\\n\\n<div id=\\\"main\\\">\\n {{outlet main}}\\n\\n <div id=\\\"right\\\">\\n <div id=\\\"slider\\\" {{action toggleSidebar target=\\\"Travis.app\\\"}}>\\n <div class='icon'></div>&nbsp;\\n </div>\\n\\n <div class=\\\"box\\\">\\n <h4>Getting started?</h4>\\n <p>\\n Please read our <a href=\\\"http://about.travis-ci.org/docs/user/getting-started\\\">guide</a>.\\n It will only take a few minutes :)\\n </p>\\n <p>\\n You can find detailled docs on our <a href=\\\"http://about.travis-ci.org/\\\">about</a> site.\\n </p>\\n <p>\\n If you need help please don't hesitate to join\\n <a href=\\\"irc://irc.freenode.net#travis\\\">#travis</a> on irc.freenode.net\\n or our <a href=\\\"http://groups.google.com/group/travis-ci\\\">mailinglist</a>.\\n </p>\\n </div>\\n </div>\\n</div>\\n\\n\");Ember.TEMPLATES['layouts/sidebar']=Ember.Handlebars.compile(\"<a id=\\\"github\\\" href=\\\"https://github.com/travis-ci\\\" title=\\\"Fork me on GitHub\\\">\\n {{t layouts.application.fork_me}}\\n</a>\\n\\n<div id=\\\"slider\\\" {{action toggleSidebar target=\\\"Travis.app\\\"}}>\\n <div class='icon'></div>&nbsp;\\n</div>\\n\\n{{outlet decks}}\\n{{outlet workers}}\\n{{outlet queues}}\\n{{outlet links}}\\n\\n<div id=\\\"alpha_warning\\\" class=\\\"box\\\">\\n <h4>{{t layouts.about.alpha}}</h4>\\n <p>{{{t layouts.about.messages.alpha}}}</p>\\n</div>\\n\\n<div id=\\\"about\\\" class=\\\"box\\\">\\n <h4>{{t layouts.about.join}}</h4>\\n <ul>\\n <li>{{t layouts.about.repository}}: <a href=\\\"http://github.com/travis-ci\\\">Github</a></li>\\n <li>{{t layouts.about.twitter}}: <a href=\\\"http://twitter.com/travisci\\\">@travisci</a></li>\\n <li>{{t layouts.about.mailing_list}}: <a href=\\\"http://groups.google.com/group/travis-ci\\\">travis-ci</a></li>\\n <li><a href=\\\"irc://irc.freenode.net#travis\\\">irc.freenode.net#travis</a></li>\\n </ul>\\n</div>\\n\");Ember.TEMPLATES['layouts/simple']=Ember.Handlebars.compile(\"<div id=\\\"top\\\">\\n {{outlet top}}\\n</div>\\n\\n<div id=\\\"main\\\">\\n {{outlet main}}\\n</div>\\n\\n\");Ember.TEMPLATES['layouts/top']=Ember.Handlebars.compile(\"<a href=\\\"#\\\" {{action route}}>\\n <h1>Travis</h1>\\n</a>\\n\\n<ul id=\\\"navigation\\\">\\n <li {{bindAttr class=\\\"view.classHome\\\"}}>\\n <a href=\\\"/\\\" {{action route}}>Home</a>\\n </li>\\n <li {{bindAttr class=\\\"view.classStats\\\"}}>\\n <a href=\\\"/stats\\\" {{action route}}>Stats</a>\\n </li>\\n <li>\\n <a href=\\\"http://about.travis-ci.org/blog\\\">Blog</a>\\n </li>\\n <li>\\n <a href=\\\"http://about.travis-ci.org/docs\\\">Docs</a>\\n </li>\\n {{#if user}}\\n <li {{bindAttr class=\\\"view.classProfile\\\"}}>\\n <a href=\\\"#\\\" class=\\\"name\\\">\\n <img {{bindAttr src=\\\"view.gravatarUrl\\\"}}>\\n {{user.name}}\\n </a>\\n <ul>\\n <li>\\n <a href=\\\"/profile\\\" class=\\\"profile\\\" {{action route}}>{{t layouts.top.profile}}</a>\\n </li>\\n <li>\\n <a href=\\\"/\\\" class=\\\"signout\\\" {{action signOut target=\\\"Travis.app\\\"}}>{{t layouts.top.sign_out}}</a>\\n </li>\\n </ul>\\n </li>\\n {{else}}\\n <li {{bindAttr class=\\\"view.classProfile\\\"}}>\\n <a href=\\\"#\\\" {{action signIn target=\\\"Travis.app\\\"}}>{{t layouts.top.github_login}}</a>\\n </li>\\n {{/if}}\\n</ul>\\n\");Ember.TEMPLATES['profile/owners']=Ember.Handlebars.compile(\"<div id=\\\"search_box\\\">\\n</div>\\n\\n<ul class=\\\"tabs\\\">\\n <li id=\\\"tab_accounts\\\" {{bindAttr class=\\\"view.classAccounts\\\"}}>\\n <h5><a name=\\\"accounts\\\" href=\\\"\\\">Accounts</a></h5>\\n </li>\\n</ul>\\n\\n<div class=\\\"tab\\\">\\n {{#collection Travis.OwnersListView contentBinding=\\\"controller\\\"}}\\n <a {{bindAttr href=\\\"view.urlOwner\\\"}} {{action route}} class=\\\"name\\\">{{view.name}}</a>\\n <p class=\\\"summary\\\">\\n <span class=\\\"repos_label\\\">Repositories:</span>\\n <abbr class=\\\"repos\\\">{{view.content.reposCount}}</abbr>\\n </p>\\n {{/collection}}\\n</div>\\n\");Ember.TEMPLATES['profile/show']=Ember.Handlebars.compile(\"<h3>{{owner.name}}</h3>\\n\\n{{view Travis.ProfileTabsView}}\\n\\n<div class=\\\"tab\\\">\\n {{outlet pane}}\\n</div>\\n\\n\\n\");Ember.TEMPLATES['profile/tabs']=Ember.Handlebars.compile(\"<ul class=\\\"tabs\\\">\\n <li id=\\\"tab_hooks\\\" {{bindAttr class=\\\"view.classHooks\\\"}}>\\n <h5><a name=\\\"hooks\\\" {{action activate}}>Repositories</a></h5>\\n </li>\\n {{#if view.displayUser}}\\n <li id=\\\"tab_user\\\" {{bindAttr class=\\\"view.classUser\\\"}}>\\n <h5><a name=\\\"user\\\" {{action activate}}>Profile</a></h5>\\n </li>\\n {{/if}}\\n</ul>\\n\");Ember.TEMPLATES['profile/tabs/hooks']=Ember.Handlebars.compile(\"<p class=\\\"tip\\\">\\n {{{t profiles.show.message.your_repos}}}\\n</p>\\n\\n{{#if hooks.length}}\\n <ul id=\\\"hooks\\\">\\n {{#each hook in hooks}}\\n <li {{bindAttr class=\\\"active\\\"}}>\\n <a {{bindAttr href=\\\"hook.urlGithub\\\"}} rel=\\\"nofollow\\\">{{hook.slug}}</a>\\n <p class=\\\"description\\\">{{hook.description}}</p>\\n\\n <div class=\\\"controls\\\">\\n <a {{bindAttr href=\\\"hook.urlGithubAdmin\\\"}} class=\\\"github-admin tool-tip\\\" title=\\\"Github service hooks admin page\\\"></a>\\n <a {{action toggle target=\\\"hook\\\"}} class=\\\"switch\\\"></a>\\n </div>\\n </li>\\n {{/each}}\\n </ul>\\n{{else}}\\n <p class=\\\"sync\\\">Please wait while we sync with GitHub</p>\\n{{/if}}\\n\\n\\n\");Ember.TEMPLATES['profile/tabs/user']=Ember.Handlebars.compile(\"<img {{bindAttr src=\\\"view.gravatarUrl\\\"}}>\\n\\n<dl class=\\\"profile\\\">\\n <dt>\\n {{t profiles.show.github}}:\\n </dt>\\n <dd>\\n <a {{bindAttr href=\\\"urlGithub\\\"}}>{{user.login}}</a>\\n </dd>\\n <dt>\\n {{t profiles.show.email}}:\\n </dt>\\n <dd>\\n {{user.email}}\\n </dd>\\n <dt>\\n {{t profiles.show.token}}:\\n </dt>\\n <dd>\\n {{user.token}}\\n </dd>\\n</dl>\\n\\n<form>\\n {{view Ember.Select\\n contentBinding=\\\"view.locales\\\"\\n selectionBinding=\\\"user.locale\\\"\\n optionLabelPath=\\\"content.name\\\"\\n optionValuePath=\\\"content.key\\\"}}\\n\\n <button name=\\\"commit\\\" {{action saveLocale}}>\\n {{t profiles.show.update_locale}}\\n </button>\\n</form>\\n\\n\\n\");Ember.TEMPLATES['queues/list']=Ember.Handlebars.compile(\"{{#each queue in controller}}\\n <h4>{{t queue}}: {{queue.name}}</h4>\\n <ul {{bindAttr id=\\\"queue.id\\\"}}>\\n {{#each queue}}\\n <li>\\n {{repository.slug}}\\n {{#if number}}\\n #{{number}}\\n {{/if}}\\n </li>\\n {{else}}\\n {{t no_job}}\\n {{/each}}\\n </ul>\\n{{/each}}\\n\");Ember.TEMPLATES['repos/list']=Ember.Handlebars.compile(\"<div id=\\\"search_box\\\">\\n {{view Ember.TextField valueBinding=\\\"controller.search\\\"}}\\n</div>\\n\\n{{view Travis.ReposListTabsView}}\\n\\n<div class=\\\"tab\\\">\\n {{#collection Travis.RepositoriesListView contentBinding=\\\"controller\\\"}}\\n {{#with view.repository}}\\n <a {{bindAttr href=\\\"view.urlRepository\\\"}} {{action route}} class=\\\"current\\\">{{slug}}</a>\\n <a {{bindAttr href=\\\"view.urlLastBuild\\\"}} {{action route}} class=\\\"last_build\\\">#{{lastBuildNumber}}</a>\\n\\n <p class=\\\"summary\\\">\\n <span class=\\\"duration_label\\\">{{t repositories.duration}}:</span>\\n <abbr class=\\\"duration\\\" {{bindAttr title=\\\"lastBuildStartedAt\\\"}}>{{formatDuration lastBuildDuration}}</abbr>,\\n <span class=\\\"finished_at_label\\\">{{t repositories.finished_at}}:</span>\\n <abbr class=\\\"finished_at timeago\\\" {{bindAttr title=\\\"lastBuildFinishedAt\\\"}}>{{formatTime lastBuildFinishedAt}}</abbr>\\n </p>\\n {{#if description}}\\n <p class=\\\"description\\\">{{description}}</p>\\n {{/if}}\\n <span class=\\\"indicator\\\"></span>\\n {{/with}}\\n {{/collection}}\\n</div>\\n\");Ember.TEMPLATES['repos/list/tabs']=Ember.Handlebars.compile(\"<ul class=\\\"tabs\\\">\\n <li id=\\\"tab_recent\\\" {{bindAttr class=\\\"view.classRecent\\\"}}>\\n <h5><a name=\\\"recent\\\" {{action activate}}>{{t layouts.application.recent}}</a></h5>\\n </li>\\n <li id=\\\"tab_owned\\\" {{bindAttr class=\\\"view.classOwned\\\"}}>\\n <h5><a name=\\\"owned\\\" {{action activate}}>{{t layouts.application.my_repositories}}</a></h5>\\n </li>\\n <li id=\\\"tab_search\\\" {{bindAttr class=\\\"view.classSearch\\\"}}>\\n <h5><a name=\\\"search\\\" {{action activate}}>{{t layouts.application.search}}</a></h5>\\n </li>\\n</ul>\\n\\n\");Ember.TEMPLATES['repos/show']=Ember.Handlebars.compile(\"<div id=\\\"repository\\\" {{bindAttr class=\\\"view.class\\\"}}>\\n {{#if view.repository.isLoaded}}\\n {{#with view.repository}}\\n <h3>\\n <a {{bindAttr href=\\\"view.urlGithub\\\"}} {{action route}}>{{slug}}</a>\\n </h3>\\n\\n <p class=\\\"description\\\">{{description}}</p>\\n\\n <ul class=\\\"github-stats\\\">\\n <li class=\\\"language\\\">\\n {{lastBuildLanguage}}\\n </li>\\n <li>\\n <a class=\\\"watchers\\\" title=\\\"Watchers\\\" {{bindAttr href=\\\"view.urlGithubWatchers\\\"}} {{action route}}>\\n {{stats.watchers}}\\n </a>\\n </li>\\n <li>\\n <a class=\\\"forks\\\" title=\\\"Forks\\\" {{bindAttr href=\\\"view.urlGithubNetwork\\\"}} {{action route}}>\\n {{stats.forks}}\\n </a>\\n </li>\\n </ul>\\n\\n {{view Travis.RepoShowTabsView}}\\n {{/with}}\\n\\n {{else}}\\n <span>Loading</span>\\n {{/if}}\\n\\n <div class=\\\"tab\\\">\\n {{outlet pane}}\\n </div>\\n</div>\\n\\n\");Ember.TEMPLATES['repos/show/tabs']=Ember.Handlebars.compile(\"<ul class=\\\"tabs\\\">\\n <li id=\\\"tab_current\\\" {{bindAttr class=\\\"view.classCurrent\\\"}}>\\n <h5>\\n <a {{bindAttr href=\\\"view.urlRepository\\\"}} {{action route}}>\\n {{t repositories.tabs.current}}\\n </a>\\n </h5>\\n </li>\\n <li id=\\\"tab_builds\\\" {{bindAttr class=\\\"view.classBuilds\\\"}}>\\n <h5>\\n <a {{bindAttr href=\\\"view.urlBuilds\\\"}} {{action route}}>\\n {{t repositories.tabs.build_history}}\\n </a>\\n </h5>\\n </li>\\n <li id=\\\"tab_pull_requests\\\" {{bindAttr class=\\\"view.classPullRequests\\\"}}>\\n <h5>\\n <a {{bindAttr href=\\\"view.urlPullRequests\\\"}} {{action route}}>\\n {{t repositories.tabs.pull_requests}}\\n </a>\\n </h5>\\n </li>\\n <li id=\\\"tab_branches\\\" {{bindAttr class=\\\"view.classBranches\\\"}}>\\n <h5>\\n <a {{bindAttr href=\\\"view.urlBranches\\\"}} {{action route}}>\\n {{t repositories.tabs.branches}}\\n </a>\\n </h5>\\n </li>\\n <li id=\\\"tab_build\\\" {{bindAttr class=\\\"view.classBuild\\\"}}>\\n <h5>\\n <a {{bindAttr href=\\\"view.urlBuild\\\"}} {{action route}}>\\n {{t repositories.tabs.build}} #{{view.build.number}}\\n </a>\\n </h5>\\n </li>\\n <li id=\\\"tab_job\\\" {{bindAttr class=\\\"view.classJob\\\"}}>\\n <h5>\\n <a {{bindAttr href=\\\"view.urlJob\\\"}} {{action route}}>\\n {{t repositories.tabs.job}} #{{view.job.number}}\\n </a>\\n </h5>\\n </li>\\n</ul>\\n\\n<div id=\\\"tools\\\">\\n <a href=\\\"#\\\" {{action toggleTools}}></a>\\n <div class=\\\"pane\\\">\\n <p>\\n <label>{{t repositories.branch}}:</label>\\n {{view Ember.Select contentBinding=\\\"view.branches\\\" selectionBinding=\\\"view.branch\\\" optionLabelPath=\\\"content.commit.branch\\\" optionValuePath=\\\"content.commit.branch\\\"}}\\n </p>\\n <p>\\n <label>{{t repositories.image_url}}:</label>\\n <input type=\\\"text\\\" class=\\\"url\\\" {{bindAttr value=\\\"view.urlStatusImage\\\"}}></input>\\n </p>\\n <p>\\n <label>{{t repositories.markdown}}:</label>\\n <input type=\\\"text\\\" class=\\\"markdown\\\" {{bindAttr value=\\\"view.markdownStatusImage\\\"}}></input>\\n </p>\\n <p>\\n <label>{{t repositories.textile}}:</label>\\n <input type=\\\"text\\\" class=\\\"textile\\\" {{bindAttr value=\\\"view.textileStatusImage\\\"}}></input>\\n </p>\\n <p>\\n <label>{{t repositories.rdoc}}:</label>\\n <input type=\\\"text\\\" class=\\\"rdoc\\\" {{bindAttr value=\\\"view.rdocStatusImage\\\"}}></input>\\n </p>\\n </div>\\n</div>\\n\");Ember.TEMPLATES['sponsors/decks']=Ember.Handlebars.compile(\"<h4>{{t layouts.application.sponsers}}</h4>\\n\\n<ul class=\\\"sponsors top\\\">\\n {{#each deck in controller}}\\n {{#each deck}}\\n <li {{bindAttr class=\\\"type\\\"}}>\\n <a {{bindAttr href=\\\"url\\\"}}>\\n <img {{bindAttr src=\\\"image\\\"}}>\\n </a>\\n </li>\\n {{/each}}\\n {{/each}}\\n</ul>\\n\\n<p class=\\\"hint\\\">\\n <a href=\\\"https://love.travis-ci.org/sponsors\\\">\\n {{{t layouts.application.sponsors_link}}}\\n </a>\\n</p>\\n\");Ember.TEMPLATES['sponsors/links']=Ember.Handlebars.compile(\"<div class=\\\"box\\\">\\n <h4>{{t layouts.application.sponsers}}</h4>\\n\\n <ul class=\\\"sponsors bottom\\\">\\n {{#each controller}}\\n <li>\\n {{{link}}}\\n </li>\\n {{/each}}\\n </ul>\\n\\n <p class=\\\"hint\\\">\\n <a href=\\\"https://love.travis-ci.org/sponsors\\\">\\n {{{t layouts.application.sponsors_link}}}\\n </a>\\n </p>\\n</div>\\n\\n\");Ember.TEMPLATES['stats/show']=Ember.Handlebars.compile(\"<div id=\\\"repos_stats\\\"></div>\\n<div id=\\\"tests_stats\\\"></div>\\n\");Ember.TEMPLATES['workers/list']=Ember.Handlebars.compile(\"<h4>{{t workers}}</h4>\\n<ul id=\\\"workers\\\">\\n {{#each group in controller.groups}}\\n {{#view Travis.WorkersView contextBinding=\\\"repository\\\"}}\\n <li class=\\\"group\\\">\\n <h5 {{action toggle}}>\\n {{group.firstObject.host}}\\n </h5>\\n <ul>\\n {{#each worker in group}}\\n <li class=\\\"worker\\\">\\n <div class=\\\"icon\\\"></div>\\n <a {{bindAttr href=\\\"worker.urlJob\\\"}} {{bindAttr title=\\\"worker.lastSeenAt\\\"}} {{action route}}>{{worker.display}}</a>\\n </li>\\n {{/each}}\\n </ul>\\n </li>\\n {{/view}}\\n {{else}}\\n No workers\\n {{/each}}\\n</ul>\\n\\n\");\n})();\n//@ sourceURL=templates");minispade.register('app', "(function() {(function() {\nminispade.require('travis');\nminispade.require('controllers');\nminispade.require('helpers');\nminispade.require('models');\nminispade.require('pusher');\nminispade.require('routes');\nminispade.require('store');\nminispade.require('templates');\nminispade.require('views');\nminispade.require('config/locales');\nminispade.require('data/sponsors');\n\n Ember.ENV.RAISE_ON_DEPRECATION = true;\n\n Travis.reopen({\n App: Em.Application.extend({\n init: function() {\n this._super();\n this.connect();\n this.store = Travis.Store.create();\n this.store.loadMany(Travis.Sponsor, Travis.SPONSORS);\n this.routes = new Travis.Routes();\n this.pusher = new Travis.Pusher();\n return this.setCurrentUser(JSON.parse($.cookie('user')));\n },\n signIn: function() {\n this.setCurrentUser({\n id: 1,\n login: 'svenfuchs',\n name: 'Sven Fuchs',\n email: 'me@svenfuchs.com',\n token: '1234567890',\n gravatar: '402602a60e500e85f2f5dc1ff3648ecb',\n locale: 'en'\n });\n return this.render.apply(this, this.get('returnTo') || ['home', 'index']);\n },\n signOut: function() {\n return this.setCurrentUser();\n },\n setCurrentUser: function(user) {\n if (typeof user === 'string') {\n user = JSON.parse(user);\n }\n $.cookie('user', JSON.stringify(user));\n if (user) {\n this.store.load(Travis.User, user);\n }\n return this.set('currentUser', user ? Travis.User.find(user.id) : void 0);\n },\n render: function(name, action, params) {\n var layout;\n layout = this.connectLayout(name);\n layout.activate(action, params || {});\n return $('body').attr('id', name);\n },\n receive: function() {\n return this.store.receive.apply(this.store, arguments);\n },\n connectLayout: function(name) {\n var viewClass;\n if (this.get('layout.name') !== name) {\n name = $.camelize(name);\n viewClass = Travis[\"\" + name + \"Layout\"];\n this.layout = Travis[\"\" + name + \"Controller\"].create({\n parent: this.controller\n });\n this.controller.connectOutlet({\n outletName: 'layout',\n controller: this.layout,\n viewClass: viewClass\n });\n }\n return this.layout;\n },\n connect: function() {\n var view;\n this.controller = Em.Controller.create();\n view = Em.View.create({\n template: Em.Handlebars.compile('{{outlet layout}}'),\n controller: this.controller\n });\n return view.appendTo(this.get('rootElement') || 'body');\n },\n toggleSidebar: function() {\n var element;\n $('body').toggleClass('maximized');\n element = $('<span></span>');\n $('#top .profile').append(element);\n Em.run.later((function() {\n return element.remove();\n }), 10);\n element = $('<span></span>');\n $('#repository').append(element);\n return Em.run.later((function() {\n return element.remove();\n }), 10);\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=app");minispade.register('controllers', "(function() {(function() {\nminispade.require('helpers');\nminispade.require('travis/ticker');\n\n Travis.reopen({\n Controller: Em.Controller.extend({\n init: function() {\n var klass, name, _i, _len, _ref, _results;\n _ref = Array.prototype.slice.apply(arguments);\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n name = _ref[_i];\n name = \"\" + ($.camelize(name, false)) + \"Controller\";\n klass = Travis[$.camelize(name)] || Em.Controller;\n _results.push(this[name] = klass.create({\n parent: this,\n namespace: Travis,\n controllers: this\n }));\n }\n return _results;\n },\n connectTop: function() {\n this.connectOutlet({\n outletName: 'top',\n controller: this.topController,\n viewClass: Travis.TopView\n });\n return this.topController.set('tab', this.get('name'));\n },\n connectOutlet: function() {\n var view, _connectedOutletViews;\n view = this._super.apply(this, arguments);\n if (view) {\n _connectedOutletViews = Travis.app.get('_connectedOutletViews');\n if (!_connectedOutletViews) {\n _connectedOutletViews = [];\n }\n _connectedOutletViews.pushObject(view);\n Travis.app.set('_connectedOutletViews', _connectedOutletViews);\n }\n return view;\n }\n }),\n TopController: Em.Controller.extend({\n userBinding: 'Travis.app.currentUser'\n })\n });\nminispade.require('controllers/auth');\nminispade.require('controllers/builds');\nminispade.require('controllers/home');\nminispade.require('controllers/owners');\nminispade.require('controllers/profile');\nminispade.require('controllers/repositories');\nminispade.require('controllers/repository');\nminispade.require('controllers/sidebar');\nminispade.require('controllers/stats');\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers");minispade.register('controllers/auth', "(function() {(function() {\nminispade.require('controllers');\n\n this.Travis.AuthController = Travis.Controller.extend({\n name: 'auth',\n init: function() {\n this._super('top');\n this.connectTop();\n return this.connectOutlet({\n outletName: 'main',\n controller: this,\n viewClass: Travis.AuthView\n });\n },\n activate: function(action, params) {}\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/auth");minispade.register('controllers/builds', "(function() {(function() {\n\n Travis.BuildsController = Em.ArrayController.extend({\n repositoryBinding: 'parent.repository',\n contentBinding: 'parent.builds'\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/builds");minispade.register('controllers/home', "(function() {(function() {\n\n Travis.HomeController = Travis.Controller.extend({\n name: 'home',\n init: function() {\n this._super('top', 'repositories', 'repository', 'sidebar');\n this.connectTop();\n this.connectOutlet({\n outletName: 'left',\n controller: this.repositoriesController,\n viewClass: Travis.RepositoriesView\n });\n this.connectOutlet({\n outletName: 'main',\n controller: this.repositoryController,\n viewClass: Travis.RepositoryView\n });\n return this.connectOutlet({\n outletName: 'right',\n controller: this.sidebarController,\n viewClass: Travis.SidebarView\n });\n },\n activate: function(action, params) {\n return this.repositoryController.activate(action, params);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/home");minispade.register('controllers/owners', "(function() {(function() {\n\n Travis.OwnersController = Ember.ArrayController.extend({\n defaultTab: 'accounts',\n init: function() {\n return this.activate(this.defaultTab);\n },\n activate: function(tab, params) {\n this.set('tab', tab);\n return this[\"view\" + ($.camelize(tab))](params);\n },\n viewAccounts: function() {\n return this.set('content', Travis.Owner.find());\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/owners");minispade.register('controllers/profile', "(function() {(function() {\n\n Travis.ProfileController = Travis.Controller.extend({\n name: 'profile',\n userBinding: 'Travis.app.currentUser',\n init: function() {\n this._super('top', 'owners');\n this.connectTop();\n this.connectOutlet({\n outletName: 'left',\n controller: this.ownersController,\n viewClass: Travis.OwnersView\n });\n this.connectOutlet({\n outletName: 'main',\n controller: this,\n viewClass: Travis.ProfileView\n });\n return this.owners = this.ownersController.get('content');\n },\n owner: (function() {\n var login;\n login = this.get('params.login') || Travis.app.get('currentUser.login');\n return this.owners.toArray().filter(function(owner) {\n if (owner.get('login') === login) {\n return owner;\n }\n })[0];\n }).property('owners.length', 'params.login'),\n activate: function(action, params) {\n this.setParams(params || this.get('params'));\n return this[\"view\" + ($.camelize(action))]();\n },\n viewHooks: function() {\n this.connectTab('hooks');\n return this.set('hooks', Travis.Hook.find({\n login: this.get('params.login') || Travis.app.get('currentUser.login')\n }));\n },\n viewUser: function() {\n return this.connectTab('user');\n },\n connectTab: function(tab) {\n var viewClass;\n viewClass = Travis[\"\" + ($.camelize(tab)) + \"View\"];\n this.set('tab', tab);\n return this.connectOutlet({\n outletName: 'pane',\n controller: this,\n viewClass: viewClass\n });\n },\n setParams: function(params) {\n var key, value, _results;\n this.set('params', {});\n _results = [];\n for (key in params) {\n value = params[key];\n _results.push(this.set(\"params.\" + key, params[key]));\n }\n return _results;\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/profile");minispade.register('controllers/repositories', "(function() {(function() {\n\n Travis.RepositoriesController = Ember.ArrayController.extend({\n defaultTab: 'recent',\n sortProperties: ['sortOrder'],\n init: function() {\n this.activate(this.defaultTab);\n return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n },\n updateTimes: function() {\n var content;\n if (content = this.get('content')) {\n content.forEach(function(r) {\n return r.updateTimes();\n });\n }\n return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n },\n activate: function(tab, params) {\n this.set('tab', tab);\n return this[\"view\" + ($.camelize(tab))](params);\n },\n viewRecent: function() {\n return this.set('content', Travis.Repository.find());\n },\n viewOwned: function() {\n return this.set('content', Travis.Repository.ownedBy(Travis.get('currentUser.login')));\n },\n viewSearch: function(params) {\n return this.set('content', Travis.Repository.search(params.search));\n },\n searchObserver: (function() {\n var search, tab;\n search = this.get('search');\n tab = search ? 'search' : 'recent';\n return this.activate(tab, {\n search: search\n });\n }).observes('search')\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/repositories");minispade.register('controllers/repository', "(function() {(function() {\n\n Travis.RepositoryController = Travis.Controller.extend({\n bindings: [],\n params: {},\n init: function() {\n this._super('builds', 'build', 'job');\n return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n },\n updateTimes: function() {\n var build, builds;\n if (builds = this.get('builds')) {\n builds.forEach(function(b) {\n return b.updateTimes();\n });\n }\n if (build = this.get('build')) {\n build.updateTimes();\n build.get('jobs').forEach(function(j) {\n return j.updateTimes();\n });\n }\n return Ember.run.later(this.updateTimes.bind(this), Travis.INTERVALS.updateTimes);\n },\n activate: function(action, params) {\n this._unbind();\n this.setParams(params);\n return this[\"view\" + ($.camelize(action))]();\n },\n viewIndex: function() {\n this._bind('repository', 'controllers.repositoriesController.firstObject');\n this._bind('build', 'repository.lastBuild');\n return this.connectTab('current');\n },\n viewCurrent: function() {\n this.connectTab('current');\n this._bind('repository', 'repositoriesByParams.firstObject');\n return this._bind('build', 'repository.lastBuild');\n },\n viewBuilds: function() {\n this.connectTab('builds');\n this._bind('repository', 'repositoriesByParams.firstObject');\n return this._bind('builds', 'repository.builds');\n },\n viewPullRequests: function() {\n this.connectTab('pull_requests');\n this._bind('repository', 'repositoriesByParams.firstObject');\n return this._bind('builds', 'repository.pullRequests');\n },\n viewBranches: function() {\n this.connectTab('branches');\n this._bind('repository', 'repositoriesByParams.firstObject');\n return this._bind('builds', 'repository.branches');\n },\n viewBuild: function() {\n this._bind('repository', 'repositoriesByParams.firstObject');\n this._bind('build', 'buildById');\n return this.connectTab('build');\n },\n viewJob: function() {\n this._bind('repository', 'repositoriesByParams.firstObject');\n this._bind('build', 'job.build');\n this._bind('job', 'jobById');\n return this.connectTab('job');\n },\n repositoriesByParams: (function() {\n return Travis.Repository.bySlug(\"\" + (this.get('params.owner')) + \"/\" + (this.get('params.name')));\n }).property('params.owner', 'params.name'),\n buildById: (function() {\n var id;\n if (id = this.get('params.id')) {\n return Travis.Build.find(id);\n }\n }).property('params.id'),\n jobById: (function() {\n var id;\n if (id = this.get('params.id')) {\n return Travis.Job.find(id);\n }\n }).property('params.id'),\n connectTab: function(tab) {\n var name, viewClass;\n name = tab === 'current' ? 'build' : tab;\n viewClass = name === 'builds' || name === 'branches' || name === 'pull_requests' ? Travis.BuildsView : Travis[\"\" + ($.camelize(name)) + \"View\"];\n this.set('tab', tab);\n return this.connectOutlet({\n outletName: 'pane',\n controller: this,\n viewClass: viewClass\n });\n },\n setParams: function(params) {\n var key, value, _results;\n _results = [];\n for (key in params) {\n value = params[key];\n _results.push(this.set(\"params.\" + key, params[key]));\n }\n return _results;\n },\n _bind: function(to, from) {\n return this.bindings.push(Ember.oneWay(this, to, from));\n },\n _unbind: function() {\n var binding, _i, _len, _ref;\n _ref = this.bindings;\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n binding = _ref[_i];\n binding.disconnect(this);\n }\n return this.bindings.length = 0;\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/repository");minispade.register('controllers/sidebar', "(function() {(function() {\n\n Travis.reopen({\n SidebarController: Em.ArrayController.extend({\n init: function() {\n this.tickables = [];\n Travis.Ticker.create({\n target: this,\n interval: Travis.INTERVALS.sponsors\n });\n this.connectWorkers(Travis.Worker.find());\n this.connectQueues(Travis.QUEUES);\n this.connectSponsors('decks', Travis.Sponsor.decks(), 1);\n return this.connectSponsors('links', Travis.Sponsor.links(), 6);\n },\n connectSponsors: function(name, sponsors, perPage) {\n var controller, viewClass;\n controller = Travis.SponsorsController.create({\n perPage: perPage,\n content: sponsors\n });\n viewClass = Em.View.extend({\n templateName: \"sponsors/\" + name\n });\n this.connectOutlet({\n outletName: name,\n controller: controller,\n viewClass: viewClass\n });\n return this.tickables.push(controller);\n },\n connectWorkers: function(workers) {\n var controller, viewClass;\n controller = Travis.WorkersController.create({\n content: workers\n });\n viewClass = Em.View.extend({\n templateName: 'workers/list'\n });\n return this.connectOutlet({\n outletName: 'workers',\n controller: controller,\n viewClass: viewClass\n });\n },\n connectQueues: function(queues) {\n var controller, queue, viewClass;\n queues = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = queues.length; _i < _len; _i++) {\n queue = queues[_i];\n _results.push(Em.ArrayController.create({\n content: Travis.Job.queued(queue.name),\n id: \"queue_\" + queue.name,\n name: queue.display\n }));\n }\n return _results;\n })();\n controller = Travis.QueuesController.create({\n content: queues\n });\n viewClass = Em.View.extend({\n templateName: 'queues/list'\n });\n return this.connectOutlet({\n outletName: 'queues',\n controller: controller,\n viewClass: viewClass\n });\n },\n tick: function() {\n var tickable, _i, _len, _ref, _results;\n _ref = this.tickables;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n tickable = _ref[_i];\n _results.push(tickable.tick());\n }\n return _results;\n }\n }),\n QueuesController: Em.ArrayController.extend(),\n WorkersController: Em.ArrayController.extend({\n groups: (function() {\n var groups, host, worker, _i, _len, _ref;\n groups = {};\n _ref = this.get('content').toArray();\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n worker = _ref[_i];\n host = worker.get('host');\n if (!groups[host]) {\n groups[host] = Em.ArrayProxy.create({\n content: []\n });\n }\n groups[host].pushObject(worker);\n }\n return $.values(groups);\n }).property('content.length')\n }),\n SponsorsController: Em.ArrayController.extend({\n page: 0,\n arrangedContent: (function() {\n return this.get('shuffled').slice(this.start(), this.end());\n }).property('shuffled.length', 'page'),\n shuffled: (function() {\n var content;\n if (content = this.get('content')) {\n return $.shuffle(content);\n } else {\n return [];\n }\n }).property('content.length'),\n tick: function() {\n return this.set('page', this.isLast() ? 0 : this.get('page') + 1);\n },\n pages: (function() {\n var length;\n length = this.get('content.length');\n if (length) {\n return parseInt(length / this.get('perPage') + 1);\n } else {\n return 1;\n }\n }).property('length'),\n isLast: function() {\n return this.get('page') === this.get('pages') - 1;\n },\n start: function() {\n return this.get('page') * this.get('perPage');\n },\n end: function() {\n return this.start() + this.get('perPage');\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/sidebar");minispade.register('controllers/stats', "(function() {(function() {\n\n Travis.StatsController = Travis.Controller.extend({\n name: 'stats',\n init: function() {\n this._super('top');\n this.connectTop();\n return this.connectOutlet({\n outletName: 'main',\n controller: this,\n viewClass: Travis.StatsView\n });\n },\n activate: function(action, params) {}\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=controllers/stats");minispade.register('helpers', "(function() {(function() {\nminispade.require('helpers/handlebars');\nminispade.require('helpers/helpers');\nminispade.require('helpers/urls');\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers");minispade.register('helpers/handlebars', "(function() {(function() {\n var safe;\nminispade.require('ext/ember/bound_helper');\n\n safe = function(string) {\n return new Handlebars.SafeString(string);\n };\n\n Handlebars.registerHelper('tipsy', function(text, tip) {\n return safe('<span class=\"tool-tip\" original-title=\"' + tip + '\">' + text + '</span>');\n });\n\n Handlebars.registerHelper('t', function(key) {\n return safe(I18n.t(key));\n });\n\n Ember.registerBoundHelper('formatTime', function(value, options) {\n return safe(Travis.Helpers.timeAgoInWords(value) || '-');\n });\n\n Ember.registerBoundHelper('formatDuration', function(duration, options) {\n return safe(Travis.Helpers.timeInWords(duration));\n });\n\n Ember.registerBoundHelper('formatCommit', function(commit, options) {\n if (commit) {\n return safe(Travis.Helpers.formatCommit(commit.get('sha'), commit.get('branch')));\n }\n });\n\n Ember.registerBoundHelper('formatSha', function(sha, options) {\n return safe(Travis.Helpers.formatSha(sha));\n });\n\n Ember.registerBoundHelper('pathFrom', function(url, options) {\n return safe(Travis.Helpers.pathFrom(url));\n });\n\n Ember.registerBoundHelper('formatMessage', function(message, options) {\n return safe(Travis.Helpers.formatMessage(message, options));\n });\n\n Ember.registerBoundHelper('formatConfig', function(config, options) {\n return safe(Travis.Helpers.formatConfig(config));\n });\n\n Ember.registerBoundHelper('formatLog', function(log, options) {\n return Travis.Helpers.formatLog(log) || '';\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/handlebars");minispade.register('helpers/helpers', "(function() {(function() {\nminispade.require('travis/log');\nminispade.require('emoij');\n\n this.Travis.Helpers = {\n compact: function(object) {\n var key, result, value, _ref;\n result = {};\n _ref = object || {};\n for (key in _ref) {\n value = _ref[key];\n if (!$.isEmpty(value)) {\n result[key] = value;\n }\n }\n return result;\n },\n safe: function(string) {\n return new Handlebars.SafeString(string);\n },\n colorForResult: function(result) {\n if (result === 0) {\n return 'green';\n } else {\n if (result === 1) {\n return 'red';\n } else {\n return null;\n }\n }\n },\n formatCommit: function(sha, branch) {\n return Travis.Helpers.formatSha(sha) + (branch ? \" (\" + branch + \")\" : '');\n },\n formatSha: function(sha) {\n return (sha || '').substr(0, 7);\n },\n formatConfig: function(config) {\n var values;\n config = $.only(config, 'rvm', 'gemfile', 'env', 'otp_release', 'php', 'node_js', 'scala', 'jdk', 'python', 'perl');\n values = $.map(config, function(value, key) {\n value = (value && value.join ? value.join(', ') : value) || '';\n return '%@: %@'.fmt($.camelize(key), value);\n });\n if (values.length === 0) {\n return '-';\n } else {\n return values.join(', ');\n }\n },\n formatMessage: function(message, options) {\n message = message || '';\n if (options.short) {\n message = message.split(/\\n/)[0];\n }\n return this._emojize(this._escape(message)).replace(/\\n/g, '<br/>');\n },\n formatLog: function(log) {\n return Travis.Log.filter(log);\n },\n pathFrom: function(url) {\n return (url || '').split('/').pop();\n },\n timeAgoInWords: function(date) {\n return $.timeago.distanceInWords(date);\n },\n durationFrom: function(started, finished) {\n started = started && this._toUtc(new Date(this._normalizeDateString(started)));\n finished = finished ? this._toUtc(new Date(this._normalizeDateString(finished))) : this._nowUtc();\n if (started && finished) {\n return Math.round((finished - started) / 1000);\n } else {\n return 0;\n }\n },\n timeInWords: function(duration) {\n var days, hours, minutes, result, seconds;\n days = Math.floor(duration / 86400);\n hours = Math.floor(duration % 86400 / 3600);\n minutes = Math.floor(duration % 3600 / 60);\n seconds = duration % 60;\n if (days > 0) {\n return 'more than 24 hrs';\n } else {\n result = [];\n if (hours === 1) {\n result.push(hours + ' hr');\n }\n if (hours > 1) {\n result.push(hours + ' hrs');\n }\n if (minutes > 0) {\n result.push(minutes + ' min');\n }\n if (seconds > 0) {\n result.push(seconds + ' sec');\n }\n if (result.length > 0) {\n return result.join(' ');\n } else {\n return '-';\n }\n }\n },\n _normalizeDateString: function(string) {\n if (window.JHW) {\n string = string.replace('T', ' ').replace(/-/g, '/');\n string = string.replace('Z', '').replace(/\\..*$/, '');\n }\n return string;\n },\n _nowUtc: function() {\n return this._toUtc(new Date());\n },\n _toUtc: function(date) {\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds());\n },\n _emojize: function(text) {\n var emojis;\n emojis = text.match(/:\\S+?:/g);\n if (emojis !== null) {\n $.each(emojis.uniq(), function(ix, emoji) {\n var image, strippedEmoji;\n strippedEmoji = emoji.substring(1, emoji.length - 1);\n if (EmojiDictionary.indexOf(strippedEmoji) !== -1) {\n image = '<img class=\\'emoji\\' title=\\'' + emoji + '\\' alt=\\'' + emoji + '\\' src=\\'' + '/images/emoji/' + strippedEmoji + '.png\\'/>';\n return text = text.replace(new RegExp(emoji, 'g'), image);\n }\n });\n }\n return text;\n },\n _escape: function(text) {\n return text.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\n }\n };\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/helpers");minispade.register('helpers/urls', "(function() {(function() {\n\n this.Travis.Urls = {\n repository: function(slug) {\n return \"/\" + slug;\n },\n builds: function(slug) {\n return \"/\" + slug + \"/builds\";\n },\n pullRequests: function(slug) {\n return \"/\" + slug + \"/pull_requests\";\n },\n branches: function(slug) {\n return \"/\" + slug + \"/branches\";\n },\n build: function(slug, id) {\n return \"/\" + slug + \"/builds/\" + id;\n },\n job: function(slug, id) {\n return \"/\" + slug + \"/jobs/\" + id;\n },\n githubCommit: function(slug, sha) {\n return \"http://github.com/\" + slug + \"/commit/\" + sha;\n },\n githubRepository: function(slug) {\n return \"http://github.com/\" + slug;\n },\n githubWatchers: function(slug) {\n return \"http://github.com/\" + slug + \"/watchers\";\n },\n githubNetwork: function(slug) {\n return \"http://github.com/\" + slug + \"/network\";\n },\n githubAdmin: function(slug) {\n return \"http://github.com/\" + slug + \"/admin/hooks#travis_minibucket\";\n },\n statusImage: function(slug, branch) {\n return (\"https://secure.travis-ci.org/\" + slug + \".png\") + (branch ? \"?branch=\" + branch : '');\n },\n email: function(email) {\n return \"mailto:\" + email;\n },\n owner: function(login) {\n return \"/profile/\" + login;\n }\n };\n\n}).call(this);\n\n})();\n//@ sourceURL=helpers/urls");minispade.register('models', "(function() {(function() {\nminispade.require('models/extensions');\nminispade.require('models/artifact');\nminispade.require('models/branch');\nminispade.require('models/build');\nminispade.require('models/commit');\nminispade.require('models/hook');\nminispade.require('models/job');\nminispade.require('models/owner');\nminispade.require('models/repository');\nminispade.require('models/sponsor');\nminispade.require('models/user');\nminispade.require('models/worker');\n\n}).call(this);\n\n})();\n//@ sourceURL=models");minispade.register('models/artifact', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Artifact = Travis.Model.extend({\n body: DS.attr('string'),\n append: function(body) {\n return this.set('body', this.get('body') + body);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/artifact");minispade.register('models/branch', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Branch = Travis.Model.extend(Travis.Helpers, {\n repositoryId: DS.attr('number'),\n commitId: DS.attr('number'),\n number: DS.attr('number'),\n branch: DS.attr('string'),\n message: DS.attr('string'),\n result: DS.attr('number'),\n duration: DS.attr('number'),\n started_at: DS.attr('string'),\n finished_at: DS.attr('string'),\n commit: DS.belongsTo('Travis.Commit'),\n repository: (function() {\n if (this.get('repositoryId')) {\n return Travis.Repository.find(this.get('repositoryId'));\n }\n }).property('repositoryId'),\n tick: function() {\n this.notifyPropertyChange('started_at');\n return this.notifyPropertyChange('finished_at');\n }\n });\n\n this.Travis.Branch.reopenClass({\n byRepositoryId: function(id) {\n return this.find({\n repository_id: id\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/branch");minispade.register('models/build', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Build = Travis.Model.extend(Travis.DurationCalculations, {\n eventType: DS.attr('string'),\n repositoryId: DS.attr('number'),\n commitId: DS.attr('number'),\n state: DS.attr('string'),\n number: DS.attr('number'),\n branch: DS.attr('string'),\n message: DS.attr('string'),\n result: DS.attr('number'),\n _duration: DS.attr('number', {\n key: 'duration'\n }),\n startedAt: DS.attr('string', {\n key: 'started_at'\n }),\n finishedAt: DS.attr('string', {\n key: 'finished_at'\n }),\n repository: DS.belongsTo('Travis.Repository'),\n commit: DS.belongsTo('Travis.Commit'),\n jobs: DS.hasMany('Travis.Job', {\n key: 'job_ids'\n }),\n config: (function() {\n return Travis.Helpers.compact(this.get('data.config'));\n }).property('data.config'),\n isMatrix: (function() {\n return this.get('data.job_ids.length') > 1;\n }).property('data.job_ids.length'),\n requiredJobs: (function() {\n return this.get('jobs').filter(function(data) {\n return !data.get('allowFailure');\n });\n }).property('jobs.@each.allowFailure'),\n allowedFailureJobs: (function() {\n return this.get('jobs').filter(function(data) {\n return data.get('allowFailure');\n });\n }).property('jobs.@each.allowFailure'),\n configKeys: (function() {\n var config, headers, key, keys;\n if (!(config = this.get('config'))) {\n return [];\n }\n keys = $.intersect($.keys(config), Travis.CONFIG_KEYS);\n headers = (function() {\n var _i, _len, _ref, _results;\n _ref = ['build.job', 'build.duration', 'build.finished_at'];\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n key = _ref[_i];\n _results.push(I18n.t(key));\n }\n return _results;\n })();\n return $.map(headers.concat(keys), function(key) {\n return $.camelize(key);\n });\n }).property('config')\n });\n\n this.Travis.Build.reopenClass({\n byRepositoryId: function(id, parameters) {\n return this.find($.extend(parameters || {}, {\n repository_id: id,\n orderBy: 'number DESC'\n }));\n },\n olderThanNumber: function(id, build_number) {\n return this.find({\n url: \"/builds\",\n repository_id: id,\n after: build_number\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/build");minispade.register('models/commit', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Commit = Travis.Model.extend({\n buildId: DS.attr('number'),\n sha: DS.attr('string'),\n branch: DS.attr('string'),\n message: DS.attr('string'),\n compareUrl: DS.attr('string'),\n authorName: DS.attr('string'),\n authorEmail: DS.attr('string'),\n committerName: DS.attr('string'),\n committerEmail: DS.attr('string'),\n build: DS.belongsTo('Travis.Build', {\n key: 'buildId'\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/commit");minispade.register('models/extensions', "(function() {(function() {\n\n Travis.DurationCalculations = Ember.Mixin.create({\n duration: (function() {\n var duration;\n if (duration = this.get('_duration')) {\n return duration;\n } else {\n return Travis.Helpers.durationFrom(this.get('startedAt'), this.get('finishedAt'));\n }\n }).property('_duration', 'finishedAt', 'startedAt'),\n updateTimes: function() {\n this.notifyPropertyChange('_duration');\n return this.notifyPropertyChange('finished_at');\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/extensions");minispade.register('models/hook', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Hook = Travis.Model.extend({\n slug: DS.attr('string'),\n description: DS.attr('string'),\n active: DS.attr('boolean'),\n owner: (function() {\n return this.get('slug').split('/')[0];\n }).property('slug'),\n name: (function() {\n if (this.get('isLoaded')) {\n return this.get('slug').split('/')[1];\n }\n }).property('slug'),\n urlGithub: (function() {\n return \"http://github.com/\" + (this.get('slug'));\n }).property(),\n urlGithubAdmin: (function() {\n return \"http://github.com/\" + (this.get('slug')) + \"/admin/hooks#travis_minibucket\";\n }).property(),\n toggle: function() {\n this.set('active', !this.get('active'));\n return Travis.app.store.commit();\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/hook");minispade.register('models/job', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Job = Travis.Model.extend(Travis.DurationCalculations, {\n repositoryId: DS.attr('number'),\n buildId: DS.attr('number'),\n commitId: DS.attr('number'),\n logId: DS.attr('number'),\n queue: DS.attr('string'),\n state: DS.attr('string'),\n number: DS.attr('string'),\n result: DS.attr('number'),\n _duration: DS.attr('number', {\n key: 'duration'\n }),\n startedAt: DS.attr('string'),\n finishedAt: DS.attr('string'),\n allowFailure: DS.attr('boolean', {\n key: 'allow_failure'\n }),\n repository: DS.belongsTo('Travis.Repository', {\n key: 'repository_id'\n }),\n build: DS.belongsTo('Travis.Build', {\n key: 'build_id'\n }),\n commit: DS.belongsTo('Travis.Commit', {\n key: 'commit_id'\n }),\n log: DS.belongsTo('Travis.Artifact', {\n key: 'log_id'\n }),\n config: (function() {\n return Travis.Helpers.compact(this.get('data.config'));\n }).property('data.config'),\n sponsor: (function() {\n return this.get('data.sponsor');\n }).property('data.sponsor'),\n configValues: (function() {\n var config;\n if (config = this.get('config')) {\n return $.values($.only.apply(config, Travis.CONFIG_KEYS));\n } else {\n return [];\n }\n }).property('config'),\n appendLog: function(text) {\n var log;\n if (log = this.get('log')) {\n return log.append(text);\n }\n },\n subscribe: function() {\n var id;\n if (id = this.get('id')) {\n return Travis.app.pusher.subscribe(\"job-\" + id);\n }\n },\n onStateChange: (function() {\n if (this.get('state') === 'finished') {\n return Travis.app.pusher.unsubscribe(\"job-\" + (this.get('id')));\n }\n }).observes('state')\n });\n\n this.Travis.Job.reopenClass({\n queued: function(queue) {\n this.find();\n return Travis.app.store.filter(this, function(job) {\n return job.get('queue') === queue;\n });\n },\n findMany: function(ids) {\n return Travis.app.store.findMany(this, ids);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/job");minispade.register('models/owner', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Owner = Travis.Model.extend({\n primaryKey: 'login',\n login: DS.attr('string'),\n name: DS.attr('string'),\n type: DS.attr('string'),\n reposCount: DS.attr('number'),\n urlGithub: (function() {\n return \"http://github.com/\" + (this.get('login'));\n }).property()\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/owner");minispade.register('models/repository', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Repository = Travis.Model.extend({\n slug: DS.attr('string'),\n description: DS.attr('string'),\n lastBuildId: DS.attr('number'),\n lastBuildNumber: DS.attr('string'),\n lastBuildResult: DS.attr('number'),\n lastBuildStartedAt: DS.attr('string'),\n lastBuildFinishedAt: DS.attr('string'),\n lastBuild: DS.belongsTo('Travis.Build'),\n builds: (function() {\n var id;\n id = this.get('id');\n Travis.Build.byRepositoryId(id, {\n event_type: 'push'\n });\n return Travis.Build.filter(function(data) {\n return parseInt(data.get('repository_id')) === id && !data.get('pull_request');\n });\n }).property(),\n pullRequests: (function() {\n var id;\n id = this.get('id');\n Travis.Build.byRepositoryId(id, {\n event_type: 'pull_request'\n });\n return Travis.Build.filter(function(data) {\n return parseInt(data.get('repository_id')) === id && data.get('pull_request');\n });\n }).property(),\n branches: (function() {\n return Travis.Branch.byRepositoryId(this.get('id'));\n }).property(),\n owner: (function() {\n return (this.get('slug') || '').split('/')[0];\n }).property('slug'),\n name: (function() {\n return (this.get('slug') || '').split('/')[1];\n }).property('slug'),\n lastBuildDuration: (function() {\n var duration;\n duration = this.get('data.last_build_duration');\n if (!duration) {\n duration = Travis.Helpers.durationFrom(this.get('lastBuildStartedAt'), this.get('lastBuildFinishedAt'));\n }\n return duration;\n }).property('data.last_build_duration', 'lastBuildStartedAt', 'lastBuildFinishedAt'),\n sortOrder: (function() {\n var lastBuildFinishedAt;\n if (lastBuildFinishedAt = this.get('lastBuildFinishedAt')) {\n return -new Date(lastBuildFinishedAt).getTime();\n } else {\n return -new Date('9999').getTime() - parseInt(this.get('id'));\n }\n }).property('lastBuildFinishedAt'),\n stats: (function() {\n var _this = this;\n return this.get('_stats') || $.get(\"https://api.github.com/repos/\" + (this.get('slug')), function(data) {\n _this.set('_stats', data);\n return _this.notifyPropertyChange('stats');\n }) && {};\n }).property(),\n select: function() {\n return Travis.Repository.select(self.get('id'));\n },\n updateTimes: function() {\n return this.notifyPropertyChange('lastBuildDuration');\n }\n });\n\n this.Travis.Repository.reopenClass({\n recent: function() {\n return this.find();\n },\n ownedBy: function(login) {\n return this.find({\n owner: login,\n orderBy: 'name'\n });\n },\n search: function(query) {\n return this.find({\n search: query,\n orderBy: 'name'\n });\n },\n bySlug: function(slug) {\n return this.find({\n slug: slug\n });\n },\n select: function(id) {\n return this.find().forEach(function(repository) {\n return repository.set('selected', repository.get('id') === id);\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/repository");minispade.register('models/sponsor', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Sponsor = Travis.Model.extend({\n type: DS.attr('string'),\n url: DS.attr('string'),\n link: DS.attr('string'),\n image: (function() {\n return \"/images/sponsors/\" + (this.get('data.image'));\n }).property('data.image')\n });\n\n Travis.Sponsor.reopenClass({\n decks: function() {\n return this.platinum().concat(this.gold());\n },\n platinum: function() {\n var platinum, sponsor, _i, _len, _results;\n platinum = this.byType('platinum').toArray();\n _results = [];\n for (_i = 0, _len = platinum.length; _i < _len; _i++) {\n sponsor = platinum[_i];\n _results.push([sponsor]);\n }\n return _results;\n },\n gold: function() {\n var gold, _results;\n gold = this.byType('gold').toArray();\n _results = [];\n while (gold.length > 0) {\n _results.push(gold.splice(0, 2));\n }\n return _results;\n },\n links: function() {\n return this.byType('silver');\n },\n byType: function() {\n var types;\n types = Array.prototype.slice.apply(arguments);\n return Travis.Sponsor.filter(function(sponsor) {\n return types.indexOf(sponsor.get('type')) !== -1;\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/sponsor");minispade.register('models/user', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.User = Travis.Model.extend({\n name: DS.attr('string'),\n email: DS.attr('string'),\n login: DS.attr('string'),\n token: DS.attr('string'),\n locale: DS.attr('string'),\n gravatar: DS.attr('string'),\n urlGithub: (function() {\n return \"http://github.com/\" + (this.get('login'));\n }).property(),\n updateLocale: function(locale) {\n this.set('locale', locale);\n return Travis.app.store.commit();\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/user");minispade.register('models/worker', "(function() {(function() {\nminispade.require('travis/model');\n\n this.Travis.Worker = Travis.Model.extend({\n state: DS.attr('string'),\n name: DS.attr('string'),\n host: DS.attr('string'),\n lastSeenAt: DS.attr('string'),\n payload: (function() {\n return this.get('data.payload');\n }).property('data.payload'),\n number: (function() {\n return this.get('name').match(/\\d+$/)[0];\n }).property('name'),\n display: (function() {\n var name, number, payload, repo, state;\n name = this.get('name');\n state = this.get('state');\n payload = this.get('payload');\n if (name) {\n name = name.replace('travis-', '');\n if (state === 'working' && payload !== void 0) {\n repo = payload.repository ? $.truncate(payload.repository.slug, 18) : void 0;\n number = payload.build && payload.build.number ? ' #' + payload.build.number : '';\n state = repo ? repo + number : state;\n }\n return name + ': ' + state;\n }\n }).property('state', 'name', 'payload'),\n urlJob: (function() {\n if (this.get('state') === 'working') {\n return \"/\" + (this.get('repository')) + \"/jobs/\" + (this.get('job_id'));\n }\n }).property('repository', 'job_id', 'state'),\n repository: (function() {\n return this.get('payload.repository.slug');\n }).property('payload.repository.slug'),\n job_id: (function() {\n return this.get('payload.job.id');\n }).property('payload.job.id')\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=models/worker");minispade.register('pusher', "(function() {(function() {\n\n Travis.Pusher = function() {\n this.active_channels = [];\n if (Travis.Pusher.KEY) {\n this.pusher = new Pusher(Travis.Pusher.KEY);\n }\n return this;\n };\n\n $.extend(Travis.Pusher, {\n CHANNELS: ['common'],\n CHANNEL_PREFIX: '',\n KEY: ''\n });\n\n $.extend(Travis.Pusher.prototype, {\n subscribe: function(channel) {\n var _this = this;\n if (this.pusher && this.active_channels.indexOf(channel) === -1) {\n this.active_channels.push(channel);\n return this.pusher.subscribe(this.prefix(channel)).bind_all(function(event, data) {\n return _this.receive(event, data);\n });\n }\n },\n unsubscribe: function(channel) {\n var ix;\n ix = this.active_channels.indexOf(channel);\n if (this.pusher && ix === -1) {\n this.active_channels.splice(ix, 1);\n return this.pusher.unsubscribe(this.prefix(channel));\n }\n },\n prefix: function(channel) {\n return \"\" + Travis.Pusher.CHANNEL_PREFIX + channel;\n },\n receive: function(event, data) {\n if (data.id) {\n data = this.normalize(event, data);\n }\n return Travis.app.store.receive(event, data);\n },\n normalize: function(event, data) {\n switch (event) {\n case 'build:started':\n case 'build:finished':\n return data;\n case 'job:created':\n case 'job:started':\n case 'job:finished':\n case 'job:log':\n if (data.queue) {\n data.queue = data.queue.replace('builds.', '');\n }\n return {\n job: data\n };\n case 'worker:added':\n case 'worker:updated':\n case 'worker:removed':\n return {\n worker: data\n };\n }\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=pusher");minispade.register('routes', "(function() {(function() {\n\n Travis.Routes = function() {\n var route, target, _ref;\n if (!Travis.Routes.initialized) {\n Em.routes.set('usesHistory', true);\n Em.routes.set('wantsHistory', true);\n Em.routes.set('baseURI', this.base_uri);\n _ref = Travis.ROUTES;\n for (route in _ref) {\n target = _ref[route];\n this.add(route, target[0], target[1]);\n }\n return Travis.Routes.initialized = true;\n }\n };\n\n $.extend(Travis.Routes.prototype, {\n base_uri: \"\" + document.location.protocol + \"//\" + document.location.host,\n add: function(route, layout, action) {\n var _this = this;\n return Em.routes.add(route, function(params) {\n return _this.action(layout, action, params);\n });\n },\n route: function(event) {\n return Em.routes.set('location', event.target.href.replace(\"\" + this.base_uri + \"/\", ''));\n },\n action: function(name, action, params) {\n if (this.before(name, action, params)) {\n return Travis.app.render(name, action, params);\n }\n },\n before: function(name, action, params) {\n if (this.requiresAuth(name, action, params)) {\n return true;\n } else {\n return this.requireAuth(name, action, params);\n }\n },\n signedIn: function() {\n return !!Travis.app.get('currentUser');\n },\n requiresAuth: function(name, action, params) {\n return name !== 'profile' || this.signedIn();\n },\n requireAuth: function(name, action, params) {\n Travis.app.set('returnTo', [name, action, params]);\n Travis.app.render('auth', 'show');\n return false;\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=routes");minispade.register('store', "(function() {(function() {\n var DATA_PROXY,\n __indexOf = [].indexOf || function(item) { for (var i = 0, l = this.length; i < l; i++) { if (i in this && this[i] === item) return i; } return -1; };\nminispade.require('store/rest_adapter');\n\n DATA_PROXY = {\n get: function(name) {\n return this.savedData[name];\n }\n };\n\n Travis.Store = DS.Store.extend({\n revision: 4,\n adapter: Travis.RestAdapter.create(),\n merge: function(type, id, hash) {\n var clientId, data, dataCache, primaryKey, record, recordCache, typeMap;\n if (hash === void 0) {\n hash = id;\n primaryKey = type.proto().primaryKey;\n Ember.assert(\"A data hash was loaded for a record of type \" + type.toString() + \" but no primary key '\" + primaryKey + \"' was provided.\", hash[primaryKey]);\n id = hash[primaryKey];\n }\n typeMap = this.typeMapFor(type);\n dataCache = typeMap.cidToHash;\n clientId = typeMap.idToCid[id];\n recordCache = this.get('recordCache');\n if (clientId !== void 0) {\n if (data = dataCache[clientId]) {\n $.extend(data, hash);\n } else {\n dataCache[clientId] = hash;\n }\n if (record = recordCache[clientId]) {\n record.send('didChangeData');\n }\n } else {\n clientId = this.find(type, id).get('clientId');\n }\n if (clientId) {\n DATA_PROXY.savedData = hash;\n this.updateRecordArrays(type, clientId, DATA_PROXY);\n return {\n id: id,\n clientId: clientId\n };\n }\n },\n receive: function(event, data) {\n var job, mappings, name, type, _ref;\n _ref = event.split(':'), name = _ref[0], type = _ref[1];\n mappings = this.adapter.get('mappings');\n type = mappings[name];\n if (event === 'job:log') {\n if (job = this.find(Travis.Job, data['job']['id'])) {\n return job.appendLog(data['job']['_log']);\n }\n } else if (data[type.singularName()]) {\n return this._loadOne(this, type, data);\n } else if (data[type.pluralName()]) {\n return this._loadMany(this, type, data);\n } else {\n if (!type) {\n throw \"can't load data for \" + name;\n }\n }\n },\n _loadOne: function(store, type, json) {\n var root;\n root = type.singularName();\n this.adapter.sideload(store, type, json, root);\n this.merge(type, json[root]);\n return this._updateAssociations(type, root, json[root]);\n },\n _loadMany: function(store, type, json) {\n var root;\n console.log('loadMany');\n root = type.pluralName();\n this.adapter.sideload(store, type, json, root);\n return this.loadMany(type, json[root]);\n },\n _updateAssociations: function(type, name, data) {\n var _this = this;\n return Em.get(type, 'associationsByName').forEach(function(key, meta) {\n var clientId, dataProxy, id, ids, parent, _ref;\n if (meta.kind === 'belongsTo') {\n id = data[\"\" + key + \"_id\"];\n if (clientId = _this.typeMapFor(meta.type).idToCid[id]) {\n if (parent = _this.findByClientId(meta.type, clientId, id)) {\n dataProxy = parent.get('data');\n if (ids = dataProxy.get(\"\" + name + \"_ids\")) {\n if (_ref = data.id, __indexOf.call(ids, _ref) < 0) {\n ids.pushObject(data.id);\n }\n return parent.send('didChangeData');\n }\n }\n }\n }\n });\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=store");minispade.register('store/fixture_adapter', "(function() {(function() {\n\n this.Travis.FixtureAdapter = DS.Adapter.extend({\n find: function(store, type, id) {\n var fixtures;\n fixtures = type.FIXTURES;\n Ember.assert(\"Unable to find fixtures for model type \" + type.toString(), !!fixtures);\n if (fixtures.hasLoaded) {\n return;\n }\n return setTimeout((function() {\n store.loadMany(type, fixtures);\n return fixtures.hasLoaded = true;\n }), 300);\n },\n findMany: function() {\n return this.find.apply(this, arguments);\n },\n findAll: function(store, type) {\n var fixtures, ids;\n fixtures = type.FIXTURES;\n Ember.assert(\"Unable to find fixtures for model type \" + type.toString(), !!fixtures);\n ids = fixtures.map(function(item, index, self) {\n return item.id;\n });\n return store.loadMany(type, ids, fixtures);\n },\n findQuery: function(store, type, params, array) {\n var fixture, fixtures, hashes, key, matches, value;\n fixtures = type.FIXTURES;\n Ember.assert(\"Unable to find fixtures for model type \" + type.toString(), !!fixtures);\n hashes = (function() {\n var _i, _len, _results;\n _results = [];\n for (_i = 0, _len = fixtures.length; _i < _len; _i++) {\n fixture = fixtures[_i];\n matches = (function() {\n var _results1;\n _results1 = [];\n for (key in params) {\n value = params[key];\n _results1.push(key === 'orderBy' || fixture[key] === value);\n }\n return _results1;\n })();\n if (matches.reduce(function(a, b) {\n return a && b;\n })) {\n _results.push(fixture);\n } else {\n _results.push(null);\n }\n }\n return _results;\n })();\n return array.load(hashes.compact());\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=store/fixture_adapter");minispade.register('store/rest_adapter', "(function() {(function() {\nminispade.require('models');\n\n jQuery.support.cors = true;\n\n this.Travis.RestAdapter = DS.RESTAdapter.extend({\n DEFAULT_OPTIONS: {\n accepts: {\n json: 'application/vnd.travis-ci.2+json'\n }\n },\n mappings: {\n repositories: Travis.Repository,\n repository: Travis.Repository,\n builds: Travis.Build,\n build: Travis.Build,\n commits: Travis.Commit,\n commit: Travis.Commit,\n jobs: Travis.Job,\n job: Travis.Job,\n owner: Travis.Owner,\n owners: Travis.Owner,\n worker: Travis.Worker,\n workers: Travis.Worker\n },\n plurals: {\n repository: 'repositories',\n build: 'builds',\n branch: 'branches',\n job: 'jobs',\n worker: 'workers'\n },\n ajax: function(url, method, options) {\n var endpoint;\n endpoint = Travis.config.api_endpoint || '';\n return this._super(\"\" + endpoint + url, method, $.extend(options, this.DEFAULT_OPTIONS));\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=store/rest_adapter");minispade.register('views', "(function() {(function() {\nminispade.require('ext/ember/namespace');\n\n this.Travis.reopen({\n View: Em.View.extend({\n route: function(event) {\n return Travis.app.routes.route(event);\n }\n })\n });\n\n this.Travis.reopen({\n HomeLayout: Travis.View.extend({\n templateName: 'layouts/home'\n }),\n ProfileLayout: Travis.View.extend({\n templateName: 'layouts/profile'\n }),\n StatsLayout: Travis.View.extend({\n templateName: 'layouts/simple'\n }),\n AuthLayout: Travis.View.extend({\n templateName: 'layouts/simple'\n }),\n AuthView: Travis.View.extend({\n templateName: 'auth/show'\n })\n });\nminispade.require('views/build');\nminispade.require('views/job');\nminispade.require('views/repo');\nminispade.require('views/profile');\nminispade.require('views/sidebar');\nminispade.require('views/stats');\nminispade.require('views/top');\n\n}).call(this);\n\n})();\n//@ sourceURL=views");minispade.register('views/build', "(function() {(function() {\n\n this.Travis.reopen({\n BuildsView: Travis.View.extend({\n templateName: 'builds/list',\n buildsBinding: 'controller',\n showMore: function() {\n var id, number;\n id = this.get('controller.repository.id');\n number = this.get('controller.builds.lastObject.number');\n return Travis.Build.olderThanNumber(id, number);\n }\n }),\n BuildsItemView: Travis.View.extend({\n repositoryBinding: 'controller.repository',\n buildBinding: 'context',\n commitBinding: 'build.commit',\n color: (function() {\n return Travis.Helpers.colorForResult(this.get('build.result'));\n }).property('build.result'),\n urlBuild: (function() {\n return Travis.Urls.build(this.get('repository.slug'), this.get('build.id'));\n }).property('repository.slug', 'build.id'),\n urlGithubCommit: (function() {\n return Travis.Urls.githubCommit(this.get('repository.slug'), this.get('commit.sha'));\n }).property('repository.slug', 'commit.sha')\n }),\n BuildView: Travis.View.extend({\n templateName: 'builds/show',\n repositoryBinding: 'controller.repository',\n buildBinding: 'controller.build',\n commitBinding: 'build.commit',\n color: (function() {\n return Travis.Helpers.colorForResult(this.get('build.result'));\n }).property('build.result'),\n urlBuild: (function() {\n return Travis.Urls.build(this.get('repository.slug'), this.get('build.id'));\n }).property('repository.slug', 'build.id'),\n urlGithubCommit: (function() {\n return Travis.Urls.githubCommit(this.get('repository.slug'), this.get('commit.sha'));\n }).property('repository.slug', 'commit.sha'),\n urlAuthor: (function() {\n return Travis.Urls.email(this.get('commit.authorEmail'));\n }).property('commit.authorEmail'),\n urlCommitter: (function() {\n return Travis.Urls.email(this.get('commit.committerEmail'));\n }).property('commit.committerEmail')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/build");minispade.register('views/job', "(function() {(function() {\n\n this.Travis.reopen({\n JobsView: Travis.View.extend({\n templateName: 'jobs/list',\n buildBinding: 'controller.build',\n toggleHelp: function() {\n return $.facebox({\n div: '#allow_failure_help'\n });\n }\n }),\n JobsItemView: Travis.View.extend({\n tagName: 'tr',\n classNameBindings: ['color'],\n repositoryBinding: 'context.repository',\n jobBinding: 'context',\n color: (function() {\n return Travis.Helpers.colorForResult(this.get('job.result'));\n }).property('job.result'),\n urlJob: (function() {\n return Travis.Urls.job(this.get('repository.slug'), this.get('job.id'));\n }).property('repository.slug', 'job.id')\n }),\n JobView: Travis.View.extend({\n templateName: 'jobs/show',\n repositoryBinding: 'controller.repository',\n jobBinding: 'controller.job',\n commitBinding: 'job.commit',\n color: (function() {\n return Travis.Helpers.colorForResult(this.get('job.result'));\n }).property('job.result'),\n urlJob: (function() {\n return Travis.Urls.job(this.get('repository.slug'), this.get('job.id'));\n }).property('repository.slug', 'job.id'),\n urlGithubCommit: (function() {\n return Travis.Urls.githubCommit(this.get('repository.slug'), this.get('commit.sha'));\n }).property('repository.slug', 'commit.sha'),\n urlAuthor: (function() {\n return Travis.Urls.email(this.get('commit.authorEmail'));\n }).property('commit.authorEmail'),\n urlCommitter: (function() {\n return Travis.Urls.email(this.get('commit.committerEmail'));\n }).property('commit.committerEmail')\n }),\n LogView: Travis.View.extend({\n templateName: 'jobs/log',\n logBinding: 'job.log',\n click: function(event) {\n return $(event.target).closest('.fold').toggleClass('open');\n },\n jobBinding: 'context',\n logSubscriber: (function() {\n var job, state;\n job = this.get('job');\n state = this.get('job.state');\n if (job && state !== 'finished') {\n job.subscribe();\n }\n return null;\n }).property('job', 'job.state')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/job");minispade.register('views/left', "(function() {(function() {\n\n this.Travis.reopen({\n ReposView: Travis.View.extend({\n templateName: 'repos/list',\n tabBinding: 'controller.tab',\n classRecent: (function() {\n if (this.get('tab') === 'recent') {\n return 'active';\n }\n }).property('tab'),\n classOwned: (function() {\n var classes;\n classes = [];\n if (this.get('tab') === 'owned') {\n classes.push('active');\n }\n if (Em.get('Travis.currentUser')) {\n classes.push('display');\n }\n return classes.join(' ');\n }).property('tab', 'Travis.currentUser'),\n classSearch: (function() {\n if (this.get('tab') === 'search') {\n return 'active';\n }\n }).property('tab')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/left");minispade.register('views/profile', "(function() {(function() {\n\n this.Travis.reopen({\n OwnersView: Travis.View.extend({\n tabBinding: 'controller.tab',\n templateName: 'profile/owners',\n classAccounts: (function() {\n if (this.get('tab') === 'accounts') {\n return 'active';\n }\n }).property('tab')\n }),\n OwnersListView: Em.CollectionView.extend({\n elementId: 'owners',\n ownerBinding: 'content',\n tagName: 'ul',\n emptyView: Ember.View.extend({\n template: Ember.Handlebars.compile('<div class=\"loading\"><span>Loading</span></div>')\n }),\n itemViewClass: Travis.View.extend({\n ownerBinding: 'content',\n typeBinding: 'content.type',\n selectedBinding: 'owner.selected',\n classNames: ['owner'],\n classNameBindings: ['type', 'selected'],\n name: (function() {\n return this.get('content.name') || this.get('content.login');\n }).property('content.login', 'content.name'),\n urlOwner: (function() {\n return Travis.Urls.owner(this.get('owner.login'));\n }).property('owner.login')\n })\n }),\n ProfileView: Travis.View.extend({\n templateName: 'profile/show'\n }),\n ProfileTabsView: Travis.View.extend({\n templateName: 'profile/tabs',\n tabBinding: 'controller.tab',\n activate: function(event) {\n return this.get('controller').activate(event.target.name);\n },\n classHooks: (function() {\n if (this.get('tab') === 'hooks') {\n return 'active';\n }\n }).property('tab'),\n classUser: (function() {\n if (this.get('tab') === 'user') {\n return 'active';\n }\n }).property('tab'),\n displayUser: (function() {\n return this.get('controller.owner.login') === this.get('controller.user.login');\n }).property('controller.owner.login', 'controller.user.login')\n }),\n HooksView: Travis.View.extend({\n templateName: 'profile/tabs/hooks',\n urlGithubAdmin: (function() {\n return Travis.Urls.githubAdmin(this.get('hook.slug'));\n }).property('hook.slug')\n }),\n UserView: Travis.View.extend({\n templateName: 'profile/tabs/user',\n userBinding: 'controller.user',\n gravatarUrl: (function() {\n return \"http://www.gravatar.com/avatar/\" + (this.get('user.gravatar')) + \"?s=48&d=mm\";\n }).property('user.gravatar'),\n locales: (function() {\n return [\n {\n key: 'en',\n name: 'English'\n }, {\n key: 'ca',\n name: 'Catalan'\n }, {\n key: 'cs',\n name: '\u010ce\u0161tina'\n }, {\n key: 'es',\n name: 'Espa\u00f1ol'\n }, {\n key: 'fr',\n name: 'Fran\u00e7ais'\n }, {\n key: 'ja',\n name: '\u65e5\u672c\u8a9e'\n }, {\n key: 'nl',\n name: 'Nederlands'\n }, {\n key: 'nb',\n name: 'Norsk Bokm\u00e5l'\n }, {\n key: 'pl',\n name: 'Polski'\n }, {\n key: {\n 'pt-BR': {\n name: 'Portugu\u00eas brasileiro'\n }\n }\n }, {\n key: 'ru',\n name: '\u0420\u0443\u0441\u0441\u043a\u0438\u0439'\n }\n ];\n }).property(),\n saveLocale: function(event) {\n return this.get('user').updateLocale($('#locale').val());\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/profile");minispade.register('views/repo', "(function() {(function() {\nminispade.require('views/repo/list');\nminispade.require('views/repo/show');\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo");minispade.register('views/repo/list', "(function() {(function() {\n\n this.Travis.reopen({\n RepositoriesView: Travis.View.extend({\n templateName: 'repos/list'\n }),\n RepositoriesListView: Em.CollectionView.extend({\n elementId: 'repositories',\n repositoryBinding: 'content',\n tagName: 'ul',\n emptyView: Ember.View.extend({\n template: Ember.Handlebars.compile('<div class=\"loading\"><span>Loading</span></div>')\n }),\n itemViewClass: Travis.View.extend({\n repositoryBinding: 'content',\n classNames: ['repository'],\n classNameBindings: ['color', 'selected'],\n selectedBinding: 'repository.selected',\n color: (function() {\n return Travis.Helpers.colorForResult(this.get('repository.lastBuildResult'));\n }).property('repository.lastBuildResult'),\n urlRepository: (function() {\n return Travis.Urls.repository(this.get('repository.slug'));\n }).property('repository.slug'),\n urlLastBuild: (function() {\n return Travis.Urls.build(this.get('repository.slug'), this.get('repository.lastBuildId'));\n }).property('repository.slug', 'repository.lastBuildId')\n })\n }),\n ReposListTabsView: Travis.View.extend({\n templateName: 'repos/list/tabs',\n tabBinding: 'controller.tab',\n activate: function(event) {\n return this.get('controller').activate(event.target.name);\n },\n classRecent: (function() {\n if (this.get('tab') === 'recent') {\n return 'active';\n }\n }).property('tab'),\n classOwned: (function() {\n var classes;\n classes = [];\n if (this.get('tab') === 'owned') {\n classes.push('active');\n }\n if (Em.get('Travis.currentUser')) {\n classes.push('display');\n }\n return classes.join(' ');\n }).property('tab', 'Travis.currentUser'),\n classSearch: (function() {\n if (this.get('tab') === 'search') {\n return 'active';\n }\n }).property('tab')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo/list");minispade.register('views/repo/show', "(function() {(function() {\n\n this.Travis.reopen({\n RepositoryView: Travis.View.extend({\n templateName: 'repos/show',\n repositoryBinding: 'controller.repository',\n \"class\": (function() {\n if (!this.get('repository.isLoaded')) {\n return 'loading';\n }\n }).property('repository.isLoaded'),\n urlGithub: (function() {\n return Travis.Urls.githubRepository(this.get('repository.slug'));\n }).property('repository.slug'),\n urlGithubWatchers: (function() {\n return Travis.Urls.githubWatchers(this.get('repository.slug'));\n }).property('repository.slug'),\n urlGithubNetwork: (function() {\n return Travis.Urls.githubNetwork(this.get('repository.slug'));\n }).property('repository.slug')\n }),\n RepoShowTabsView: Travis.View.extend({\n templateName: 'repos/show/tabs',\n repositoryBinding: 'controller.repository',\n buildBinding: 'controller.build',\n jobBinding: 'controller.job',\n tabBinding: 'controller.tab',\n toggleTools: function() {\n return $('#tools .pane').toggle();\n },\n classCurrent: (function() {\n if (this.get('tab') === 'current') {\n return 'active';\n }\n }).property('tab'),\n classBuilds: (function() {\n if (this.get('tab') === 'builds') {\n return 'active';\n }\n }).property('tab'),\n classPullRequests: (function() {\n if (this.get('tab') === 'pull_requests') {\n return 'active';\n }\n }).property('tab'),\n classBranches: (function() {\n if (this.get('tab') === 'branches') {\n return 'active';\n }\n }).property('tab'),\n classBuild: (function() {\n var classes, tab;\n tab = this.get('tab');\n classes = [];\n if (tab === 'build') {\n classes.push('active');\n }\n if (tab === 'build' || tab === 'job') {\n classes.push('display');\n }\n return classes.join(' ');\n }).property('tab'),\n classJob: (function() {\n if (this.get('tab') === 'job') {\n return 'active display';\n }\n }).property('tab'),\n urlRepository: (function() {\n return Travis.Urls.repository(this.get('repository.slug'));\n }).property('repository.slug'),\n urlBuilds: (function() {\n return Travis.Urls.builds(this.get('repository.slug'));\n }).property('repository.slug'),\n urlPullRequests: (function() {\n return Travis.Urls.pullRequests(this.get('repository.slug'));\n }).property('repository.slug'),\n urlBranches: (function() {\n return Travis.Urls.branches(this.get('repository.slug'));\n }).property('repository.slug'),\n urlBuild: (function() {\n return Travis.Urls.build(this.get('repository.slug'), this.get('build.id'));\n }).property('repository.slug', 'build.id'),\n urlJob: (function() {\n return Travis.Urls.job(this.get('repository.slug'), this.get('job.id'));\n }).property('repository.slug', 'job.id'),\n urlStatusImage: (function() {\n return Travis.Urls.statusImage(this.get('repository.slug'), this.get('branch.commit.branch'));\n }).property('repository.slug', 'branch'),\n markdownStatusImage: (function() {\n return \"[![Build Status](\" + (this.get('urlStatusImage')) + \")](\" + (this.get('urlRepository')) + \")\";\n }).property('urlStatusImage'),\n textileStatusImage: (function() {\n return \"!\" + (this.get('urlStatusImage')) + \"!:\" + (this.get('urlRepository'));\n }).property('urlStatusImage'),\n rdocStatusImage: (function() {\n return \"{<img src=\\\"\" + (this.get('urlStatusImage')) + \"\\\" alt=\\\"Build Status\\\" />}[\" + (this.get('urlRepository')) + \"]\";\n }).property('urlStatusImage')\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/repo/show");minispade.register('views/sidebar', "(function() {(function() {\n\n this.Travis.reopen({\n SidebarView: Travis.View.extend({\n templateName: 'layouts/sidebar'\n }),\n WorkersView: Travis.View.extend({\n toggle: function(event) {\n return $(event.target).closest('li').toggleClass('open');\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/sidebar");minispade.register('views/stats', "(function() {(function() {\n\n this.Travis.reopen({\n StatsView: Travis.View.extend({\n templateName: 'stats/show',\n didInsertElement: function() {\n var config, name, _ref, _results;\n _ref = this.CHARTS;\n _results = [];\n for (name in _ref) {\n config = _ref[name];\n _results.push(this.renderChart(config));\n }\n return _results;\n },\n renderChart: function(config) {\n var chart;\n chart = new Highcharts.Chart(config);\n return this.fetch(config.source, function(data) {\n var stats;\n stats = (function() {\n var _i, _len, _ref, _results;\n _ref = data.stats;\n _results = [];\n for (_i = 0, _len = _ref.length; _i < _len; _i++) {\n stats = _ref[_i];\n _results.push(config.map(stats));\n }\n return _results;\n })();\n return chart.series[0].setData(stats);\n });\n },\n fetch: function(url, callback) {\n return $.ajax({\n type: 'GET',\n url: url,\n accepts: {\n json: 'application/vnd.travis-ci.2+json'\n },\n success: callback\n });\n },\n CHARTS: {\n repos: {\n source: '/stats/repos',\n map: function(data) {\n return [Date.parse(data.date), data.total_growth];\n },\n chart: {\n renderTo: \"repos_stats\"\n },\n title: {\n text: \"Total Projects/Repositories\"\n },\n xAxis: {\n type: \"datetime\",\n dateTimeLabelFormats: {\n month: \"%e. %b\",\n year: \"%b\"\n }\n },\n yAxis: {\n title: {\n text: \"Count\"\n },\n min: 0\n },\n tooltip: {\n formatter: function() {\n return Highcharts.dateFormat(\"%e. %b\", this.x) + \": \" + this.y + \" repos\";\n }\n },\n series: [\n {\n name: \"Repository Growth\",\n data: []\n }\n ]\n },\n builds: {\n source: '/stats/tests',\n map: function(data) {\n return [Date.parse(data.date), data.run_on_date];\n },\n chart: {\n renderTo: \"tests_stats\",\n type: \"column\"\n },\n title: {\n text: \"Build Count\"\n },\n subtitle: {\n text: \"last month\"\n },\n xAxis: {\n type: \"datetime\",\n dateTimeLabelFormats: {\n month: \"%e. %b\",\n year: \"%b\"\n }\n },\n yAxis: {\n title: {\n text: \"Count\"\n },\n min: 0\n },\n tooltip: {\n formatter: function() {\n return Highcharts.dateFormat(\"%e. %b\", this.x) + \": \" + this.y + \" builds\";\n }\n },\n series: [\n {\n name: \"Total Builds\",\n data: []\n }\n ]\n }\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/stats");minispade.register('views/top', "(function() {(function() {\nminispade.require('travis/auth');\n\n this.Travis.reopen({\n TopView: Travis.View.extend({\n templateName: 'layouts/top',\n tabBinding: 'controller.tab',\n userBinding: 'controller.user',\n gravatarUrl: (function() {\n return \"http://www.gravatar.com/avatar/\" + (this.get('user.gravatar')) + \"?s=24&d=mm\";\n }).property('user.gravatar'),\n classHome: (function() {\n if (this.get('tab') === 'home') {\n return 'active';\n }\n }).property('tab'),\n classStats: (function() {\n if (this.get('tab') === 'stats') {\n return 'active';\n }\n }).property('tab'),\n classProfile: (function() {\n if (this.get('tab') === 'profile') {\n return 'profile active';\n } else {\n return 'profile';\n }\n }).property('tab'),\n showProfile: function() {\n return $('#top .profile ul').show();\n },\n hideProfile: function() {\n return $('#top .profile ul').hide();\n }\n })\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=views/top");minispade.register('data/sponsors', "(function() {(function() {\n\n this.Travis.SPONSORS = [\n {\n type: 'platinum',\n url: \"http://www.wooga.com\",\n image: \"wooga-205x130.png\"\n }, {\n type: 'platinum',\n url: \"http://bendyworks.com\",\n image: \"bendyworks-205x130.png\"\n }, {\n type: 'platinum',\n url: \"http://cloudcontrol.com\",\n image: \"cloudcontrol-205x130.png\"\n }, {\n type: 'platinum',\n url: \"http://xing.de\",\n image: \"xing-205x130.png\"\n }, {\n type: 'gold',\n url: \"http://heroku.com\",\n image: \"heroku-205x60.png\"\n }, {\n type: 'gold',\n url: \"http://soundcloud.com\",\n image: \"soundcloud-205x60.png\"\n }, {\n type: 'gold',\n url: \"http://nedap.com\",\n image: \"nedap-205x60.png\"\n }, {\n type: 'gold',\n url: \"http://mongohq.com\",\n image: \"mongohq-205x60.png\"\n }, {\n type: 'gold',\n url: \"http://zweitag.de\",\n image: \"zweitag-205x60.png\"\n }, {\n type: 'gold',\n url: \"http://kanbanery.com\",\n image: \"kanbanery-205x60.png\"\n }, {\n type: 'gold',\n url: \"http://ticketevolution.com\",\n image: \"ticketevolution-205x60.jpg\"\n }, {\n type: 'gold',\n url: \"http://plan.io/travis\",\n image: \"planio-205x60.png\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://cobot.me\\\">Cobot</a><span>: The one tool to run your coworking space</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://jumpstartlab.com\\\">JumpstartLab</a><span>: We build developers</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://evilmartians.com\\\">Evil Martians</a><span>: Agile Ruby on Rails development</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://zendesk.com\\\">Zendesk</a><span>: Love your helpdesk</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://stripe.com\\\">Stripe</a><span>: Payments for developers</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://basho.com\\\">Basho</a><span>: We make Riak!</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://thinkrelevance.com\\\">Relevance</a><span>: We deliver software solutions</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://mindmatters.de\\\">Mindmatters</a><span>: Software f\u00fcr Menschen</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://amenhq.com\\\">Amen</a><span>: The best and worst of everything</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://site5.com\\\">Site5</a><span>: Premium Web Hosting Solutions</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://www.crowdint.com\\\">Crowd Interactive</a><span>: Leading Rails consultancy in Mexico</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://www.atomicobject.com/detroit\\\">Atomic Object</a><span>: Work with really smart people</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://codeminer.com.br\\\">Codeminer</a><span>: smart services for your startup</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://cloudant.com\\\">Cloudant</a><span>: grow into your data layer, not out of it</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://gidsy.com\\\">Gidsy</a><span>: Explore, organize &amp; book unique things to do!</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://5apps.com\\\">5apps</a><span>: Package &amp; deploy HTML5 apps automatically</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://meltmedia.com\\\">Meltmedia</a><span>: We are Interactive Superheroes</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://www.fngtps.com\\\">Fingertips</a><span> offers design and development services</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://www.engineyard.com\\\">Engine Yard</a><span>: Build epic apps, let us handle the rest</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://malwarebytes.org\\\">Malwarebytes</a><span>: Defeat Malware once and for all.</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://readmill.com\\\">Readmill</a><span>: The best reading app on the iPad.</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://www.mdsol.com\\\">Medidata</a><span>: clinical tech improving quality of life</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://coderwall.com/teams/4f27194e973bf000040005f0\\\">ESM</a><span>: Japan's best agile Ruby/Rails consultancy</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://twitter.com\\\">Twitter</a><span>: instantly connects people everywhere</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://agileanimal.com\\\">AGiLE ANiMAL</a><span>: we <3 Travis CI.</span>\"\n }, {\n type: 'silver',\n link: \"<a href=\\\"http://tupalo.com\\\">Tupalo</a><span>: Discover, review &amp; share local businesses.</span>\"\n }\n ];\n\n}).call(this);\n\n})();\n//@ sourceURL=data/sponsors");minispade.register('emoij', "(function() {(function() {\n\n this.EmojiDictionary = ['-1', '0', '1', '109', '2', '3', '4', '5', '6', '7', '8', '8ball', '9', 'a', 'ab', 'airplane', 'alien', 'ambulance', 'angel', 'anger', 'angry', 'apple', 'aquarius', 'aries', 'arrow_backward', 'arrow_down', 'arrow_forward', 'arrow_left', 'arrow_lower_left', 'arrow_lower_right', 'arrow_right', 'arrow_up', 'arrow_upper_left', 'arrow_upper_right', 'art', 'astonished', 'atm', 'b', 'baby', 'baby_chick', 'baby_symbol', 'balloon', 'bamboo', 'bank', 'barber', 'baseball', 'basketball', 'bath', 'bear', 'beer', 'beers', 'beginner', 'bell', 'bento', 'bike', 'bikini', 'bird', 'birthday', 'black_square', 'blue_car', 'blue_heart', 'blush', 'boar', 'boat', 'bomb', 'book', 'boot', 'bouquet', 'bow', 'bowtie', 'boy', 'bread', 'briefcase', 'broken_heart', 'bug', 'bulb', 'bullettrain_front', 'bullettrain_side', 'bus', 'busstop', 'cactus', 'cake', 'calling', 'camel', 'camera', 'cancer', 'capricorn', 'car', 'cat', 'cd', 'chart', 'checkered_flag', 'cherry_blossom', 'chicken', 'christmas_tree', 'church', 'cinema', 'city_sunrise', 'city_sunset', 'clap', 'clapper', 'clock1', 'clock10', 'clock11', 'clock12', 'clock2', 'clock3', 'clock4', 'clock5', 'clock6', 'clock7', 'clock8', 'clock9', 'closed_umbrella', 'cloud', 'clubs', 'cn', 'cocktail', 'coffee', 'cold_sweat', 'computer', 'confounded', 'congratulations', 'construction', 'construction_worker', 'convenience_store', 'cool', 'cop', 'copyright', 'couple', 'couple_with_heart', 'couplekiss', 'cow', 'crossed_flags', 'crown', 'cry', 'cupid', 'currency_exchange', 'curry', 'cyclone', 'dancer', 'dancers', 'dango', 'dart', 'dash', 'de', 'department_store', 'diamonds', 'disappointed', 'dog', 'dolls', 'dolphin', 'dress', 'dvd', 'ear', 'ear_of_rice', 'egg', 'eggplant', 'egplant', 'eight_pointed_black_star', 'eight_spoked_asterisk', 'elephant', 'email', 'es', 'european_castle', 'exclamation', 'eyes', 'factory', 'fallen_leaf', 'fast_forward', 'fax', 'fearful', 'feelsgood', 'feet', 'ferris_wheel', 'finnadie', 'fire', 'fire_engine', 'fireworks', 'fish', 'fist', 'flags', 'flushed', 'football', 'fork_and_knife', 'fountain', 'four_leaf_clover', 'fr', 'fries', 'frog', 'fuelpump', 'gb', 'gem', 'gemini', 'ghost', 'gift', 'gift_heart', 'girl', 'goberserk', 'godmode', 'golf', 'green_heart', 'grey_exclamation', 'grey_question', 'grin', 'guardsman', 'guitar', 'gun', 'haircut', 'hamburger', 'hammer', 'hamster', 'hand', 'handbag', 'hankey', 'hash', 'headphones', 'heart', 'heart_decoration', 'heart_eyes', 'heartbeat', 'heartpulse', 'hearts', 'hibiscus', 'high_heel', 'horse', 'hospital', 'hotel', 'hotsprings', 'house', 'hurtrealbad', 'icecream', 'id', 'ideograph_advantage', 'imp', 'information_desk_person', 'iphone', 'it', 'jack_o_lantern', 'japanese_castle', 'joy', 'jp', 'key', 'kimono', 'kiss', 'kissing_face', 'kissing_heart', 'koala', 'koko', 'kr', 'leaves', 'leo', 'libra', 'lips', 'lipstick', 'lock', 'loop', 'loudspeaker', 'love_hotel', 'mag', 'mahjong', 'mailbox', 'man', 'man_with_gua_pi_mao', 'man_with_turban', 'maple_leaf', 'mask', 'massage', 'mega', 'memo', 'mens', 'metal', 'metro', 'microphone', 'minidisc', 'mobile_phone_off', 'moneybag', 'monkey', 'monkey_face', 'moon', 'mortar_board', 'mount_fuji', 'mouse', 'movie_camera', 'muscle', 'musical_note', 'nail_care', 'necktie', 'new', 'no_good', 'no_smoking', 'nose', 'notes', 'o', 'o2', 'ocean', 'octocat', 'octopus', 'oden', 'office', 'ok', 'ok_hand', 'ok_woman', 'older_man', 'older_woman', 'open_hands', 'ophiuchus', 'palm_tree', 'parking', 'part_alternation_mark', 'pencil', 'penguin', 'pensive', 'persevere', 'person_with_blond_hair', 'phone', 'pig', 'pill', 'pisces', 'plus1', 'point_down', 'point_left', 'point_right', 'point_up', 'point_up_2', 'police_car', 'poop', 'post_office', 'postbox', 'pray', 'princess', 'punch', 'purple_heart', 'question', 'rabbit', 'racehorse', 'radio', 'rage', 'rage1', 'rage2', 'rage3', 'rage4', 'rainbow', 'raised_hands', 'ramen', 'red_car', 'red_circle', 'registered', 'relaxed', 'relieved', 'restroom', 'rewind', 'ribbon', 'rice', 'rice_ball', 'rice_cracker', 'rice_scene', 'ring', 'rocket', 'roller_coaster', 'rose', 'ru', 'runner', 'sa', 'sagittarius', 'sailboat', 'sake', 'sandal', 'santa', 'satellite', 'satisfied', 'saxophone', 'school', 'school_satchel', 'scissors', 'scorpius', 'scream', 'seat', 'secret', 'shaved_ice', 'sheep', 'shell', 'ship', 'shipit', 'shirt', 'shit', 'shoe', 'signal_strength', 'six_pointed_star', 'ski', 'skull', 'sleepy', 'slot_machine', 'smile', 'smiley', 'smirk', 'smoking', 'snake', 'snowman', 'sob', 'soccer', 'space_invader', 'spades', 'spaghetti', 'sparkler', 'sparkles', 'speaker', 'speedboat', 'squirrel', 'star', 'star2', 'stars', 'station', 'statue_of_liberty', 'stew', 'strawberry', 'sunflower', 'sunny', 'sunrise', 'sunrise_over_mountains', 'surfer', 'sushi', 'suspect', 'sweat', 'sweat_drops', 'swimmer', 'syringe', 'tada', 'tangerine', 'taurus', 'taxi', 'tea', 'telephone', 'tennis', 'tent', 'thumbsdown', 'thumbsup', 'ticket', 'tiger', 'tm', 'toilet', 'tokyo_tower', 'tomato', 'tongue', 'top', 'tophat', 'traffic_light', 'train', 'trident', 'trophy', 'tropical_fish', 'truck', 'trumpet', 'tshirt', 'tulip', 'tv', 'u5272', 'u55b6', 'u6307', 'u6708', 'u6709', 'u6e80', 'u7121', 'u7533', 'u7a7a', 'umbrella', 'unamused', 'underage', 'unlock', 'up', 'us', 'v', 'vhs', 'vibration_mode', 'virgo', 'vs', 'walking', 'warning', 'watermelon', 'wave', 'wc', 'wedding', 'whale', 'wheelchair', 'white_square', 'wind_chime', 'wink', 'wink2', 'wolf', 'woman', 'womans_hat', 'womens', 'x', 'yellow_heart', 'zap', 'zzz'];\n\n}).call(this);\n\n})();\n//@ sourceURL=emoij");minispade.register('ext/jquery', "(function() {(function() {\n\n $.fn.extend({\n outerHtml: function() {\n return $(this).wrap('<div></div>').parent().html();\n },\n outerElement: function() {\n return $($(this).outerHtml()).empty();\n },\n flash: function() {\n return Utils.flash(this);\n },\n unflash: function() {\n return Utils.unflash(this);\n },\n filterLog: function() {\n this.deansi();\n return this.foldLog();\n },\n deansi: function() {\n return this.html(Utils.deansi(this.html()));\n },\n foldLog: function() {\n return this.html(Utils.foldLog(this.html()));\n },\n unfoldLog: function() {\n return this.html(Utils.unfoldLog(this.html()));\n },\n updateTimes: function() {\n return Utils.updateTimes(this);\n },\n activateTab: function(tab) {\n return Utils.activateTab(this, tab);\n },\n timeInWords: function() {\n return $(this).each(function() {\n return $(this).text(Utils.timeInWords(parseInt($(this).attr('title'))));\n });\n },\n updateGithubStats: function(repository) {\n return Utils.updateGithubStats(repository, $(this));\n }\n });\n\n $.extend({\n isEmpty: function(obj) {\n if ($.isArray(obj)) {\n return !obj.length;\n } else if ($.isObject(obj)) {\n return !$.keys(obj).length;\n } else {\n return !obj;\n }\n },\n isObject: function(obj) {\n return Object.prototype.toString.call(obj) === '[object Object]';\n },\n keys: function(obj) {\n var keys;\n keys = [];\n $.each(obj, function(key) {\n return keys.push(key);\n });\n return keys;\n },\n values: function(obj) {\n var values;\n values = [];\n $.each(obj, function(key, value) {\n return values.push(value);\n });\n return values;\n },\n underscore: function(string) {\n return string[0].toLowerCase() + string.substring(1).replace(/([A-Z])?/g, function(match, chr) {\n if (chr) {\n return \"_\" + (chr.toUpperCase());\n } else {\n return '';\n }\n });\n },\n camelize: function(string, uppercase) {\n string = uppercase === false ? $.underscore(string) : $.capitalize(string);\n return string.replace(/_(.)?/g, function(match, chr) {\n if (chr) {\n return chr.toUpperCase();\n } else {\n return '';\n }\n });\n },\n capitalize: function(string) {\n return string[0].toUpperCase() + string.substring(1);\n },\n compact: function(object) {\n return $.grep(object, function(value) {\n return !!value;\n });\n },\n all: function(array, callback) {\n var args, i;\n args = Array.prototype.slice.apply(arguments);\n callback = args.pop();\n array = args.pop() || this;\n i = 0;\n while (i < array.length) {\n if (callback(array[i])) {\n return false;\n }\n i++;\n }\n return true;\n },\n detect: function(array, callback) {\n var args, i;\n args = Array.prototype.slice.apply(arguments);\n callback = args.pop();\n array = args.pop() || this;\n i = 0;\n while (i < array.length) {\n if (callback(array[i])) {\n return array[i];\n }\n i++;\n }\n },\n select: function(array, callback) {\n var args, i, result;\n args = Array.prototype.slice.apply(arguments);\n callback = args.pop();\n array = args.pop() || this;\n result = [];\n i = 0;\n while (i < array.length) {\n if (callback(array[i])) {\n result.push(array[i]);\n }\n i++;\n }\n return result;\n },\n slice: function(object, key) {\n var keys, result;\n keys = Array.prototype.slice.apply(arguments);\n object = (typeof keys[0] === 'object' ? keys.shift() : this);\n result = {};\n for (key in object) {\n if (keys.indexOf(key) > -1) {\n result[key] = object[key];\n }\n }\n return result;\n },\n only: function(object) {\n var key, keys, result;\n keys = Array.prototype.slice.apply(arguments);\n object = (typeof keys[0] === 'object' ? keys.shift() : this);\n result = {};\n for (key in object) {\n if (keys.indexOf(key) !== -1) {\n result[key] = object[key];\n }\n }\n return result;\n },\n except: function(object) {\n var key, keys, result;\n keys = Array.prototype.slice.apply(arguments);\n object = (typeof keys[0] === 'object' ? keys.shift() : this);\n result = {};\n for (key in object) {\n if (keys.indexOf(key) === -1) {\n result[key] = object[key];\n }\n }\n return result;\n },\n intersect: function(array, other) {\n return array.filter(function(element) {\n return other.indexOf(element) !== -1;\n });\n },\n map: function(elems, callback, arg) {\n var i, isArray, key, length, ret, value;\n value = void 0;\n key = void 0;\n ret = [];\n i = 0;\n length = elems.length;\n isArray = elems instanceof jQuery || length !== void 0 && typeof length === 'number' && (length > 0 && elems[0] && elems[length - 1]) || length === 0 || jQuery.isArray(elems);\n if (isArray) {\n while (i < length) {\n value = callback(elems[i], i, arg);\n if (value != null) {\n ret[ret.length] = value;\n }\n i++;\n }\n } else {\n for (key in elems) {\n value = callback(elems[key], key, arg);\n if (value != null) {\n ret[ret.length] = value;\n }\n }\n }\n return ret.concat.apply([], ret);\n },\n shuffle: function(array) {\n var current, tmp, top;\n array = array.slice();\n top = array.length;\n while (top && --top) {\n current = Math.floor(Math.random() * (top + 1));\n tmp = array[current];\n array[current] = array[top];\n array[top] = tmp;\n }\n return array;\n },\n truncate: function(string, length) {\n if (string.length > length) {\n return string.trim().substring(0, length) + '...';\n } else {\n return string;\n }\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=ext/jquery");minispade.register('hax0rs', "(function() {(function() {\n\n\n\n}).call(this);\n\n})();\n//@ sourceURL=hax0rs");minispade.register('mocks', "(function() {(function() {\n var artifact, artifacts, branches, build, builds, commits, data, hooks, id, job, jobs, repositories, repository, responseTime, workers, _i, _j, _k, _l, _len, _len1, _len2, _len3, _len4, _m;\nminispade.require('ext/jquery');\n\n responseTime = 0;\n\n repositories = [\n {\n id: 1,\n owner: 'travis-ci',\n name: 'travis-core',\n slug: 'travis-ci/travis-core',\n build_ids: [1, 2],\n last_build_id: 1,\n last_build_number: 1,\n last_build_result: 0,\n last_build_duration: 30,\n last_build_started_at: '2012-07-02T00:00:00Z',\n last_build_finished_at: '2012-07-02T00:00:30Z',\n description: 'Description of travis-core'\n }, {\n id: 2,\n owner: 'travis-ci',\n name: 'travis-assets',\n slug: 'travis-ci/travis-assets',\n build_ids: [3],\n last_build_id: 3,\n last_build_number: 3,\n last_build_result: 1,\n last_build_duration: 30,\n last_build_started_at: '2012-07-02T00:01:00Z',\n last_build_finished_at: '2012-07-01T00:01:30Z',\n description: 'Description of travis-assets'\n }, {\n id: 3,\n owner: 'travis-ci',\n name: 'travis-hub',\n slug: 'travis-ci/travis-hub',\n build_ids: [4],\n last_build_id: 4,\n last_build_number: 4,\n last_build_result: void 0,\n last_build_duration: void 0,\n last_build_started_at: '2012-07-02T00:02:00Z',\n last_build_finished_at: void 0,\n description: 'Description of travis-hub'\n }\n ];\n\n builds = [\n {\n id: 1,\n repository_id: '1',\n commit_id: 1,\n job_ids: [1, 2, 3],\n number: 1,\n pull_request: false,\n config: {\n rvm: ['rbx', '1.9.3', 'jruby']\n },\n duration: 30,\n started_at: '2012-07-02T00:00:00Z',\n finished_at: '2012-07-02T00:00:30Z',\n result: 0\n }, {\n id: 2,\n repository_id: '1',\n commit_id: 2,\n job_ids: [4],\n number: 2,\n pull_request: false,\n config: {\n rvm: ['rbx']\n }\n }, {\n id: 3,\n repository_id: '2',\n commit_id: 3,\n job_ids: [5],\n number: 3,\n pull_request: false,\n config: {\n rvm: ['rbx']\n },\n duration: 30,\n started_at: '2012-07-02T00:01:00Z',\n finished_at: '2012-07-01T00:01:30Z',\n result: 1\n }, {\n id: 4,\n repository_id: '3',\n commit_id: 4,\n job_ids: [6],\n number: 4,\n pull_request: false,\n config: {\n rvm: ['rbx']\n },\n started_at: '2012-07-02T00:02:00Z'\n }\n ];\n\n commits = [\n {\n id: 1,\n sha: '1234567',\n branch: 'master',\n message: 'commit message 1',\n author_name: 'author name',\n author_email: 'author@email.com',\n committer_name: 'committer name',\n committer_email: 'committer@email.com',\n compare_url: 'http://github.com/compare/0123456..1234567'\n }, {\n id: 2,\n sha: '2345678',\n branch: 'feature',\n message: 'commit message 2',\n author_name: 'author name',\n author_email: 'author@email.com',\n committer_name: 'committer name',\n committer_email: 'committer@email.com',\n compare_url: 'http://github.com/compare/0123456..2345678'\n }, {\n id: 3,\n sha: '3456789',\n branch: 'master',\n message: 'commit message 3',\n author_name: 'author name',\n author_email: 'author@email.com',\n committer_name: 'committer name',\n committer_email: 'committer@email.com',\n compare_url: 'http://github.com/compare/0123456..3456789'\n }, {\n id: 4,\n sha: '4567890',\n branch: 'master',\n message: 'commit message 4',\n author_name: 'author name',\n author_email: 'author@email.com',\n committer_name: 'committer name',\n committer_email: 'committer@email.com',\n compare_url: 'http://github.com/compare/0123456..4567890'\n }\n ];\n\n jobs = [\n {\n id: 1,\n repository_id: 1,\n build_id: 1,\n commit_id: 1,\n log_id: 1,\n number: '1.1',\n config: {\n rvm: 'rbx'\n },\n duration: 30,\n started_at: '2012-07-02T00:00:00Z',\n finished_at: '2012-07-02T00:00:30Z',\n result: 0\n }, {\n id: 2,\n repository_id: 1,\n build_id: 1,\n commit_id: 1,\n log_id: 2,\n number: '1.2',\n config: {\n rvm: '1.9.3'\n },\n duration: 40,\n started_at: '2012-07-02T00:00:00Z',\n finished_at: '2012-07-02T00:00:40Z',\n result: 1\n }, {\n id: 3,\n repository_id: 1,\n build_id: 1,\n commit_id: 1,\n log_id: 3,\n number: '1.3',\n config: {\n rvm: 'jruby'\n },\n allow_failure: true\n }, {\n id: 4,\n repository_id: 1,\n build_id: 2,\n commit_id: 2,\n log_id: 4,\n number: '2.1',\n config: {\n rvm: 'rbx'\n }\n }, {\n id: 5,\n repository_id: 2,\n build_id: 3,\n commit_id: 3,\n log_id: 5,\n number: '3.1',\n config: {\n rvm: 'rbx'\n },\n duration: 30,\n started_at: '2012-07-02T00:01:00Z',\n finished_at: '2012-07-02T00:01:30Z',\n result: 1\n }, {\n id: 6,\n repository_id: 3,\n build_id: 4,\n commit_id: 4,\n log_id: 6,\n number: '4.1',\n config: {\n rvm: 'rbx'\n },\n started_at: '2012-07-02T00:02:00Z'\n }, {\n id: 7,\n repository_id: 1,\n build_id: 5,\n commit_id: 5,\n log_id: 7,\n number: '5.1',\n config: {\n rvm: 'rbx'\n },\n state: 'created',\n queue: 'common'\n }, {\n id: 8,\n repository_id: 1,\n build_id: 5,\n commit_id: 5,\n log_id: 8,\n number: '5.2',\n config: {\n rvm: 'rbx'\n },\n state: 'created',\n queue: 'common'\n }\n ];\n\n artifacts = [\n {\n id: 1,\n body: 'log 1'\n }, {\n id: 2,\n body: 'log 2'\n }, {\n id: 3,\n body: 'log 3'\n }, {\n id: 4,\n body: 'log 4'\n }, {\n id: 5,\n body: 'log 5'\n }, {\n id: 6,\n body: 'log 6'\n }, {\n id: 7,\n body: 'log 7'\n }, {\n id: 8,\n body: 'log 8'\n }\n ];\n\n branches = [\n {\n branches: [builds[0], builds[1]],\n commits: [commits[0], commits[1]]\n }, {\n branches: [builds[2]],\n commits: [commits[2]]\n }, {\n branches: [builds[3]],\n commits: [commits[3]]\n }\n ];\n\n workers = [\n {\n id: 1,\n name: 'ruby-1',\n host: 'worker.travis-ci.org',\n state: 'ready'\n }, {\n id: 2,\n name: 'ruby-2',\n host: 'worker.travis-ci.org',\n state: 'ready'\n }\n ];\n\n hooks = [\n {\n slug: 'travis-ci/travis-core',\n description: 'description of travis-core',\n active: true,\n \"private\": false\n }, {\n slug: 'travis-ci/travis-assets',\n description: 'description of travis-assets',\n active: false,\n \"private\": false\n }, {\n slug: 'svenfuchs/minimal',\n description: 'description of minimal',\n active: true,\n \"private\": false\n }\n ];\n\n $.mockjax({\n url: '/repositories',\n responseTime: responseTime,\n response: function(settings) {\n var search, slug;\n if (!settings.data) {\n return this.responseText = {\n repositories: repositories\n };\n } else if (slug = settings.data.slug) {\n return this.responseText = {\n repositories: [\n $.detect(repositories, function(repository) {\n return repository.slug === slug;\n })\n ]\n };\n } else if (search = settings.data.search) {\n return this.responseText = {\n repositories: $.select(repositories, function(repository) {\n return repository.slug.indexOf(search) > -1;\n }).toArray()\n };\n } else {\n return raise(\"don't know this ditty\");\n }\n }\n });\n\n for (_i = 0, _len = repositories.length; _i < _len; _i++) {\n repository = repositories[_i];\n $.mockjax({\n url: '/' + repository.slug,\n responseTime: responseTime,\n responseText: {\n repository: repository\n }\n });\n $.mockjax({\n url: '/repositories',\n data: {\n slug: repository.slug\n },\n responseTime: responseTime,\n responseText: {\n repositories: [repository]\n }\n });\n $.mockjax({\n url: '/builds',\n data: {\n ids: repository.build_ids\n },\n responseTime: responseTime,\n responseText: {\n builds: $.select(builds, function(build) {\n return repository.build_ids.indexOf(build.id) !== -1;\n })\n }\n });\n $.mockjax({\n url: '/builds',\n data: {\n repository_id: repository.id,\n event_type: 'push',\n orderBy: 'number DESC'\n },\n responseTime: responseTime,\n responseText: {\n builds: (function() {\n var _j, _len1, _ref, _results;\n _ref = repository.build_ids;\n _results = [];\n for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n id = _ref[_j];\n _results.push(builds[id - 1]);\n }\n return _results;\n })(),\n commits: (function() {\n var _j, _len1, _ref, _results;\n _ref = repository.build_ids;\n _results = [];\n for (_j = 0, _len1 = _ref.length; _j < _len1; _j++) {\n id = _ref[_j];\n _results.push(commits[builds[id - 1].commit_id - 1]);\n }\n return _results;\n })()\n }\n });\n }\n\n for (_j = 0, _len1 = builds.length; _j < _len1; _j++) {\n build = builds[_j];\n $.mockjax({\n url: '/builds/' + build.id,\n responseTime: responseTime,\n responseText: {\n build: build,\n commit: commits[build.commit_id - 1],\n jobs: (function() {\n var _k, _len2, _ref, _results;\n _ref = build.job_ids;\n _results = [];\n for (_k = 0, _len2 = _ref.length; _k < _len2; _k++) {\n id = _ref[_k];\n _results.push(jobs[id - 1]);\n }\n return _results;\n })()\n }\n });\n }\n\n for (_k = 0, _len2 = jobs.length; _k < _len2; _k++) {\n job = jobs[_k];\n $.mockjax({\n url: '/jobs/' + job.id,\n responseTime: responseTime,\n responseText: {\n job: job,\n commit: commits[job.commit_id - 1]\n }\n });\n }\n\n $.mockjax({\n url: '/jobs',\n responseTime: responseTime,\n responseText: {\n jobs: $.select(jobs, function(job) {\n return job.state === 'created';\n })\n }\n });\n\n for (_l = 0, _len3 = branches.length; _l < _len3; _l++) {\n data = branches[_l];\n $.mockjax({\n url: '/branches',\n data: {\n repository_id: data.branches[0].repository_id\n },\n responseTime: responseTime,\n responseText: data\n });\n }\n\n for (_m = 0, _len4 = artifacts.length; _m < _len4; _m++) {\n artifact = artifacts[_m];\n $.mockjax({\n url: '/artifacts/' + artifact.id,\n responseTime: responseTime,\n responseText: {\n artifact: artifact\n }\n });\n }\n\n $.mockjax({\n url: '/workers',\n responseTime: responseTime,\n responseText: {\n workers: workers\n }\n });\n\n $.mockjax({\n url: '/profile/hooks',\n responseTime: responseTime,\n responseText: {\n hooks: hooks\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=mocks");minispade.register('travis/auth', "(function() {(function() {\n\n this.Travis.Auth = (function() {\n\n function Auth() {\n this.iframe = $('<iframe />');\n this.iframe.hide();\n }\n\n Auth.prototype.signIn = function() {\n return alert('sign in not implemented');\n };\n\n Auth.instance = new Auth;\n\n Auth.signIn = function() {\n return this.instance.signIn();\n };\n\n return Auth;\n\n })();\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/auth");minispade.register('travis/log', "(function() {(function() {\n\n this.Travis.Log = {\n FOLDS: {\n schema: /(<p.*?\\/a>\\$ (?:bundle exec )?rake( db:create)? db:schema:load[\\s\\S]*?<p.*?\\/a>-- assume_migrated_upto_version[\\s\\S]*?<\\/p>\\n<p.*?\\/a>.*<\\/p>)/g,\n migrate: /(<p.*?\\/a>\\$ (?:bundle exec )?rake( db:create)? db:migrate[\\s\\S]*== +\\w+: migrated \\(.*\\) =+)/g,\n bundle: /(<p.*?\\/a>\\$ bundle install.*<\\/p>\\n(<p.*?\\/a>(Updating|Using|Installing|Fetching|remote:|Receiving|Resolving).*?<\\/p>\\n|<p.*?\\/a><\\/p>\\n)*)/g,\n exec: /(<p.*?\\/a>[\\/\\w]*.rvm\\/rubies\\/[\\S]*?\\/(ruby|rbx|jruby) .*?<\\/p>)/g\n },\n filter: function(log) {\n log = this.escape(log);\n log = this.deansi(log);\n log = log.replace(/\\r/g, '');\n log = this.number(log);\n log = this.fold(log);\n log = log.replace(/\\n/g, '');\n return log;\n },\n stripPaths: function(log) {\n return log.replace(/\\/home\\/vagrant\\/builds(\\/[^\\/\\n]+){2}\\//g, '');\n },\n escape: function(log) {\n return Handlebars.Utils.escapeExpression(log);\n },\n escapeRuby: function(log) {\n return log.replace(/#<(\\w+.*?)>/, '#&lt;$1&gt;');\n },\n number: function(log) {\n var result;\n result = '';\n $.each(log.trim().split('\\n'), function(ix, line) {\n var number, path;\n number = ix + 1;\n path = Travis.Log.location().substr(1).replace(/\\/L\\d+/, '') + '/L' + number;\n return result += '<p><a href=\\'#%@\\' id=\\'%@\\' name=\\'L%@\\'>%@</a>%@</p>\\n'.fmt(path, path, number, number, line);\n });\n return result.trim();\n },\n deansi: function(log) {\n var ansi, text;\n log = log.replace(/\\r\\r/g, '\\r').replace(/\\033\\[K\\r/g, '\\r').replace(/^.*\\r(?!$)/g, '').replace(/\u001B\\[2K/g, '').replace(/\\033\\(B/g, '');\n ansi = ansiparse(log);\n text = '';\n ansi.forEach(function(part) {\n var classes;\n classes = [];\n part.foreground && classes.push(part.foreground);\n part.background && classes.push('bg-' + part.background);\n part.bold && classes.push('bold');\n part.italic && classes.push('italic');\n return text += (classes.length ? '<span class=\\'' + classes.join(' ') + '\\'>' + part.text + '</span>' : part.text);\n });\n return text.replace(/\\033/g, '');\n },\n fold: function(log) {\n log = this.unfold(log);\n $.each(Travis.Log.FOLDS, function(name, pattern) {\n return log = log.replace(pattern, function() {\n return '<div class=\\'fold ' + name + '\\'>' + arguments[1].trim() + '</div>';\n });\n });\n return log;\n },\n unfold: function(log) {\n return log.replace(/<div class='fold[^']*'>([\\s\\S]*?)<\\/div>/g, '$1\\n');\n },\n location: function() {\n return window.location.hash;\n }\n };\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/log");minispade.register('travis/model', "(function() {(function() {\n\n this.Travis.Model = DS.Model.extend({\n primaryKey: 'id',\n id: DS.attr('number'),\n refresh: function() {\n var id;\n id = this.get('id');\n if (id) {\n return Travis.app.store.adapter.find(Travis.app.store, this.constructor, id);\n }\n },\n update: function(attrs) {\n var _this = this;\n $.each(attrs, function(key, value) {\n if (key !== 'id') {\n return _this.set(key, value);\n }\n });\n return this;\n }\n });\n\n this.Travis.Model.reopenClass({\n filter: function(callback) {\n return Travis.app.store.filter(this, callback);\n },\n load: function(attrs) {\n return Travis.app.store.load(this, attrs);\n },\n buildURL: function(suffix) {\n var base, url;\n base = this.url || this.pluralName();\n Ember.assert('Base URL (' + base + ') must not start with slash', !base || base.toString().charAt(0) !== '/');\n Ember.assert('URL suffix (' + suffix + ') must not start with slash', !suffix || suffix.toString().charAt(0) !== '/');\n url = [base];\n if (suffix !== void 0) {\n url.push(suffix);\n }\n return url.join('/');\n },\n singularName: function() {\n var name, parts;\n parts = this.toString().split('.');\n name = parts[parts.length - 1];\n return name.replace(/([A-Z])/g, '_$1').toLowerCase().slice(1);\n },\n pluralName: function() {\n return Travis.app.store.adapter.pluralize(this.singularName());\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/model");minispade.register('travis/ticker', "(function() {(function() {\n\n this.Travis.Ticker = Ember.Object.extend({\n init: function() {\n if (this.get('interval') !== -1) {\n return this.schedule();\n }\n },\n tick: function() {\n var context, target, targets, _i, _len;\n context = this.get('context');\n targets = this.get('targets') || [this.get('target')];\n for (_i = 0, _len = targets.length; _i < _len; _i++) {\n target = targets[_i];\n if (context) {\n target = context.get(target);\n }\n if (target) {\n target.tick();\n }\n }\n return this.schedule();\n },\n schedule: function() {\n var _this = this;\n return Ember.run.later((function() {\n return _this.tick();\n }), this.get('interval') || Travis.app.TICK_INTERVAL);\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis/ticker");minispade.register('travis', "(function() {(function() {\nminispade.require('ext/jquery');\nminispade.require('ext/ember/namespace');\n\n this.Travis = Em.Namespace.create({\n config: {\n api_endpoint: $('meta[rel=\"travis.api_endpoint\"]').attr('href')\n },\n CONFIG_KEYS: ['rvm', 'gemfile', 'env', 'jdk', 'otp_release', 'php', 'node_js', 'perl', 'python', 'scala'],\n ROUTES: {\n 'profile': ['profile', 'hooks'],\n 'profile/:login': ['profile', 'hooks'],\n 'profile/:login/profile': ['profile', 'user'],\n 'stats': ['stats', 'show'],\n ':owner/:name/jobs/:id/:line': ['home', 'job'],\n ':owner/:name/jobs/:id': ['home', 'job'],\n ':owner/:name/builds/:id': ['home', 'build'],\n ':owner/:name/builds': ['home', 'builds'],\n ':owner/:name/pull_requests': ['home', 'pullRequests'],\n ':owner/:name/branches': ['home', 'branches'],\n ':owner/:name': ['home', 'current'],\n '': ['home', 'index']\n },\n QUEUES: [\n {\n name: 'common',\n display: 'Common'\n }, {\n name: 'php',\n display: 'PHP, Perl and Python'\n }, {\n name: 'node_js',\n display: 'Node.js'\n }, {\n name: 'jvmotp',\n display: 'JVM and Erlang'\n }, {\n name: 'rails',\n display: 'Rails'\n }, {\n name: 'spree',\n display: 'Spree'\n }\n ],\n INTERVALS: {\n sponsors: -1,\n times: -1,\n updateTimes: 1000\n },\n run: function(attrs) {\n console.log(\"Connecting to \" + Travis.config.api_endpoint);\n return this.app = Travis.App.create(attrs || {});\n }\n });\n\n}).call(this);\n\n})();\n//@ sourceURL=travis");minispade.register('config/i18n', "(function() {console.log('FOO')\nvar I18n = I18n || {};\nI18n.translations = {\"ca\":{\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"pt-BR\":\"portugu\u00eas brasileiro\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\"}},\"en\":{\"errors\":{\"messages\":{\"not_found\":\"not found\",\"already_confirmed\":\"was already confirmed\",\"not_locked\":\"was not locked\"}},\"devise\":{\"failure\":{\"unauthenticated\":\"You need to sign in or sign up before continuing.\",\"unconfirmed\":\"You have to confirm your account before continuing.\",\"locked\":\"Your account is locked.\",\"invalid\":\"Invalid email or password.\",\"invalid_token\":\"Invalid authentication token.\",\"timeout\":\"Your session expired, please sign in again to continue.\",\"inactive\":\"Your account was not activated yet.\"},\"sessions\":{\"signed_in\":\"Signed in successfully.\",\"signed_out\":\"Signed out successfully.\"},\"passwords\":{\"send_instructions\":\"You will receive an email with instructions about how to reset your password in a few minutes.\",\"updated\":\"Your password was changed successfully. You are now signed in.\"},\"confirmations\":{\"send_instructions\":\"You will receive an email with instructions about how to confirm your account in a few minutes.\",\"confirmed\":\"Your account was successfully confirmed. You are now signed in.\"},\"registrations\":{\"signed_up\":\"You have signed up successfully. If enabled, a confirmation was sent to your e-mail.\",\"updated\":\"You updated your account successfully.\",\"destroyed\":\"Bye! Your account was successfully cancelled. We hope to see you again soon.\"},\"unlocks\":{\"send_instructions\":\"You will receive an email with instructions about how to unlock your account in a few minutes.\",\"unlocked\":\"Your account was successfully unlocked. You are now signed in.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Confirmation instructions\"},\"reset_password_instructions\":{\"subject\":\"Reset password instructions\"},\"unlock_instructions\":{\"subject\":\"Unlock Instructions\"}}},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hour\",\"other\":\"%{count} hours\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} second\",\"other\":\"%{count} seconds\"}}},\"workers\":\"Workers\",\"queue\":\"Queue\",\"no_job\":\"There are no jobs\",\"repositories\":{\"branch\":\"Branch\",\"image_url\":\"Image URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"tabs\":{\"current\":\"Current\",\"build_history\":\"Build History\",\"branches\":\"Branch Summary\",\"pull_requests\":\"Pull Requests\",\"build\":\"Build\",\"job\":\"Job\"}},\"build\":{\"job\":\"Job\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"show_more\":\"Show more\"},\"layouts\":{\"top\":{\"home\":\"Home\",\"blog\":\"Blog\",\"docs\":\"Docs\",\"stats\":\"Stats\",\"github_login\":\"Sign in with Github\",\"profile\":\"Profile\",\"sign_out\":\"Sign Out\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Recent\",\"search\":\"Search\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"See all of our amazing sponsors &rarr;\",\"my_repositories\":\"My Repositories\"},\"about\":{\"alpha\":\"This stuff is alpha.\",\"messages\":{\"alpha\":\"Please do <strong>not</strong> consider this a stable service. We're still far from that! More info <a href='https://github.com/travis-ci'>here.</a>\"},\"join\":\"Join us and help!\",\"mailing_list\":\"Mailing List\",\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Author\",\"build\":\"Build\",\"build_matrix\":\"Build Matrix\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Compare\",\"config\":\"Config\",\"duration\":\"Duration\",\"finished_at\":\"Finished at\",\"job\":\"Job\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\" Flick the switches below to turn on the Travis service hook for your projects, then push to GitHub.<br />\\n To test against multiple rubies, see\",\"config\":\"how to configure custom build options\"},\"messages\":{\"notice\":\"To get started, please read our <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Getting Started guide</a>.\\n <small>It will only take a couple of minutes.</small>\"},\"token\":\"Token\",\"your_repos\":\"Your Repositories\",\"update\":\"Update\",\"update_locale\":\"Update\",\"your_locale\":\"Your Locale\"}},\"statistics\":{\"index\":{\"count\":\"Count\",\"repo_growth\":\"Repository Growth\",\"total_projects\":\"Total Projects/Repositories\",\"build_count\":\"Build Count\",\"last_month\":\"last month\",\"total_builds\":\"Total Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"es\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"workers\":\"Procesos\",\"queue\":\"Cola\",\"no_job\":\"No hay trabajos\",\"repositories\":{\"branch\":\"Rama\",\"image_url\":\"Imagen URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duraci\u00f3n\",\"finished_at\":\"Finalizado\",\"tabs\":{\"current\":\"Actual\",\"build_history\":\"Hist\u00f3rico\",\"branches\":\"Ramas\",\"build\":\"Builds\",\"job\":\"Trabajo\"}},\"build\":{\"job\":\"Trabajo\",\"duration\":\"Duraci\u00f3n\",\"finished_at\":\"Finalizado\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuraci\u00f3n\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duraci\u00f3n\",\"finished_at\":\"Finalizado\",\"sponsored_by\":\"Patrocinado por\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuraci\u00f3n\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duraci\u00f3n\",\"finished_at\":\"Finalizado\"},\"layouts\":{\"top\":{\"home\":\"Inicio\",\"blog\":\"Blog\",\"docs\":\"Documentaci\u00f3n\",\"stats\":\"Estad\u00edsticas\",\"github_login\":\"Iniciar sesi\u00f3n con Github\",\"profile\":\"Perfil\",\"sign_out\":\"Desconectar\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Hazme un Fork en Github\",\"recent\":\"Reciente\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Ver todos nuestros patrocinadores &rarr;\",\"my_repositories\":\"Mis Repositorios\"},\"about\":{\"alpha\":\"Esto es alpha.\",\"messages\":{\"alpha\":\"Por favor <strong>no</strong> considereis esto un servicio estable. Estamos estamos a\u00fan lejos de ello! M\u00e1s informaci\u00f3n <a href='https://github.com/travis-ci'>aqu\u00ed.</a>\"},\"join\":\"\u00danetenos y ayudanos!\",\"mailing_list\":\"Lista de Correos\",\"repository\":\"Repositorio\",\"twitter\":\"Twitter\"}},\"profiles\":{\"show\":{\"email\":\"Correo electr\u00f3nico\",\"github\":\"Github\",\"message\":{\"your_repos\":\" Activa los interruptores para inicial el Travis service hook para tus proyectos, y haz un Push en GitHub.<br />\\n Para probar varias versiones de ruby, mira\",\"config\":\"como configurar tus propias opciones para el Build\"},\"messages\":{\"notice\":\"Para comenzar, por favor lee nuestra <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Gu\u00eda de Inicio </a>.\\n <small>Solo tomar\u00e1 unos pocos minutos.</small>\"},\"token\":\"Token\",\"your_repos\":\"Tus repositorios\",\"update\":\"Actualizar\",\"update_locale\":\"Actualizar\",\"your_locale\":\"Tu Idioma\"}},\"statistics\":{\"index\":{\"count\":\"N\u00famero\",\"repo_growth\":\"Crecimiento de Repositorios\",\"total_projects\":\"Total de Proyectos/Repositorios\",\"build_count\":\"N\u00famero de Builds\",\"last_month\":\"mes anterior\",\"total_builds\":\"Total de Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"fr\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} heure\",\"other\":\"%{count} heures\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} secondes\"}}},\"workers\":\"Processus\",\"queue\":\"File\",\"no_job\":\"Pas de t\u00e2ches\",\"repositories\":{\"branch\":\"Branche\",\"image_url\":\"Image\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commenc\u00e9\",\"duration\":\"Dur\u00e9e\",\"finished_at\":\"Termin\u00e9\",\"tabs\":{\"current\":\"Actuel\",\"build_history\":\"Historique des t\u00e2ches\",\"branches\":\"R\u00e9sum\u00e9 des branches\",\"build\":\"Construction\",\"job\":\"T\u00e2che\"}},\"build\":{\"job\":\"T\u00e2che\",\"duration\":\"Dur\u00e9e\",\"finished_at\":\"Termin\u00e9\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Cette s\u00e9rie de tests a \u00e9t\u00e9 ex\u00e9cut\u00e9e sur une machine sponsoris\u00e9e par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"\u00c9checs autoris\u00e9s\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commenc\u00e9\",\"duration\":\"Dur\u00e9e\",\"finished_at\":\"Termin\u00e9\",\"sponsored_by\":\"Cette s\u00e9rie de tests a \u00e9t\u00e9 ex\u00e9cut\u00e9e sur une machine sponsoris\u00e9e par\"},\"builds\":{\"name\":\"Version\",\"messages\":{\"sponsored_by\":\"Cette s\u00e9rie de tests a \u00e9t\u00e9 ex\u00e9cut\u00e9e sur une machine sponsoris\u00e9e par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"\u00c9checs autoris\u00e9s\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commenc\u00e9\",\"duration\":\"Dur\u00e9e\",\"finished_at\":\"Termin\u00e9\"},\"layouts\":{\"top\":{\"home\":\"Accueil\",\"blog\":\"Blog\",\"docs\":\"Documentation\",\"stats\":\"Statistiques\",\"github_login\":\"Connection Github\",\"profile\":\"Profil\",\"sign_out\":\"D\u00e9connection\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Faites un Fork sur Github\",\"recent\":\"R\u00e9cent\",\"search\":\"Chercher\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Voir tous nos extraordinaire sponsors &rarr;\",\"my_repositories\":\"Mes d\u00e9p\u00f4ts\"},\"about\":{\"alpha\":\"Ceci est en alpha.\",\"messages\":{\"alpha\":\"S'il vous pla\u00eet ne consid\u00e9rez <strong>pas</strong> ce service comme \u00e9tant stable. Nous sommes loin de \u00e7a! Plus d'infos <a href='https://github.com/travis-ci'>ici.</a>\"},\"join\":\"Joignez-vous \u00e0 nous et aidez-nous!\",\"mailing_list\":\"Liste de distribution\",\"repository\":\"D\u00e9p\u00f4t\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Version\",\"build_matrix\":\"Matrice des versions\",\"commit\":\"Commit\",\"committer\":\"Committeur\",\"compare\":\"Comparer\",\"config\":\"Config\",\"duration\":\"Dur\u00e9e\",\"finished_at\":\"Termin\u00e9 \u00e0\",\"job\":\"T\u00e2che\",\"log\":\"Journal\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"message\":{\"your_repos\":\"Utilisez les boutons ci-dessous pour activer Travis sur vos projets puis d\u00e9ployez sur GitHub.<br />\\nPour tester sur plus de versions de ruby, voir\",\"config\":\"comment configurer des options de version personnalis\u00e9es\"},\"messages\":{\"notice\":\"Pour commencer, veuillez lire notre <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">guide de d\u00e9marrage</a>.\\n <small>Cela ne vous prendra que quelques minutes.</small>\"},\"token\":\"Jeton\",\"your_repos\":\"Vos d\u00e9p\u00f4ts\",\"email\":\"Courriel\",\"update\":\"Modifier\",\"update_locale\":\"Modifier\",\"your_locale\":\"Votre langue\"}},\"statistics\":{\"index\":{\"count\":\"D\u00e9compte\",\"repo_growth\":\"Croissance de d\u00e9p\u00f4t\",\"total_projects\":\"Total des projets/d\u00e9p\u00f4ts\",\"build_count\":\"D\u00e9compte des versions\",\"last_month\":\"mois dernier\",\"total_builds\":\"Total des versions\"}},\"admin\":{\"actions\":{\"create\":\"cr\u00e9er\",\"created\":\"cr\u00e9\u00e9\",\"delete\":\"supprimer\",\"deleted\":\"supprim\u00e9\",\"update\":\"mise \u00e0 jour\",\"updated\":\"mis \u00e0 jour\"},\"credentials\":{\"log_out\":\"D\u00e9connection\"},\"delete\":{\"confirmation\":\"Oui, je suis sure\",\"flash_confirmation\":\"%{name} a \u00e9t\u00e9 d\u00e9truit avec succ\u00e8s\"},\"flash\":{\"error\":\"%{name} n'a pas pu \u00eatre %{action}\",\"noaction\":\"Aucune action n'a \u00e9t\u00e9 entreprise\",\"successful\":\"%{name} a r\u00e9ussi \u00e0 %{action}\"},\"history\":{\"name\":\"Historique\",\"no_activity\":\"Aucune activit\u00e9\",\"page_name\":\"Historique pour %{name}\"},\"list\":{\"add_new\":\"Ajouter un nouveau\",\"delete_action\":\"Supprimer\",\"delete_selected\":\"Supprimer la s\u00e9lection\",\"edit_action\":\"Modifier\",\"search\":\"Rechercher\",\"select\":\"S\u00e9lectionner le %{name} \u00e0 modifier\",\"select_action\":\"S\u00e9lectionner\",\"show_all\":\"Montrer tout\"},\"new\":{\"basic_info\":\"Information de base\",\"cancel\":\"Annuler\",\"chosen\":\"%{name} choisi\",\"chose_all\":\"Choisir tout\",\"clear_all\":\"D\u00e9selectionner tout\",\"many_chars\":\"caract\u00e8res ou moins\",\"one_char\":\"caract\u00e8re.\",\"optional\":\"Optionnel\",\"required\":\"Requis\",\"save\":\"Sauvegarder\",\"save_and_add_another\":\"Sauvegarder et en ajouter un autre\",\"save_and_edit\":\"Sauvegarder et modifier\",\"select_choice\":\"Faites vos choix et cliquez\"},\"dashboard\":{\"add_new\":\"Ajouter un nouveau\",\"last_used\":\"Derni\u00e8re utilisation\",\"model_name\":\"Nom du mod\u00e8le\",\"modify\":\"Modification\",\"name\":\"Tableau de bord\",\"pagename\":\"Administration du site\",\"records\":\"Enregistrements\",\"show\":\"Voir\",\"ago\":\"plus t\u00f4t\"}},\"home\":{\"name\":\"accueil\"},\"repository\":{\"duration\":\"Dur\u00e9e\"},\"devise\":{\"confirmations\":{\"confirmed\":\"Votre compte a \u00e9t\u00e9 cr\u00e9e avec succ\u00e8s. Vous \u00eatre maintenant connect\u00e9.\",\"send_instructions\":\"Vous allez recevoir un courriel avec les instructions de confirmation de votre compte dans quelques minutes.\"},\"failure\":{\"inactive\":\"Votre compte n'a pas encore \u00e9t\u00e9 activ\u00e9.\",\"invalid\":\"Adresse courriel ou mot de passe invalide.\",\"invalid_token\":\"Jeton d'authentification invalide.\",\"locked\":\"Votre compte est bloqu\u00e9.\",\"timeout\":\"Votre session est expir\u00e9e, veuillez vous reconnecter pour continuer.\",\"unauthenticated\":\"Vous devez vous connecter ou vous enregistrer afin de continuer\",\"unconfirmed\":\"Vous devez confirmer votre compte avant de continuer.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instructions de confirmations\"},\"reset_password_instructions\":{\"subject\":\"Instruction de remise \u00e0 z\u00e9ro du mot de passe\"},\"unlock_instructions\":{\"subject\":\"Instruction de d\u00e9bloquage\"}},\"passwords\":{\"send_instructions\":\"Vous recevrez un courriel avec les instructions de remise \u00e0 z\u00e9ro du mot de passe dans quelques minutes.\",\"updated\":\"Votre mot de passe a \u00e9t\u00e9 chang\u00e9 avec succ\u00e8s. Vous \u00eates maintenant connect\u00e9.\"},\"registrations\":{\"destroyed\":\"Au revoir! Votre compte a \u00e9t\u00e9 annul\u00e9 avec succ\u00e8s. Nous esp\u00e9rons vous revoir bient\u00f4t.\",\"signed_up\":\"Vous \u00eates enregistr\u00e9 avec succ\u00e8s. Si activ\u00e9, une confirmation vous a \u00e9t\u00e9 envoy\u00e9 par courriel.\",\"updated\":\"Votre compte a \u00e9t\u00e9 mis a jour avec succ\u00e8s\"},\"sessions\":{\"signed_in\":\"Connect\u00e9 avec succ\u00e8s\",\"signed_out\":\"D\u00e9connect\u00e9 avec succ\u00e8s\"},\"unlocks\":{\"send_instructions\":\"Vous recevrez un courriel contenant les instructions pour d\u00e9bloquer votre compte dans quelques minutes.\",\"unlocked\":\"Votre compte a \u00e9t\u00e9 d\u00e9bloqu\u00e9 avec succ\u00e8s.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"\u00e9tais d\u00e9ja confirm\u00e9\",\"not_found\":\"n'a pas \u00e9t\u00e9 trouv\u00e9\",\"not_locked\":\"n'\u00e9tais pas bloqu\u00e9\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"ja\":\"\u65e5\u672c\u8a9e\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"fr\":\"Fran\u00e7ais\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"ja\":{\"workers\":\"\u30ef\u30fc\u30ab\u30fc\",\"queue\":\"\u30ad\u30e5\u30fc\",\"no_job\":\"\u30b8\u30e7\u30d6\u306f\u3042\u308a\u307e\u305b\u3093\",\"repositories\":{\"branch\":\"\u30d6\u30e9\u30f3\u30c1\",\"image_url\":\"\u753b\u50cfURL\",\"markdown\":\".md\",\"textile\":\".textile\",\"rdoc\":\".rdoc\",\"commit\":\"\u30b3\u30df\u30c3\u30c8\",\"message\":\"\u30e1\u30c3\u30bb\u30fc\u30b8\",\"started_at\":\"\u958b\u59cb\u6642\u523b\",\"duration\":\"\u51e6\u7406\u6642\u9593\",\"finished_at\":\"\u7d42\u4e86\u6642\u523b\",\"tabs\":{\"current\":\"\u6700\u65b0\",\"build_history\":\"\u30d3\u30eb\u30c9\u5c65\u6b74\",\"branches\":\"\u30d6\u30e9\u30f3\u30c1\u307e\u3068\u3081\",\"build\":\"\u30d3\u30eb\u30c9\",\"job\":\"\u30b8\u30e7\u30d6\"}},\"build\":{\"job\":\"\u30b8\u30e7\u30d6\",\"duration\":\"\u51e6\u7406\u6642\u9593\",\"finished_at\":\"\u7d42\u4e86\u6642\u523b\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"\u3053\u306e\u30c6\u30b9\u30c8\u306f\u4ee5\u4e0b\u306e\u30b9\u30dd\u30f3\u30b5\u30fc\u306e\u5354\u529b\u3067\u884c\u3044\u307e\u3057\u305f\u3002\"},\"build_matrix\":\"\u30d3\u30eb\u30c9\u30de\u30c8\u30ea\u30af\u30b9\",\"allowed_failures\":\"\u5931\u6557\u8a31\u5bb9\u7bc4\u56f2\u5185\",\"author\":\"\u5236\u4f5c\u8005\",\"config\":\"\u8a2d\u5b9a\",\"compare\":\"\u6bd4\u8f03\",\"committer\":\"\u30b3\u30df\u30c3\u30c8\u8005\",\"branch\":\"\u30d6\u30e9\u30f3\u30c1\",\"commit\":\"\u30b3\u30df\u30c3\u30c8\",\"message\":\"\u30e1\u30c3\u30bb\u30fc\u30b8\",\"started_at\":\"\u958b\u59cb\u6642\u523b\",\"duration\":\"\u51e6\u7406\u6642\u9593\",\"finished_at\":\"\u7d42\u4e86\u6642\u523b\"},\"builds\":{\"name\":\"\u30d3\u30eb\u30c9\",\"messages\":{\"sponsored_by\":\"\u3053\u306e\u30c6\u30b9\u30c8\u306f\u4ee5\u4e0b\u306e\u30b9\u30dd\u30f3\u30b5\u30fc\u306e\u5354\u529b\u3067\u884c\u3044\u307e\u3057\u305f\u3002\"},\"build_matrix\":\"\u5931\u6557\u8a31\u5bb9\u7bc4\u56f2\u5916\",\"allowed_failures\":\"\u5931\u6557\u8a31\u5bb9\u7bc4\u56f2\u5185\",\"author\":\"\u5236\u4f5c\u8005\",\"config\":\"\u8a2d\u5b9a\",\"compare\":\"\u6bd4\u8f03\",\"committer\":\"\u30b3\u30df\u30c3\u30c8\u8005\",\"branch\":\"\u30d6\u30e9\u30f3\u30c1\",\"commit\":\"\u30b3\u30df\u30c3\u30c8\",\"message\":\"\u30e1\u30c3\u30bb\u30fc\u30b8\",\"started_at\":\"\u958b\u59cb\u6642\u523b\",\"duration\":\"\u51e6\u7406\u6642\u9593\",\"finished_at\":\"\u7d42\u4e86\u6642\u523b\"},\"layouts\":{\"about\":{\"alpha\":\"\u307e\u3060\u30a2\u30eb\u30d5\u30a1\u3067\u3059\u3088\uff01\",\"join\":\"\u53c2\u52a0\u3057\u3066\u307f\u3088\u3046\uff01\",\"mailing_list\":\"\u30e1\u30fc\u30eb\u30ea\u30b9\u30c8\",\"messages\":{\"alpha\":\"Travis-ci\u306f\u5b89\u5b9a\u3057\u305f\u30b5\u30fc\u30d3\u30b9\u307e\u3067\u5f8c\u4e00\u6b69\uff01\u8a73\u3057\u304f\u306f<a href='https://github.com/travis-ci'>\u3053\u3061\u3089</a>\"},\"repository\":\"\u30ea\u30dd\u30b8\u30c8\u30ea\",\"twitter\":\"\u30c4\u30a4\u30c3\u30bf\u30fc\"},\"application\":{\"fork_me\":\"Github\u3067\u30d5\u30a9\u30fc\u30af\u3057\u3088\u3046\",\"my_repositories\":\"\u30de\u30a4\u30ea\u30dd\u30b8\u30c8\u30ea\",\"recent\":\"\u6700\u8fd1\",\"search\":\"\u691c\u7d22\",\"sponsers\":\"\u30b9\u30dd\u30f3\u30b5\u30fc\",\"sponsors_link\":\"\u30b9\u30dd\u30f3\u30b5\u30fc\u3092\u3082\u3063\u3068\u898b\u308b &rarr;\"},\"top\":{\"blog\":\"\u30d6\u30ed\u30b0\",\"docs\":\"Travis\u3068\u306f\uff1f\",\"github_login\":\"Github\u3067\u30ed\u30b0\u30a4\u30f3\",\"home\":\"\u30db\u30fc\u30e0\",\"profile\":\"\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\",\"sign_out\":\"\u30ed\u30b0\u30a2\u30a6\u30c8\",\"stats\":\"\u7d71\u8a08\",\"admin\":\"\u7ba1\u7406\"},\"mobile\":{\"author\":\"\u5236\u4f5c\u8005\",\"build\":\"\u30d3\u30eb\u30c9\",\"build_matrix\":\"\u30d3\u30eb\u30c9\u30de\u30c8\u30ea\u30af\u30b9\",\"commit\":\"\u30b3\u30df\u30c3\u30c8\",\"committer\":\"\u30b3\u30df\u30c3\u30c8\u8005\",\"compare\":\"\u6bd4\u8f03\",\"config\":\"\u8a2d\u5b9a\",\"duration\":\"\u51e6\u7406\u6642\u9593\",\"finished_at\":\"\u7d42\u4e86\u6642\u523b\",\"job\":\"\u30b8\u30e7\u30d6\",\"log\":\"\u30ed\u30b0\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"email\":\"\u30e1\u30fc\u30eb\",\"message\":{\"config\":\"\u8a73\u7d30\u8a2d\u5b9a\",\"your_repos\":\"\u4ee5\u4e0b\u306e\u30b9\u30a4\u30c3\u30c1\u3092\u8a2d\u5b9a\u3057\u3001Travis-ci\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u3002Github\u3078\u30d7\u30c3\u30b7\u30e5\u3057\u305f\u3089\u30d3\u30eb\u30c9\u306f\u81ea\u52d5\u7684\u306b\u958b\u59cb\u3057\u307e\u3059\u3002\u8907\u6570\u30d0\u30fc\u30b7\u30e7\u30f3\u3084\u7d30\u304b\u3044\u8a2d\u5b9a\u306f\u3053\u3061\u3089\u3078\uff1a\"},\"messages\":{\"notice\":\"\u307e\u305a\u306f<a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Travis\u306e\u306f\u3058\u3081\u65b9</a>\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\"},\"token\":\"\u30c8\u30fc\u30af\u30f3\",\"your_repos\":\"\u30ea\u30dd\u30b8\u30c8\u30ea\",\"update\":\"\u66f4\u65b0\",\"update_locale\":\"\u66f4\u65b0\",\"your_locale\":\"\u8a00\u8a9e\u8a2d\u5b9a\"}},\"statistics\":{\"index\":{\"build_count\":\"\u30d3\u30eb\u30c9\u6570\",\"count\":\"\u6570\",\"last_month\":\"\u5148\u6708\",\"repo_growth\":\"\u30ea\u30dd\u30b8\u30c8\u30ea\",\"total_builds\":\"\u5408\u8a08\u30d3\u30eb\u30c9\u6570\",\"total_projects\":\"\u5408\u8a08\u30ea\u30dd\u30b8\u30c8\u30ea\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"nb\":{\"admin\":{\"actions\":{\"create\":\"opprett\",\"created\":\"opprettet\",\"delete\":\"slett\",\"deleted\":\"slettet\",\"update\":\"oppdater\",\"updated\":\"oppdatert\"},\"credentials\":{\"log_out\":\"Logg ut\"},\"dashboard\":{\"add_new\":\"Legg til ny\",\"ago\":\"siden\",\"last_used\":\"Sist brukt\",\"model_name\":\"Modell\",\"modify\":\"Rediger\",\"name\":\"Dashbord\",\"pagename\":\"Nettstedsadministrasjon\",\"records\":\"Oppf\u00f8ringer\",\"show\":\"Vis\"},\"delete\":{\"confirmation\":\"Ja, jeg er sikker\",\"flash_confirmation\":\"%{name} ble slettet\"},\"flash\":{\"error\":\"%{name} kunne ikke bli %{action}\",\"noaction\":\"Ingen handlinger ble utf\u00f8rt\",\"successful\":\"%{name} ble %{action}\"},\"history\":{\"name\":\"Logg\",\"no_activity\":\"Ingen aktivitet\",\"page_name\":\"Logg for %{name}\"},\"list\":{\"add_new\":\"Legg til ny\",\"delete_action\":\"Slett\",\"delete_selected\":\"Slett valgte\",\"edit_action\":\"Rediger\",\"search\":\"S\u00f8k\",\"select\":\"Velg %{name} for \u00e5 redigere\",\"select_action\":\"Velg\",\"show_all\":\"Vis alle \"},\"new\":{\"basic_info\":\"Basisinformasjon\",\"cancel\":\"Avbryt\",\"chosen\":\"Valgt %{name}\",\"chose_all\":\"Velg alle\",\"clear_all\":\"Fjern alle\",\"many_chars\":\"eller f\u00e6rre tegn.\",\"one_char\":\"tegn.\",\"optional\":\"Valgfri\",\"required\":\"P\u00e5krevd\",\"save\":\"Lagre\",\"save_and_add_another\":\"Lagre og legg til ny\",\"save_and_edit\":\"Lagre og rediger\",\"select_choice\":\"Kryss av for dine valg og klikk\"}},\"build\":{\"duration\":\"Varighet\",\"finished_at\":\"Fullf\u00f8rt\",\"job\":\"Jobb\"},\"builds\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullf\u00f8rt\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testen ble kj\u00f8rt p\u00e5 en maskin sponset av\"},\"name\":\"Jobb\",\"started_at\":\"Startet\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} time\",\"other\":\"%{count} timer\"},\"minutes_exact\":{\"one\":\"%{count} minutt\",\"other\":\"%{count} minutter\"},\"seconds_exact\":{\"one\":\"%{count} sekund\",\"other\":\"%{count} sekunder\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Din konto er aktivert og du er n\u00e5 innlogget.\",\"send_instructions\":\"Om noen f\u00e5 minutter s\u00e5 vil du f\u00e5 en e-post med informasjon om hvordan du bekrefter kontoen din.\"},\"failure\":{\"inactive\":\"Kontoen din har ikke blitt aktivert enda.\",\"invalid\":\"Ugyldig e-post eller passord.\",\"invalid_token\":\"Ugyldig autentiseringskode.\",\"locked\":\"Kontoen din er l\u00e5st.\",\"timeout\":\"Du ble logget ut siden p\u00e5 grunn av mangel p\u00e5 aktivitet, vennligst logg inn p\u00e5 nytt.\",\"unauthenticated\":\"Du m\u00e5 logge inn eller registrere deg for \u00e5 fortsette.\",\"unconfirmed\":\"Du m\u00e5 bekrefte kontoen din f\u00f8r du kan fortsette.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bekreftelsesinformasjon\"},\"reset_password_instructions\":{\"subject\":\"Instruksjoner for \u00e5 f\u00e5 nytt passord\"},\"unlock_instructions\":{\"subject\":\"Oppl\u00e5sningsinstruksjoner\"}},\"passwords\":{\"send_instructions\":\"Om noen f\u00e5 minutter s\u00e5 vil du f\u00e5 en epost med informasjon om hvordan du kan f\u00e5 et nytt passord.\",\"updated\":\"Passordet ditt ble endret, og du er logget inn.\"},\"registrations\":{\"destroyed\":\"Adj\u00f8! Kontoen din ble kansellert. Vi h\u00e5per vi ser deg igjen snart.\",\"signed_up\":\"Du er n\u00e5 registrert.\",\"updated\":\"Kontoen din ble oppdatert.\"},\"sessions\":{\"signed_in\":\"Du er n\u00e5 logget inn.\",\"signed_out\":\"Du er n\u00e5 logget ut.\"},\"unlocks\":{\"send_instructions\":\"Om noen f\u00e5 minutter s\u00e5 kommer du til \u00e5 f\u00e5 en e-post med informasjon om hvordan du kan l\u00e5se opp kontoen din.\",\"unlocked\":\"Kontoen din ble l\u00e5st opp, og du er n\u00e5 logget inn igjen.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"har allerede blitt bekreftet\",\"not_found\":\"ikke funnnet\",\"not_locked\":\"var ikke l\u00e5st\"}},\"home\":{\"name\":\"hjem\"},\"jobs\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullf\u00f8rt\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testserien ble kj\u00f8rt p\u00e5 en maskin sponset av\"},\"started_at\":\"Startet\"},\"layouts\":{\"about\":{\"alpha\":\"Dette er alfa-greier.\",\"join\":\"Bli med og hjelp oss!\",\"mailing_list\":\"E-postliste\",\"messages\":{\"alpha\":\"Dette er <strong>ikke</strong> en stabil tjeneste. Vi har fremdeles et stykke igjen! Mer informasjon finner du <a href=\\\"https://github.com/travis-ci\\\">her</a>.\"},\"repository\":\"Kodelager\",\"twitter\":\"Twitter.\"},\"application\":{\"fork_me\":\"Se koden p\u00e5 Github\",\"my_repositories\":\"Mine kodelagre\",\"recent\":\"Nylig\",\"search\":\"S\u00f8k\",\"sponsers\":\"Sponsorer\",\"sponsors_link\":\"Se alle de flotte sponsorene v\u00e5re &rarr;\"},\"mobile\":{\"author\":\"Forfatter\",\"build\":\"Jobb\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullf\u00f8rt\",\"job\":\"Jobb\",\"log\":\"Logg\"},\"top\":{\"admin\":\"Administrator\",\"blog\":\"Blogg\",\"docs\":\"Dokumentasjon\",\"github_login\":\"Logg inn med Github\",\"home\":\"Hjem\",\"profile\":\"Profil\",\"sign_out\":\"Logg ut\",\"stats\":\"Statistikk\"}},\"no_job\":\"Ingen jobber finnnes\",\"profiles\":{\"show\":{\"email\":\"E-post\",\"github\":\"Github\",\"message\":{\"config\":\"hvordan sette opp egne jobbinnstillinger\",\"your_repos\":\"Sl\u00e5\\u0010 p\u00e5 Travis for prosjektene dine ved \u00e5 dra i bryterne under, og send koden til Github.<br />\\nFor \u00e5 teste mot flere ruby-versjoner, se dokumentasjonen for\"},\"messages\":{\"notice\":\"For \u00e5 komme i gang, vennligst les <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">kom-i-gang-veivisereren</a> v\u00e5r. <small>Det tar bare et par minutter.</small>\"},\"token\":\"Kode\",\"update\":\"Oppdater\",\"update_locale\":\"Oppdater\",\"your_locale\":\"Ditt spr\u00e5k\",\"your_repos\":\"Dine kodelagre\"}},\"queue\":\"K\u00f8\",\"repositories\":{\"branch\":\"Gren\",\"commit\":\"Innsender\",\"duration\":\"Varighet\",\"finished_at\":\"Fullf\u00f8rt\",\"image_url\":\"Bilde-URL\",\"markdown\":\"Markdown\",\"message\":\"Beskrivelse\",\"rdoc\":\"RDOC\",\"started_at\":\"Startet\",\"tabs\":{\"branches\":\"Grensammendrag\",\"build\":\"Jobb\",\"build_history\":\"Jobblogg\",\"current\":\"Siste\",\"job\":\"Jobb\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Varighet\"},\"statistics\":{\"index\":{\"build_count\":\"Antall jobber\",\"count\":\"Antall\",\"last_month\":\"siste m\u00e5ned\",\"repo_growth\":\"Vekst i kodelager\",\"total_builds\":\"Totale jobber\",\"total_projects\":\"Antall prosjekter/kodelagre\"}},\"workers\":\"Arbeidere\",\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"ja\":\"\u65e5\u672c\u8a9e\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"fr\":\"Fran\u00e7ais\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"nl\":{\"admin\":{\"actions\":{\"create\":\"aanmaken\",\"created\":\"aangemaakt\",\"delete\":\"verwijderen\",\"deleted\":\"verwijderd\",\"update\":\"bijwerken\",\"updated\":\"bijgewerkt\"},\"credentials\":{\"log_out\":\"Afmelden\"},\"dashboard\":{\"add_new\":\"Nieuwe toevoegen\",\"ago\":\"geleden\",\"last_used\":\"Laatst gebruikt\",\"model_name\":\"Model naam\",\"modify\":\"Wijzigen\",\"pagename\":\"Site administratie\",\"show\":\"Laten zien\",\"records\":\"Gegevens\"},\"delete\":{\"confirmation\":\"Ja, ik ben zeker\",\"flash_confirmation\":\"%{name} is vernietigd\"},\"flash\":{\"error\":\"%{name} kon niet worden %{action}\",\"noaction\":\"Er zijn geen acties genomen\",\"successful\":\"%{name} is %{action}\"},\"history\":{\"name\":\"Geschiedenis\",\"no_activity\":\"Geen activiteit\",\"page_name\":\"Geschiedenis van %{name}\"},\"list\":{\"add_new\":\"Nieuwe toevoegen\",\"delete_action\":\"Verwijderen\",\"delete_selected\":\"Verwijder geselecteerden\",\"edit_action\":\"Bewerken\",\"search\":\"Zoeken\",\"select\":\"Selecteer %{name} om te bewerken\",\"select_action\":\"Selecteer\",\"show_all\":\"Laat allen zien\"},\"new\":{\"basic_info\":\"Basisinfo\",\"cancel\":\"Annuleren\",\"chosen\":\"%{name} gekozen\",\"chose_all\":\"Kies allen\",\"clear_all\":\"Deselecteer allen\",\"many_chars\":\"tekens of minder.\",\"one_char\":\"teken.\",\"optional\":\"Optioneel\",\"required\":\"Vereist\",\"save\":\"Opslaan\",\"save_and_add_another\":\"Opslaan en een nieuwe toevoegen\",\"save_and_edit\":\"Opslaan en bewerken\",\"select_choice\":\"Selecteer uw keuzes en klik\"}},\"build\":{\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"job\":\"Taak\"},\"builds\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw Matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze tests zijn gedraaid op een machine gesponsord door\"},\"name\":\"Bouw\",\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} uur\",\"other\":\"%{count} uren\"},\"minutes_exact\":{\"one\":\"%{count} minuut\",\"other\":\"%{count} minuten\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} seconden\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Uw account is bevestigd. U wordt nu ingelogd.\",\"send_instructions\":\"Binnen enkele minuten zal u een email ontvangen met instructies om uw account te bevestigen.\"},\"failure\":{\"inactive\":\"Uw account is nog niet geactiveerd.\",\"invalid\":\"Ongeldig email adres of wachtwoord.\",\"invalid_token\":\"Ongeldig authenticatie token.\",\"locked\":\"Uw account is vergrendeld.\",\"timeout\":\"Uw sessie is verlopen, gelieve opnieuw in te loggen om verder te gaan.\",\"unauthenticated\":\"U moet inloggen of u registeren voordat u verder gaat.\",\"unconfirmed\":\"U moet uw account bevestigen voordat u verder gaat.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bevestigings-instructies\"},\"reset_password_instructions\":{\"subject\":\"Wachtwoord herstel instructies\"},\"unlock_instructions\":{\"subject\":\"Ontgrendel-instructies\"}},\"passwords\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw wachtwoord opnieuw in te stellen.\",\"updated\":\"Uw wachtwoord is veranderd. U wordt nu ingelogd.\"},\"registrations\":{\"destroyed\":\"Dag! Uw account is geannuleerd. We hopen u vlug terug te zien.\",\"signed_up\":\"Uw registratie is voltooid. Als het ingeschakeld is wordt een bevestiging naar uw email adres verzonden.\",\"updated\":\"Het bijwerken van uw account is gelukt.\"},\"sessions\":{\"signed_in\":\"Inloggen gelukt.\",\"signed_out\":\"Uitloggen gelukt.\"},\"unlocks\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw account te ontgrendelen.\",\"unlocked\":\"Uw account is ontgrendeld. U wordt nu ingelogd.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"was al bevestigd\",\"not_found\":\"niet gevonden\",\"not_locked\":\"was niet vergrendeld\"}},\"jobs\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze testen zijn uitgevoerd op een machine gesponsord door\"},\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"layouts\":{\"about\":{\"alpha\":\"Dit is in alfa-stadium.\",\"join\":\"Doe met ons mee en help!\",\"mailing_list\":\"Mailing lijst\",\"messages\":{\"alpha\":\"Gelieve deze service <strong>niet</strong> te beschouwen als stabiel. Daar zijn we nog lang niet! Meer info <a href='https://github.com/travis-ci'>hier.</a>\"},\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Maak een fork op Github\",\"my_repositories\":\"Mijn repositories\",\"recent\":\"Recent\",\"search\":\"Zoeken\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Bekijk al onze geweldige sponsors &rarr;\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Bouw\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid op\",\"job\":\"Taak\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"log\":\"Logboek\"},\"top\":{\"admin\":\"Administratie\",\"blog\":\"Blog\",\"docs\":\"Documentatie\",\"github_login\":\"Inloggen met Github\",\"home\":\"Home\",\"profile\":\"Profiel\",\"sign_out\":\"Uitloggen\",\"stats\":\"Statistieken\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"pt-BR\":\"portugu\u00eas brasileiro\"},\"no_job\":\"Er zijn geen taken\",\"profiles\":{\"show\":{\"email\":\"Email adres\",\"github\":\"Github\",\"message\":{\"config\":\"hoe eigen bouw-opties in te stellen\",\"your_repos\":\"Zet de schakelaars hieronder aan om de Travis hook voor uw projecten te activeren en push daarna naar Github<br />\\nOm te testen tegen meerdere rubies, zie\"},\"messages\":{\"notice\":\"Om te beginnen kunt u onze <a href=\\\\\\\"http://about.travis-ci.org/docs/user/getting-started/\\\\\\\">startersgids</a> lezen.\\\\n <small>Het zal maar enkele minuten van uw tijd vergen.</small>\"},\"update\":\"Bijwerken\",\"update_locale\":\"Bijwerken\",\"your_locale\":\"Uw taal\",\"your_repos\":\"Uw repositories\",\"token\":\"Token\"}},\"queue\":\"Wachtrij\",\"repositories\":{\"branch\":\"Tak\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"image_url\":\"Afbeeldings URL\",\"message\":\"Bericht\",\"started_at\":\"Gestart\",\"tabs\":{\"branches\":\"Tak samenvatting\",\"build\":\"Bouw\",\"build_history\":\"Bouw geschiedenis\",\"current\":\"Huidig\",\"job\":\"Taak\"},\"commit\":\"Commit\",\"markdown\":\"Markdown\",\"rdoc\":\"RDOC\",\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Duur\"},\"statistics\":{\"index\":{\"build_count\":\"Bouw aantal\",\"count\":\"Aantal\",\"last_month\":\"voorbije maand\",\"repo_growth\":\"Repository groei\",\"total_builds\":\"Bouw totaal\",\"total_projects\":\"Projecten/Repository totaal\"}},\"workers\":\"Machines\",\"home\":{\"name\":\"Hoofdpagina\"}},\"pl\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} godzina\",\"other\":\"%{count} godziny\"},\"minutes_exact\":{\"one\":\"%{count} minuta\",\"other\":\"%{count} minuty\"},\"seconds_exact\":{\"one\":\"%{count} sekunda\",\"other\":\"%{count} sekundy\"}}},\"workers\":\"Workers\",\"queue\":\"Kolejka\",\"no_job\":\"Brak zada\u0144\",\"repositories\":{\"branch\":\"Ga\u0142\u0105\u017a\",\"image_url\":\"URL obrazka\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpocz\u0119to\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zako\u0144czono\",\"tabs\":{\"current\":\"Aktualny\",\"build_history\":\"Historia Build\u00f3w\",\"branches\":\"Wszystkie Ga\u0142\u0119zie\",\"build\":\"Build\",\"job\":\"Zadanie\"}},\"build\":{\"job\":\"Zadanie\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zako\u0144czono\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Te testy zosta\u0142y uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Build\u00f3w\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Por\u00f3wnanie\",\"committer\":\"Committer\",\"branch\":\"Ga\u0142\u0105\u017a\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpocz\u0119to\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zako\u0144czono\",\"sponsored_by\":\"Te testy zosta\u0142y uruchomione na maszynie sponsorowanej przez\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Te testy zosta\u0142y uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Build\u00f3w\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Por\u00f3wnanie\",\"committer\":\"Komituj\u0105cy\",\"branch\":\"Ga\u0142\u0105\u017a\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpocz\u0119to\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zako\u0144czono\"},\"layouts\":{\"top\":{\"home\":\"Start\",\"blog\":\"Blog\",\"docs\":\"Dokumentacja\",\"stats\":\"Statystki\",\"github_login\":\"Zaloguj si\u0119 przy pomocy Githuba\",\"profile\":\"Profil\",\"sign_out\":\"Wyloguj si\u0119\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Ostatnie\",\"search\":\"Wyniki\",\"sponsers\":\"Sponsorzy\",\"sponsors_link\":\"Zobacz naszych wszystkich wspania\u0142ych sponsor\u00f3w &rarr;\",\"my_repositories\":\"Moje repozytoria\"},\"about\":{\"alpha\":\"To wci\u0105\u017c jest wersja alpha.\",\"messages\":{\"alpha\":\"Prosz\u0119 <strong>nie</strong> traktuj tego jako stabilnej us\u0142ugi. Wci\u0105\u017c nam wiele do tego brakuje! Wi\u0119cej informacji znajdziesz <a href='https://github.com/travis-ci'>tutaj.</a>\"},\"join\":\"Pom\u00f3\u017c i do\u0142\u0105cz do nas!\",\"mailing_list\":\"Lista mailingowa\",\"repository\":\"Repozytorium\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Macierz Build\u00f3w\",\"commit\":\"Commit\",\"committer\":\"Komituj\u0105cy\",\"compare\":\"Por\u00f3wnianie\",\"config\":\"Konfiguracja\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zako\u0144czono\",\"job\":\"Zadanie\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\" Przesu\u0144 suwak poni\u017cej, aby w\u0142\u0105czy\u0107 Travisa, dla twoich projekt\u00f3w, a nast\u0119pnie umie\u015b\u0107 sw\u00f3j kod na GitHubie.<br />\\n Aby testowa\u0107 sw\u00f3j kod przy u\u017cyciu wielu wersji Rubiego, zobacz\",\"config\":\"jak skonfigurowa\u0107 niestandardowe opcje builda\"},\"messages\":{\"notice\":\"Aby zacz\u0105\u0107, przeczytaj nasz <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Przewodnik </a>.\\n <small>Zajmie ci to tylko kilka minut.</small>\"},\"token\":\"Token\",\"your_repos\":\"Twoje repozytoria\"}},\"statistics\":{\"index\":{\"count\":\"Ilo\u015b\u0107\",\"repo_growth\":\"Przyrost repozytori\u00f3w\",\"total_projects\":\"\u0141\u0105cznie projekt\u00f3w/repozytori\u00f3w\",\"build_count\":\"Liczba build\u00f3w\",\"last_month\":\"ostatni miesi\u0105c\",\"total_builds\":\"\u0141\u0105cznie Build\u00f3w\"}},\"date\":{\"abbr_day_names\":[\"nie\",\"pon\",\"wto\",\"\u015bro\",\"czw\",\"pi\u0105\",\"sob\"],\"abbr_month_names\":[\"sty\",\"lut\",\"mar\",\"kwi\",\"maj\",\"cze\",\"lip\",\"sie\",\"wrz\",\"pa\u017a\",\"lis\",\"gru\"],\"day_names\":[\"niedziela\",\"poniedzia\u0142ek\",\"wtorek\",\"\u015broda\",\"czwartek\",\"pi\u0105tek\",\"sobota\"],\"formats\":{\"default\":\"%d-%m-%Y\",\"long\":\"%B %d, %Y\",\"short\":\"%d %b\"},\"month_names\":[\"stycze\u0144\",\"luty\",\"marzec\",\"kwiecie\u0144\",\"maj\",\"czerwiec\",\"lipiec\",\"sierpie\u0144\",\"wrzesie\u0144\",\"pa\u017adziernik\",\"listopad\",\"grudzie\u0144\"],\"order\":[\"day\",\"month\",\"year\"]},\"errors\":{\"format\":\"%{attribute} %{message}\",\"messages\":{\"accepted\":\"musi zosta\u0107 zaakceptowane\",\"blank\":\"nie mo\u017ce by\u0107 puste\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"ja\":\"\u65e5\u672c\u8a9e\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"fr\":\"Fran\u00e7ais\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"pt-BR\":{\"admin\":{\"actions\":{\"create\":\"criar\",\"created\":\"criado\",\"delete\":\"deletar\",\"deleted\":\"deletado\",\"update\":\"atualizar\",\"updated\":\"atualizado\"},\"credentials\":{\"log_out\":\"Deslogar\"},\"dashboard\":{\"add_new\":\"Adicionar novo\",\"ago\":\"atr\u00e1s\",\"last_used\":\"\u00daltima utiliza\u00e7\u00e3o\",\"model_name\":\"Nome do modelo\",\"modify\":\"Modificar\",\"name\":\"Dashboard\",\"pagename\":\"Administra\u00e7\u00e3o do site\",\"records\":\"Registros\",\"show\":\"Mostrar\"},\"delete\":{\"confirmation\":\"Sim, tenho certeza\",\"flash_confirmation\":\"%{name} foi destru\u00eddo com sucesso\"},\"flash\":{\"error\":\"%{name} falhou ao %{action}\",\"noaction\":\"Nenhuma a\u00e7\u00e3o foi tomada\",\"successful\":\"%{name} foi %{action} com sucesso\"},\"history\":{\"name\":\"Hist\u00f3rico\",\"no_activity\":\"Nenhuma Atividade\",\"page_name\":\"Hist\u00f3rico para %{name}\"},\"list\":{\"add_new\":\"Adicionar novo\",\"delete_action\":\"Deletar\",\"delete_selected\":\"Deletar selecionados\",\"edit_action\":\"Editar\",\"search\":\"Buscar\",\"select\":\"Selecionar %{name} para editar\",\"select_action\":\"Selecionar\",\"show_all\":\"Mostrar todos\"},\"new\":{\"basic_info\":\"Informa\u00e7\u00f5es b\u00e1sicas\",\"cancel\":\"Cancelar\",\"chosen\":\"Escolhido %{name}\",\"chose_all\":\"Escolher todos\",\"clear_all\":\"Limpar todos\",\"many_chars\":\"caracteres ou menos.\",\"one_char\":\"caractere.\",\"optional\":\"Opcional\",\"required\":\"Requerido\",\"save\":\"Salvar\",\"save_and_add_another\":\"Salvar e adicionar outro\",\"save_and_edit\":\"Salvar e alterar\",\"select_choice\":\"Selecione e clique\"}},\"build\":{\"duration\":\"Dura\u00e7\u00e3o\",\"finished_at\":\"Conclu\u00eddo em\",\"job\":\"Trabalho\"},\"builds\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Dura\u00e7\u00e3o\",\"finished_at\":\"Conclu\u00eddo em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta s\u00e9rie de testes foi executada em uma caixa de processos patrocinada por\"},\"name\":\"Build\",\"started_at\":\"Iniciou em\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Sua conta foi confirmada com sucesso. Voc\u00ea agora est\u00e1 logado.\",\"send_instructions\":\"Voc\u00ea receber\u00e1 um email com instru\u00e7\u00f5es de como confirmar sua conta em alguns minutos.\"},\"failure\":{\"inactive\":\"Sua conta ainda n\u00e3o foi ativada.\",\"invalid\":\"Email ou senha inv\u00e1lidos.\",\"invalid_token\":\"Token de autentica\u00e7\u00e3o inv\u00e1lido.\",\"locked\":\"Sua conta est\u00e1 trancada.\",\"timeout\":\"Sua sess\u00e3o expirou, por favor fa\u00e7a seu login novamente.\",\"unauthenticated\":\"Voc\u00ea precisa fazer o login ou cadastrar-se antes de continuar.\",\"unconfirmed\":\"Voc\u00ea precisa confirmar sua conta antes de continuar.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instru\u00e7\u00f5es de confirma\u00e7\u00e3o\"},\"reset_password_instructions\":{\"subject\":\"Instru\u00e7\u00f5es de atualiza\u00e7\u00e3o de senha\"},\"unlock_instructions\":{\"subject\":\"Instru\u00e7\u00f5es de destrancamento\"}},\"passwords\":{\"send_instructions\":\"Voc\u00ea receber\u00e1 um email com instru\u00e7\u00f5es de como atualizar sua senha em alguns minutos.\",\"updated\":\"Sua senha foi alterada com sucesso. Voc\u00ea agora est\u00e1 logado.\"},\"registrations\":{\"destroyed\":\"Tchau! Sua conta foi cancelada com sucesso. Esperamos v\u00ea-lo novamente em breve!\",\"signed_up\":\"Voc\u00ea se cadastrou com sucesso. Se ativada, uma confirma\u00e7\u00e3o foi enviada para seu email.\",\"updated\":\"Voc\u00ea atualizou sua conta com sucesso.\"},\"sessions\":{\"signed_in\":\"Logado com sucesso.\",\"signed_out\":\"Deslogado com sucesso.\"},\"unlocks\":{\"send_instructions\":\"Voc\u00ea receber\u00e1 um email com instru\u00e7\u00f5es de como destrancar sua conta em alguns minutos.\",\"unlocked\":\"Sua conta foi destrancada com sucesso. Voc\u00ea agora est\u00e1 logado.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"j\u00e1 foi confirmado\",\"not_found\":\"n\u00e3o encontrado\",\"not_locked\":\"n\u00e3o estava trancado\"}},\"home\":{\"name\":\"home\"},\"jobs\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Dura\u00e7\u00e3o\",\"finished_at\":\"Conclu\u00eddo em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta s\u00e9rie de testes foi executada em uma caixa de processos patrocinada por\"},\"started_at\":\"Iniciou em\"},\"layouts\":{\"about\":{\"alpha\":\"Isto \u00e9 um alpha.\",\"join\":\"Junte-se \u00e0 n\u00f3s e ajude!\",\"mailing_list\":\"Lista de email\",\"messages\":{\"alpha\":\"Por favor, <strong>n\u00e3o</strong> considere isto um servi\u00e7o est\u00e1vel. Estamos muito longe disso! Mais informa\u00e7\u00f5es <a href='https://github.com/travis-ci'>aqui.</a>\"},\"repository\":\"Reposit\u00f3rio\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Fa\u00e7a fork no Github\",\"my_repositories\":\"Meus Reposit\u00f3rios\",\"recent\":\"Recentes\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Conhe\u00e7a todos os nossos patrocinadores &rarr;\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Dura\u00e7\u00e3o\",\"finished_at\":\"Conclu\u00eddo em\",\"job\":\"Trabalho\",\"log\":\"Log\"},\"top\":{\"admin\":\"Admin\",\"blog\":\"Blog\",\"docs\":\"Documenta\u00e7\u00e3o\",\"github_login\":\"Logue com o Github\",\"home\":\"Home\",\"profile\":\"Perfil\",\"sign_out\":\"Sair\",\"stats\":\"Estat\u00edsticas\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"pt-BR\":\"portugu\u00eas brasileiro\"},\"no_job\":\"N\u00e3o h\u00e1 trabalhos\",\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"config\":\"como configurar op\u00e7\u00f5es de build\",\"your_repos\":\"Use os bot\u00f5es abaixo para ligar ou desligar o hook de servi\u00e7o do Travis para seus projetos, e ent\u00e3o, fa\u00e7a um push para o Github.<br />Para testar com m\u00faltiplas vers\u00f5es do Ruby, leia\"},\"messages\":{\"notice\":\"Para come\u00e7ar, leia nosso <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Guia de in\u00edcio</a>. <small>S\u00f3 leva alguns minutinhos.</small>\"},\"token\":\"Token\",\"update\":\"Atualizar\",\"update_locale\":\"Atualizar\",\"your_locale\":\"Sua l\u00edngua\",\"your_repos\":\"Seus Reposit\u00f3rios\"}},\"queue\":\"Fila\",\"repositories\":{\"branch\":\"Branch\",\"commit\":\"Commit\",\"duration\":\"Dura\u00e7\u00e3o\",\"finished_at\":\"Conclu\u00eddo em\",\"image_url\":\"URL da imagem\",\"markdown\":\"Markdown\",\"message\":\"Mensagem\",\"rdoc\":\"RDOC\",\"started_at\":\"Iniciou em\",\"tabs\":{\"branches\":\"Sum\u00e1rio do Branch\",\"build\":\"Build\",\"build_history\":\"Hist\u00f3rico de Build\",\"current\":\"Atual\",\"job\":\"Trabalho\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Dura\u00e7\u00e3o\"},\"statistics\":{\"index\":{\"build_count\":\"N\u00famero de Builds\",\"count\":\"N\u00famero\",\"last_month\":\"\u00faltimo m\u00eas\",\"repo_growth\":\"Crescimento de Reposit\u00f3rio\",\"total_builds\":\"Total de Builds\",\"total_projects\":\"Total de Projetos/Reposit\u00f3rios\"}},\"workers\":\"Processos\"},\"ru\":{\"admin\":{\"actions\":{\"create\":\"\u0441\u043e\u0437\u0434\u0430\u0442\u044c\",\"created\":\"\u0441\u043e\u0437\u0434\u0430\u043d\u043e\",\"delete\":\"\u0443\u0434\u0430\u043b\u0438\u0442\u044c\",\"deleted\":\"\u0443\u0434\u0430\u043b\u0435\u043d\u043e\",\"update\":\"\u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\",\"updated\":\"\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e\"},\"credentials\":{\"log_out\":\"\u0412\u044b\u0445\u043e\u0434\"},\"dashboard\":{\"add_new\":\"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\",\"ago\":\"\u043d\u0430\u0437\u0430\u0434\",\"last_used\":\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437\",\"model_name\":\"\u0418\u043c\u044f \u043c\u043e\u0434\u0435\u043b\u0438\",\"modify\":\"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c\",\"name\":\"\u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\",\"pagename\":\"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u043e\u043c\",\"records\":\"\u0417\u0430\u043f\u0438\u0441\u0438\",\"show\":\"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\"},\"delete\":{\"confirmation\":\"\u0414\u0430, \u044f \u0443\u0432\u0435\u0440\u0435\u043d\",\"flash_confirmation\":\"%{name} \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043e\"},\"history\":{\"name\":\"\u0418\u0441\u0442\u043e\u0440\u0438\u044f\",\"no_activity\":\"\u041d\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438\",\"page_name\":\"\u0418\u0441\u0442\u043e\u0440\u0438\u044f %{name}\"},\"list\":{\"add_new\":\"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\",\"delete_action\":\"\u0423\u0434\u0430\u043b\u0438\u0442\u044c\",\"delete_selected\":\"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435\",\"edit_action\":\"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\",\"search\":\"\u041f\u043e\u0438\u0441\u043a\",\"select\":\"\u0414\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 %{name}\",\"select_action\":\"\u0412\u044b\u0431\u0440\u0430\u0442\u044c\",\"show_all\":\"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435\"},\"new\":{\"basic_info\":\"\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\",\"cancel\":\"\u041e\u0442\u043c\u0435\u043d\u0430\",\"chosen\":\"\u0412\u044b\u0431\u0440\u0430\u043d\u043e %{name}\",\"chose_all\":\"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435\",\"clear_all\":\"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435\",\"one_char\":\"\u0441\u0438\u043c\u0432\u043e\u043b.\",\"optional\":\"\u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\",\"required\":\"\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\",\"save\":\"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\",\"save_and_add_another\":\"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0435\",\"save_and_edit\":\"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\",\"select_choice\":\"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438 \u043a\u043b\u0438\u043a\u043d\u0438\u0442\u0435\",\"many_chars\":\"\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438\u043b\u0438 \u043c\u0435\u043d\u044c\u0448\u0435.\"},\"flash\":{\"error\":\"%{name} \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c %{action}\",\"noaction\":\"\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043e\",\"successful\":\"%{name} \u0431\u044b\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e %{action}\"}},\"build\":{\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\",\"finished_at\":\"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\",\"job\":\"\u0417\u0430\u0434\u0430\u0447\u0430\"},\"builds\":{\"allowed_failures\":\"\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u0438\",\"author\":\"\u0410\u0432\u0442\u043e\u0440\",\"branch\":\"\u0412\u0435\u0442\u043a\u0430\",\"build_matrix\":\"\u041c\u0430\u0442\u0440\u0438\u0446\u0430\",\"commit\":\"\u041a\u043e\u043c\u043c\u0438\u0442\",\"committer\":\"\u041a\u043e\u043c\u043c\u0438\u0442\u0435\u0440\",\"compare\":\"\u0414\u0438\u0444\u0444\",\"config\":\"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\",\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\",\"finished_at\":\"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\",\"message\":\"\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439\",\"messages\":{\"sponsored_by\":\"\u042d\u0442\u0430 \u0441\u0435\u0440\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u0431\u044b\u043b\u0430 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435, \u0441\u043f\u043e\u043d\u0441\u0438\u0440\u0443\u0435\u043c\u043e\u0439\"},\"name\":\"\u0411\u0438\u043b\u0434\",\"started_at\":\"\u041d\u0430\u0447\u0430\u043b\u043e\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} \u0447\u0430\u0441\",\"few\":\"%{count} \u0447\u0430\u0441\u0430\",\"many\":\"%{count} \u0447\u0430\u0441\u043e\u0432\",\"other\":\"%{count} \u0447\u0430\u0441\u0430\"},\"minutes_exact\":{\"one\":\"%{count} \u043c\u0438\u043d\u0443\u0442\u0430\",\"few\":\"%{count} \u043c\u0438\u043d\u0443\u0442\u044b\",\"many\":\"%{count} \u043c\u0438\u043d\u0443\u0442\",\"other\":\"%{count} \u043c\u0438\u043d\u0443\u0442\u044b\"},\"seconds_exact\":{\"one\":\"%{count} \u0441\u0435\u043a\u0443\u043d\u0434\u0430\",\"few\":\"%{count} \u0441\u0435\u043a\u0443\u043d\u0434\u044b\",\"many\":\"%{count} \u0441\u0435\u043a\u0443\u043d\u0434\",\"other\":\"%{count} \u0441\u0435\u043a\u0443\u043d\u0434\u044b\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d. \u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c!\",\"send_instructions\":\"\u0412 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0438\u043d\u0443\u0442 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430.\"},\"failure\":{\"inactive\":\"\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0435\u0449\u0435 \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d.\",\"invalid\":\"\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0430\u0434\u0440\u0435\u0441\u0435 \u043f\u043e\u0447\u0442\u044b \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u0435.\",\"invalid_token\":\"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.\",\"locked\":\"\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d.\",\"timeout\":\"\u0421\u0435\u0441\u0441\u0438\u044f \u043e\u043a\u043e\u043d\u0447\u0435\u043d\u0430. \u0414\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u0441\u043d\u043e\u0432\u0430.\",\"unauthenticated\":\"\u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0439\u0442\u0438 \u0438\u043b\u0438 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.\",\"unconfirmed\":\"\u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430\"},\"reset_password_instructions\":{\"subject\":\"\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u043f\u0430\u0440\u043e\u043b\u044f\"},\"unlock_instructions\":{\"subject\":\"\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430\"}},\"passwords\":{\"send_instructions\":\"\u0412 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0438\u043d\u0443\u0442 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u043f\u0430\u0440\u043e\u043b\u044f.\",\"updated\":\"\u0412\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d. \u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c!\"},\"registrations\":{\"destroyed\":\"\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d. \u0416\u0438\u0432\u0438\u0442\u0435 \u0434\u043e\u043b\u0433\u043e \u0438 \u043f\u0440\u043e\u0446\u0432\u0435\u0442\u0430\u0439\u0442\u0435!\",\"signed_up\":\"\u0412\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0448\u043b\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0430 \u0432\u0430\u0448 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441.\",\"updated\":\"\u0410\u043a\u043a\u0430\u0443\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d.\"},\"sessions\":{\"signed_in\":\"\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c!\",\"signed_out\":\"\u0423\u0434\u0430\u0447\u0438!\"},\"unlocks\":{\"send_instructions\":\"\u0412 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0438\u043d\u0443\u0442 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430.\",\"unlocked\":\"\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d. \u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c!\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"\u0443\u0436\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\",\"not_found\":\"\u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\",\"not_locked\":\"\u043d\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\"}},\"home\":{\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\"},\"jobs\":{\"allowed_failures\":\"\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u0438\",\"author\":\"\u0410\u0432\u0442\u043e\u0440\",\"branch\":\"\u0412\u0435\u0442\u043a\u0430\",\"build_matrix\":\"\u041c\u0430\u0442\u0440\u0438\u0446\u0430\",\"commit\":\"\u041a\u043e\u043c\u043c\u0438\u0442\",\"committer\":\"\u041a\u043e\u043c\u043c\u0438\u0442\u0435\u0440\",\"compare\":\"\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\",\"config\":\"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\",\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\",\"finished_at\":\"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\",\"message\":\"\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439\",\"messages\":{\"sponsored_by\":\"\u042d\u0442\u0430 \u0441\u0435\u0440\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u0431\u044b\u043b\u0430 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u0441\u043f\u043e\u043d\u0441\u0438\u0440\u0443\u0435\u043c\u043e\u0439\"},\"started_at\":\"\u041d\u0430\u0447\u0430\u043b\u043e\"},\"layouts\":{\"about\":{\"alpha\":\"\u042d\u0442\u043e \u0430\u043b\u044c\u0444\u0430-\u0432\u0435\u0440\u0441\u0438\u044f\",\"join\":\"\u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u043a \u043d\u0430\u043c \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0439\u0442\u0435!\",\"mailing_list\":\"\u041b\u0438\u0441\u0442 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438\",\"messages\":{\"alpha\":\"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, <strong>\u043d\u0435</strong> \u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c. \u041c\u044b \u0435\u0449\u0435 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u043b\u0435\u043a\u0438 \u043e\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438! <a href='https://github.com/travis-ci'>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438</a>\"},\"repository\":\"\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"my_repositories\":\"\u041c\u043e\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438\",\"recent\":\"\u041d\u0435\u0434\u0430\u0432\u043d\u0438\u0435\",\"search\":\"\u041f\u043e\u0438\u0441\u043a\",\"sponsers\":\"\u0421\u043f\u043e\u043d\u0441\u043e\u0440\u044b\",\"sponsors_link\":\"\u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043d\u0430\u0448\u0438\u0445 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u043e\u0432 &rarr;\"},\"mobile\":{\"author\":\"\u0410\u0432\u0442\u043e\u0440\",\"build\":\"\u0421\u0431\u043e\u0440\u043a\u0430\",\"build_matrix\":\"\u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0441\u0431\u043e\u0440\u043e\u043a\",\"commit\":\"\u041a\u043e\u043c\u043c\u0438\u0442\",\"committer\":\"\u041a\u043e\u043c\u043c\u0438\u0442\u0435\u0440\",\"compare\":\"\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\",\"config\":\"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\",\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\",\"finished_at\":\"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\",\"job\":\"\u0417\u0430\u0434\u0430\u0447\u0430\",\"log\":\"\u0416\u0443\u0440\u043d\u0430\u043b\"},\"top\":{\"admin\":\"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\",\"blog\":\"\u0411\u043b\u043e\u0433\",\"docs\":\"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\",\"github_login\":\"\u0412\u043e\u0439\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 Github\",\"home\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\"profile\":\"\u041f\u0440\u043e\u0444\u0438\u043b\u044c\",\"sign_out\":\"\u0412\u044b\u0445\u043e\u0434\",\"stats\":\"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430\"}},\"no_job\":\"\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0443\u0441\u0442\u0430\",\"profiles\":{\"show\":{\"email\":\"\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0447\u0442\u0430\",\"github\":\"Github\",\"message\":{\"config\":\"\u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u0431\u0438\u043b\u0434\u0430\",\"your_repos\":\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c Travis service hook \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043a\u043e\u0434 \u043d\u0430 GitHub.<br />\\n\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Ruby \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435\"},\"messages\":{\"notice\":\"\u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0447\u0442\u0438\u0442\u0435 <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0442\u0430</a>. <small>\u042d\u0442\u043e \u0437\u0430\u0439\u043c\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.</small>\"},\"token\":\"\u0422\u043e\u043a\u0435\u043d\",\"update\":\"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\",\"update_locale\":\"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\",\"your_locale\":\"\u0412\u0430\u0448 \u044f\u0437\u044b\u043a\",\"your_repos\":\"\u0412\u0430\u0448\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438\"}},\"queue\":\"\u041e\u0447\u0435\u0440\u0435\u0434\u044c\",\"repositories\":{\"branch\":\"\u0412\u0435\u0442\u043a\u0430\",\"commit\":\"\u041a\u043e\u043c\u043c\u0438\u0442\",\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\",\"finished_at\":\"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\",\"image_url\":\"URL \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\",\"markdown\":\"Markdown\",\"message\":\"\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439\",\"rdoc\":\"RDOC\",\"started_at\":\"\u041d\u0430\u0447\u0430\u043b\u043e\",\"tabs\":{\"branches\":\"\u0421\u0442\u0430\u0442\u0443\u0441 \u0432\u0435\u0442\u043e\u043a\",\"build\":\"\u0411\u0438\u043b\u0434\",\"build_history\":\"\u0418\u0441\u0442\u043e\u0440\u0438\u044f\",\"current\":\"\u0422\u0435\u043a\u0443\u0449\u0438\u0439\",\"job\":\"\u0417\u0430\u0434\u0430\u0447\u0430\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\"},\"statistics\":{\"index\":{\"build_count\":\"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0438\u043b\u0434\u043e\u0432\",\"count\":\"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\",\"last_month\":\"\u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u043c\u0435\u0441\u044f\u0446\",\"repo_growth\":\"\u0420\u043e\u0441\u0442 \u0447\u0438\u0441\u043b\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432\",\"total_builds\":\"\u0412\u0441\u0435\u0433\u043e \u0431\u0438\u043b\u0434\u043e\u0432\",\"total_projects\":\"\u0412\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432/\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432\"}},\"workers\":\"\u041c\u0430\u0448\u0438\u043d\u044b\",\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"ja\":\"\u65e5\u672c\u8a9e\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"fr\":\"Fran\u00e7ais\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}}};\n\n\n})();\n//@ sourceURL=config/i18n");minispade.register('config/locales', "(function() {window.I18n.translations = {\"ca\":{\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"pt-BR\":\"portugu\u00eas brasileiro\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\"}},\"en\":{\"errors\":{\"messages\":{\"not_found\":\"not found\",\"already_confirmed\":\"was already confirmed\",\"not_locked\":\"was not locked\"}},\"devise\":{\"failure\":{\"unauthenticated\":\"You need to sign in or sign up before continuing.\",\"unconfirmed\":\"You have to confirm your account before continuing.\",\"locked\":\"Your account is locked.\",\"invalid\":\"Invalid email or password.\",\"invalid_token\":\"Invalid authentication token.\",\"timeout\":\"Your session expired, please sign in again to continue.\",\"inactive\":\"Your account was not activated yet.\"},\"sessions\":{\"signed_in\":\"Signed in successfully.\",\"signed_out\":\"Signed out successfully.\"},\"passwords\":{\"send_instructions\":\"You will receive an email with instructions about how to reset your password in a few minutes.\",\"updated\":\"Your password was changed successfully. You are now signed in.\"},\"confirmations\":{\"send_instructions\":\"You will receive an email with instructions about how to confirm your account in a few minutes.\",\"confirmed\":\"Your account was successfully confirmed. You are now signed in.\"},\"registrations\":{\"signed_up\":\"You have signed up successfully. If enabled, a confirmation was sent to your e-mail.\",\"updated\":\"You updated your account successfully.\",\"destroyed\":\"Bye! Your account was successfully cancelled. We hope to see you again soon.\"},\"unlocks\":{\"send_instructions\":\"You will receive an email with instructions about how to unlock your account in a few minutes.\",\"unlocked\":\"Your account was successfully unlocked. You are now signed in.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Confirmation instructions\"},\"reset_password_instructions\":{\"subject\":\"Reset password instructions\"},\"unlock_instructions\":{\"subject\":\"Unlock Instructions\"}}},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hour\",\"other\":\"%{count} hours\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} second\",\"other\":\"%{count} seconds\"}}},\"workers\":\"Workers\",\"queue\":\"Queue\",\"no_job\":\"There are no jobs\",\"repositories\":{\"branch\":\"Branch\",\"image_url\":\"Image URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"tabs\":{\"current\":\"Current\",\"build_history\":\"Build History\",\"branches\":\"Branch Summary\",\"pull_requests\":\"Pull Requests\",\"build\":\"Build\",\"job\":\"Job\"}},\"build\":{\"job\":\"Job\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"This test suite was run on a worker box sponsored by\"},\"build_matrix\":\"Build Matrix\",\"allowed_failures\":\"Allowed Failures\",\"author\":\"Author\",\"config\":\"Config\",\"compare\":\"Compare\",\"committer\":\"Committer\",\"branch\":\"Branch\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Started\",\"duration\":\"Duration\",\"finished_at\":\"Finished\",\"show_more\":\"Show more\"},\"layouts\":{\"top\":{\"home\":\"Home\",\"blog\":\"Blog\",\"docs\":\"Docs\",\"stats\":\"Stats\",\"github_login\":\"Sign in with Github\",\"profile\":\"Profile\",\"sign_out\":\"Sign Out\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Recent\",\"search\":\"Search\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"See all of our amazing sponsors &rarr;\",\"my_repositories\":\"My Repositories\"},\"about\":{\"alpha\":\"This stuff is alpha.\",\"messages\":{\"alpha\":\"Please do <strong>not</strong> consider this a stable service. We're still far from that! More info <a href='https://github.com/travis-ci'>here.</a>\"},\"join\":\"Join us and help!\",\"mailing_list\":\"Mailing List\",\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Author\",\"build\":\"Build\",\"build_matrix\":\"Build Matrix\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Compare\",\"config\":\"Config\",\"duration\":\"Duration\",\"finished_at\":\"Finished at\",\"job\":\"Job\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\" Flick the switches below to turn on the Travis service hook for your projects, then push to GitHub.\",\"config\":\"how to configure custom build options\"},\"messages\":{\"notice\":\"To get started, please read our <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Getting Started guide</a>.\\n <small>It will only take a couple of minutes.</small>\"},\"token\":\"Token\",\"your_repos\":\"Your Repositories\",\"update\":\"Update\",\"update_locale\":\"Update\",\"your_locale\":\"Your Locale\"}},\"statistics\":{\"index\":{\"count\":\"Count\",\"repo_growth\":\"Repository Growth\",\"total_projects\":\"Total Projects/Repositories\",\"build_count\":\"Build Count\",\"last_month\":\"last month\",\"total_builds\":\"Total Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"es\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"workers\":\"Procesos\",\"queue\":\"Cola\",\"no_job\":\"No hay trabajos\",\"repositories\":{\"branch\":\"Rama\",\"image_url\":\"Imagen URL\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duraci\u00f3n\",\"finished_at\":\"Finalizado\",\"tabs\":{\"current\":\"Actual\",\"build_history\":\"Hist\u00f3rico\",\"branches\":\"Ramas\",\"build\":\"Builds\",\"job\":\"Trabajo\"}},\"build\":{\"job\":\"Trabajo\",\"duration\":\"Duraci\u00f3n\",\"finished_at\":\"Finalizado\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuraci\u00f3n\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duraci\u00f3n\",\"finished_at\":\"Finalizado\",\"sponsored_by\":\"Patrocinado por\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Esta serie de tests han sido ejecutados en una caja de Proceso patrocinada por\"},\"build_matrix\":\"Matriz de Builds\",\"allowed_failures\":\"Fallos Permitidos\",\"author\":\"Autor\",\"config\":\"Configuraci\u00f3n\",\"compare\":\"Comparar\",\"committer\":\"Committer\",\"branch\":\"Rama\",\"commit\":\"Commit\",\"message\":\"Mensaje\",\"started_at\":\"Iniciado\",\"duration\":\"Duraci\u00f3n\",\"finished_at\":\"Finalizado\"},\"layouts\":{\"top\":{\"home\":\"Inicio\",\"blog\":\"Blog\",\"docs\":\"Documentaci\u00f3n\",\"stats\":\"Estad\u00edsticas\",\"github_login\":\"Iniciar sesi\u00f3n con Github\",\"profile\":\"Perfil\",\"sign_out\":\"Desconectar\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Hazme un Fork en Github\",\"recent\":\"Reciente\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Ver todos nuestros patrocinadores &rarr;\",\"my_repositories\":\"Mis Repositorios\"},\"about\":{\"alpha\":\"Esto es alpha.\",\"messages\":{\"alpha\":\"Por favor <strong>no</strong> considereis esto un servicio estable. Estamos estamos a\u00fan lejos de ello! M\u00e1s informaci\u00f3n <a href='https://github.com/travis-ci'>aqu\u00ed.</a>\"},\"join\":\"\u00danetenos y ayudanos!\",\"mailing_list\":\"Lista de Correos\",\"repository\":\"Repositorio\",\"twitter\":\"Twitter\"}},\"profiles\":{\"show\":{\"email\":\"Correo electr\u00f3nico\",\"github\":\"Github\",\"message\":{\"your_repos\":\" Activa los interruptores para inicial el Travis service hook para tus proyectos, y haz un Push en GitHub.<br />\\n Para probar varias versiones de ruby, mira\",\"config\":\"como configurar tus propias opciones para el Build\"},\"messages\":{\"notice\":\"Para comenzar, por favor lee nuestra <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Gu\u00eda de Inicio </a>.\\n <small>Solo tomar\u00e1 unos pocos minutos.</small>\"},\"token\":\"Token\",\"your_repos\":\"Tus repositorios\",\"update\":\"Actualizar\",\"update_locale\":\"Actualizar\",\"your_locale\":\"Tu Idioma\"}},\"statistics\":{\"index\":{\"count\":\"N\u00famero\",\"repo_growth\":\"Crecimiento de Repositorios\",\"total_projects\":\"Total de Proyectos/Repositorios\",\"build_count\":\"N\u00famero de Builds\",\"last_month\":\"mes anterior\",\"total_builds\":\"Total de Builds\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"fr\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} heure\",\"other\":\"%{count} heures\"},\"minutes_exact\":{\"one\":\"%{count} minute\",\"other\":\"%{count} minutes\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} secondes\"}}},\"workers\":\"Processus\",\"queue\":\"File\",\"no_job\":\"Pas de t\u00e2ches\",\"repositories\":{\"branch\":\"Branche\",\"image_url\":\"Image\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commenc\u00e9\",\"duration\":\"Dur\u00e9e\",\"finished_at\":\"Termin\u00e9\",\"tabs\":{\"current\":\"Actuel\",\"build_history\":\"Historique des t\u00e2ches\",\"branches\":\"R\u00e9sum\u00e9 des branches\",\"build\":\"Construction\",\"job\":\"T\u00e2che\"}},\"build\":{\"job\":\"T\u00e2che\",\"duration\":\"Dur\u00e9e\",\"finished_at\":\"Termin\u00e9\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Cette s\u00e9rie de tests a \u00e9t\u00e9 ex\u00e9cut\u00e9e sur une machine sponsoris\u00e9e par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"\u00c9checs autoris\u00e9s\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commenc\u00e9\",\"duration\":\"Dur\u00e9e\",\"finished_at\":\"Termin\u00e9\",\"sponsored_by\":\"Cette s\u00e9rie de tests a \u00e9t\u00e9 ex\u00e9cut\u00e9e sur une machine sponsoris\u00e9e par\"},\"builds\":{\"name\":\"Version\",\"messages\":{\"sponsored_by\":\"Cette s\u00e9rie de tests a \u00e9t\u00e9 ex\u00e9cut\u00e9e sur une machine sponsoris\u00e9e par\"},\"build_matrix\":\"Matrice des versions\",\"allowed_failures\":\"\u00c9checs autoris\u00e9s\",\"author\":\"Auteur\",\"config\":\"Config\",\"compare\":\"Comparer\",\"committer\":\"Committeur\",\"branch\":\"Branche\",\"commit\":\"Commit\",\"message\":\"Message\",\"started_at\":\"Commenc\u00e9\",\"duration\":\"Dur\u00e9e\",\"finished_at\":\"Termin\u00e9\"},\"layouts\":{\"top\":{\"home\":\"Accueil\",\"blog\":\"Blog\",\"docs\":\"Documentation\",\"stats\":\"Statistiques\",\"github_login\":\"Connection Github\",\"profile\":\"Profil\",\"sign_out\":\"D\u00e9connection\",\"admin\":\"Admin\"},\"application\":{\"fork_me\":\"Faites un Fork sur Github\",\"recent\":\"R\u00e9cent\",\"search\":\"Chercher\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Voir tous nos extraordinaire sponsors &rarr;\",\"my_repositories\":\"Mes d\u00e9p\u00f4ts\"},\"about\":{\"alpha\":\"Ceci est en alpha.\",\"messages\":{\"alpha\":\"S'il vous pla\u00eet ne consid\u00e9rez <strong>pas</strong> ce service comme \u00e9tant stable. Nous sommes loin de \u00e7a! Plus d'infos <a href='https://github.com/travis-ci'>ici.</a>\"},\"join\":\"Joignez-vous \u00e0 nous et aidez-nous!\",\"mailing_list\":\"Liste de distribution\",\"repository\":\"D\u00e9p\u00f4t\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Version\",\"build_matrix\":\"Matrice des versions\",\"commit\":\"Commit\",\"committer\":\"Committeur\",\"compare\":\"Comparer\",\"config\":\"Config\",\"duration\":\"Dur\u00e9e\",\"finished_at\":\"Termin\u00e9 \u00e0\",\"job\":\"T\u00e2che\",\"log\":\"Journal\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"message\":{\"your_repos\":\"Utilisez les boutons ci-dessous pour activer Travis sur vos projets puis d\u00e9ployez sur GitHub.<br />\\nPour tester sur plus de versions de ruby, voir\",\"config\":\"comment configurer des options de version personnalis\u00e9es\"},\"messages\":{\"notice\":\"Pour commencer, veuillez lire notre <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">guide de d\u00e9marrage</a>.\\n <small>Cela ne vous prendra que quelques minutes.</small>\"},\"token\":\"Jeton\",\"your_repos\":\"Vos d\u00e9p\u00f4ts\",\"email\":\"Courriel\",\"update\":\"Modifier\",\"update_locale\":\"Modifier\",\"your_locale\":\"Votre langue\"}},\"statistics\":{\"index\":{\"count\":\"D\u00e9compte\",\"repo_growth\":\"Croissance de d\u00e9p\u00f4t\",\"total_projects\":\"Total des projets/d\u00e9p\u00f4ts\",\"build_count\":\"D\u00e9compte des versions\",\"last_month\":\"mois dernier\",\"total_builds\":\"Total des versions\"}},\"admin\":{\"actions\":{\"create\":\"cr\u00e9er\",\"created\":\"cr\u00e9\u00e9\",\"delete\":\"supprimer\",\"deleted\":\"supprim\u00e9\",\"update\":\"mise \u00e0 jour\",\"updated\":\"mis \u00e0 jour\"},\"credentials\":{\"log_out\":\"D\u00e9connection\"},\"delete\":{\"confirmation\":\"Oui, je suis sure\",\"flash_confirmation\":\"%{name} a \u00e9t\u00e9 d\u00e9truit avec succ\u00e8s\"},\"flash\":{\"error\":\"%{name} n'a pas pu \u00eatre %{action}\",\"noaction\":\"Aucune action n'a \u00e9t\u00e9 entreprise\",\"successful\":\"%{name} a r\u00e9ussi \u00e0 %{action}\"},\"history\":{\"name\":\"Historique\",\"no_activity\":\"Aucune activit\u00e9\",\"page_name\":\"Historique pour %{name}\"},\"list\":{\"add_new\":\"Ajouter un nouveau\",\"delete_action\":\"Supprimer\",\"delete_selected\":\"Supprimer la s\u00e9lection\",\"edit_action\":\"Modifier\",\"search\":\"Rechercher\",\"select\":\"S\u00e9lectionner le %{name} \u00e0 modifier\",\"select_action\":\"S\u00e9lectionner\",\"show_all\":\"Montrer tout\"},\"new\":{\"basic_info\":\"Information de base\",\"cancel\":\"Annuler\",\"chosen\":\"%{name} choisi\",\"chose_all\":\"Choisir tout\",\"clear_all\":\"D\u00e9selectionner tout\",\"many_chars\":\"caract\u00e8res ou moins\",\"one_char\":\"caract\u00e8re.\",\"optional\":\"Optionnel\",\"required\":\"Requis\",\"save\":\"Sauvegarder\",\"save_and_add_another\":\"Sauvegarder et en ajouter un autre\",\"save_and_edit\":\"Sauvegarder et modifier\",\"select_choice\":\"Faites vos choix et cliquez\"},\"dashboard\":{\"add_new\":\"Ajouter un nouveau\",\"last_used\":\"Derni\u00e8re utilisation\",\"model_name\":\"Nom du mod\u00e8le\",\"modify\":\"Modification\",\"name\":\"Tableau de bord\",\"pagename\":\"Administration du site\",\"records\":\"Enregistrements\",\"show\":\"Voir\",\"ago\":\"plus t\u00f4t\"}},\"home\":{\"name\":\"accueil\"},\"repository\":{\"duration\":\"Dur\u00e9e\"},\"devise\":{\"confirmations\":{\"confirmed\":\"Votre compte a \u00e9t\u00e9 cr\u00e9e avec succ\u00e8s. Vous \u00eatre maintenant connect\u00e9.\",\"send_instructions\":\"Vous allez recevoir un courriel avec les instructions de confirmation de votre compte dans quelques minutes.\"},\"failure\":{\"inactive\":\"Votre compte n'a pas encore \u00e9t\u00e9 activ\u00e9.\",\"invalid\":\"Adresse courriel ou mot de passe invalide.\",\"invalid_token\":\"Jeton d'authentification invalide.\",\"locked\":\"Votre compte est bloqu\u00e9.\",\"timeout\":\"Votre session est expir\u00e9e, veuillez vous reconnecter pour continuer.\",\"unauthenticated\":\"Vous devez vous connecter ou vous enregistrer afin de continuer\",\"unconfirmed\":\"Vous devez confirmer votre compte avant de continuer.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instructions de confirmations\"},\"reset_password_instructions\":{\"subject\":\"Instruction de remise \u00e0 z\u00e9ro du mot de passe\"},\"unlock_instructions\":{\"subject\":\"Instruction de d\u00e9bloquage\"}},\"passwords\":{\"send_instructions\":\"Vous recevrez un courriel avec les instructions de remise \u00e0 z\u00e9ro du mot de passe dans quelques minutes.\",\"updated\":\"Votre mot de passe a \u00e9t\u00e9 chang\u00e9 avec succ\u00e8s. Vous \u00eates maintenant connect\u00e9.\"},\"registrations\":{\"destroyed\":\"Au revoir! Votre compte a \u00e9t\u00e9 annul\u00e9 avec succ\u00e8s. Nous esp\u00e9rons vous revoir bient\u00f4t.\",\"signed_up\":\"Vous \u00eates enregistr\u00e9 avec succ\u00e8s. Si activ\u00e9, une confirmation vous a \u00e9t\u00e9 envoy\u00e9 par courriel.\",\"updated\":\"Votre compte a \u00e9t\u00e9 mis a jour avec succ\u00e8s\"},\"sessions\":{\"signed_in\":\"Connect\u00e9 avec succ\u00e8s\",\"signed_out\":\"D\u00e9connect\u00e9 avec succ\u00e8s\"},\"unlocks\":{\"send_instructions\":\"Vous recevrez un courriel contenant les instructions pour d\u00e9bloquer votre compte dans quelques minutes.\",\"unlocked\":\"Votre compte a \u00e9t\u00e9 d\u00e9bloqu\u00e9 avec succ\u00e8s.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"\u00e9tais d\u00e9ja confirm\u00e9\",\"not_found\":\"n'a pas \u00e9t\u00e9 trouv\u00e9\",\"not_locked\":\"n'\u00e9tais pas bloqu\u00e9\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"ja\":\"\u65e5\u672c\u8a9e\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"fr\":\"Fran\u00e7ais\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"ja\":{\"workers\":\"\u30ef\u30fc\u30ab\u30fc\",\"queue\":\"\u30ad\u30e5\u30fc\",\"no_job\":\"\u30b8\u30e7\u30d6\u306f\u3042\u308a\u307e\u305b\u3093\",\"repositories\":{\"branch\":\"\u30d6\u30e9\u30f3\u30c1\",\"image_url\":\"\u753b\u50cfURL\",\"markdown\":\".md\",\"textile\":\".textile\",\"rdoc\":\".rdoc\",\"commit\":\"\u30b3\u30df\u30c3\u30c8\",\"message\":\"\u30e1\u30c3\u30bb\u30fc\u30b8\",\"started_at\":\"\u958b\u59cb\u6642\u523b\",\"duration\":\"\u51e6\u7406\u6642\u9593\",\"finished_at\":\"\u7d42\u4e86\u6642\u523b\",\"tabs\":{\"current\":\"\u6700\u65b0\",\"build_history\":\"\u30d3\u30eb\u30c9\u5c65\u6b74\",\"branches\":\"\u30d6\u30e9\u30f3\u30c1\u307e\u3068\u3081\",\"build\":\"\u30d3\u30eb\u30c9\",\"job\":\"\u30b8\u30e7\u30d6\"}},\"build\":{\"job\":\"\u30b8\u30e7\u30d6\",\"duration\":\"\u51e6\u7406\u6642\u9593\",\"finished_at\":\"\u7d42\u4e86\u6642\u523b\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"\u3053\u306e\u30c6\u30b9\u30c8\u306f\u4ee5\u4e0b\u306e\u30b9\u30dd\u30f3\u30b5\u30fc\u306e\u5354\u529b\u3067\u884c\u3044\u307e\u3057\u305f\u3002\"},\"build_matrix\":\"\u30d3\u30eb\u30c9\u30de\u30c8\u30ea\u30af\u30b9\",\"allowed_failures\":\"\u5931\u6557\u8a31\u5bb9\u7bc4\u56f2\u5185\",\"author\":\"\u5236\u4f5c\u8005\",\"config\":\"\u8a2d\u5b9a\",\"compare\":\"\u6bd4\u8f03\",\"committer\":\"\u30b3\u30df\u30c3\u30c8\u8005\",\"branch\":\"\u30d6\u30e9\u30f3\u30c1\",\"commit\":\"\u30b3\u30df\u30c3\u30c8\",\"message\":\"\u30e1\u30c3\u30bb\u30fc\u30b8\",\"started_at\":\"\u958b\u59cb\u6642\u523b\",\"duration\":\"\u51e6\u7406\u6642\u9593\",\"finished_at\":\"\u7d42\u4e86\u6642\u523b\"},\"builds\":{\"name\":\"\u30d3\u30eb\u30c9\",\"messages\":{\"sponsored_by\":\"\u3053\u306e\u30c6\u30b9\u30c8\u306f\u4ee5\u4e0b\u306e\u30b9\u30dd\u30f3\u30b5\u30fc\u306e\u5354\u529b\u3067\u884c\u3044\u307e\u3057\u305f\u3002\"},\"build_matrix\":\"\u5931\u6557\u8a31\u5bb9\u7bc4\u56f2\u5916\",\"allowed_failures\":\"\u5931\u6557\u8a31\u5bb9\u7bc4\u56f2\u5185\",\"author\":\"\u5236\u4f5c\u8005\",\"config\":\"\u8a2d\u5b9a\",\"compare\":\"\u6bd4\u8f03\",\"committer\":\"\u30b3\u30df\u30c3\u30c8\u8005\",\"branch\":\"\u30d6\u30e9\u30f3\u30c1\",\"commit\":\"\u30b3\u30df\u30c3\u30c8\",\"message\":\"\u30e1\u30c3\u30bb\u30fc\u30b8\",\"started_at\":\"\u958b\u59cb\u6642\u523b\",\"duration\":\"\u51e6\u7406\u6642\u9593\",\"finished_at\":\"\u7d42\u4e86\u6642\u523b\"},\"layouts\":{\"about\":{\"alpha\":\"\u307e\u3060\u30a2\u30eb\u30d5\u30a1\u3067\u3059\u3088\uff01\",\"join\":\"\u53c2\u52a0\u3057\u3066\u307f\u3088\u3046\uff01\",\"mailing_list\":\"\u30e1\u30fc\u30eb\u30ea\u30b9\u30c8\",\"messages\":{\"alpha\":\"Travis-ci\u306f\u5b89\u5b9a\u3057\u305f\u30b5\u30fc\u30d3\u30b9\u307e\u3067\u5f8c\u4e00\u6b69\uff01\u8a73\u3057\u304f\u306f<a href='https://github.com/travis-ci'>\u3053\u3061\u3089</a>\"},\"repository\":\"\u30ea\u30dd\u30b8\u30c8\u30ea\",\"twitter\":\"\u30c4\u30a4\u30c3\u30bf\u30fc\"},\"application\":{\"fork_me\":\"Github\u3067\u30d5\u30a9\u30fc\u30af\u3057\u3088\u3046\",\"my_repositories\":\"\u30de\u30a4\u30ea\u30dd\u30b8\u30c8\u30ea\",\"recent\":\"\u6700\u8fd1\",\"search\":\"\u691c\u7d22\",\"sponsers\":\"\u30b9\u30dd\u30f3\u30b5\u30fc\",\"sponsors_link\":\"\u30b9\u30dd\u30f3\u30b5\u30fc\u3092\u3082\u3063\u3068\u898b\u308b &rarr;\"},\"top\":{\"blog\":\"\u30d6\u30ed\u30b0\",\"docs\":\"Travis\u3068\u306f\uff1f\",\"github_login\":\"Github\u3067\u30ed\u30b0\u30a4\u30f3\",\"home\":\"\u30db\u30fc\u30e0\",\"profile\":\"\u30d7\u30ed\u30d5\u30a3\u30fc\u30eb\",\"sign_out\":\"\u30ed\u30b0\u30a2\u30a6\u30c8\",\"stats\":\"\u7d71\u8a08\",\"admin\":\"\u7ba1\u7406\"},\"mobile\":{\"author\":\"\u5236\u4f5c\u8005\",\"build\":\"\u30d3\u30eb\u30c9\",\"build_matrix\":\"\u30d3\u30eb\u30c9\u30de\u30c8\u30ea\u30af\u30b9\",\"commit\":\"\u30b3\u30df\u30c3\u30c8\",\"committer\":\"\u30b3\u30df\u30c3\u30c8\u8005\",\"compare\":\"\u6bd4\u8f03\",\"config\":\"\u8a2d\u5b9a\",\"duration\":\"\u51e6\u7406\u6642\u9593\",\"finished_at\":\"\u7d42\u4e86\u6642\u523b\",\"job\":\"\u30b8\u30e7\u30d6\",\"log\":\"\u30ed\u30b0\"}},\"profiles\":{\"show\":{\"github\":\"Github\",\"email\":\"\u30e1\u30fc\u30eb\",\"message\":{\"config\":\"\u8a73\u7d30\u8a2d\u5b9a\",\"your_repos\":\"\u4ee5\u4e0b\u306e\u30b9\u30a4\u30c3\u30c1\u3092\u8a2d\u5b9a\u3057\u3001Travis-ci\u3092\u6709\u52b9\u306b\u3057\u307e\u3059\u3002Github\u3078\u30d7\u30c3\u30b7\u30e5\u3057\u305f\u3089\u30d3\u30eb\u30c9\u306f\u81ea\u52d5\u7684\u306b\u958b\u59cb\u3057\u307e\u3059\u3002\u8907\u6570\u30d0\u30fc\u30b7\u30e7\u30f3\u3084\u7d30\u304b\u3044\u8a2d\u5b9a\u306f\u3053\u3061\u3089\u3078\uff1a\"},\"messages\":{\"notice\":\"\u307e\u305a\u306f<a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Travis\u306e\u306f\u3058\u3081\u65b9</a>\u3092\u53c2\u7167\u3057\u3066\u304f\u3060\u3055\u3044\u3002\"},\"token\":\"\u30c8\u30fc\u30af\u30f3\",\"your_repos\":\"\u30ea\u30dd\u30b8\u30c8\u30ea\",\"update\":\"\u66f4\u65b0\",\"update_locale\":\"\u66f4\u65b0\",\"your_locale\":\"\u8a00\u8a9e\u8a2d\u5b9a\"}},\"statistics\":{\"index\":{\"build_count\":\"\u30d3\u30eb\u30c9\u6570\",\"count\":\"\u6570\",\"last_month\":\"\u5148\u6708\",\"repo_growth\":\"\u30ea\u30dd\u30b8\u30c8\u30ea\",\"total_builds\":\"\u5408\u8a08\u30d3\u30eb\u30c9\u6570\",\"total_projects\":\"\u5408\u8a08\u30ea\u30dd\u30b8\u30c8\u30ea\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"nb\":{\"admin\":{\"actions\":{\"create\":\"opprett\",\"created\":\"opprettet\",\"delete\":\"slett\",\"deleted\":\"slettet\",\"update\":\"oppdater\",\"updated\":\"oppdatert\"},\"credentials\":{\"log_out\":\"Logg ut\"},\"dashboard\":{\"add_new\":\"Legg til ny\",\"ago\":\"siden\",\"last_used\":\"Sist brukt\",\"model_name\":\"Modell\",\"modify\":\"Rediger\",\"name\":\"Dashbord\",\"pagename\":\"Nettstedsadministrasjon\",\"records\":\"Oppf\u00f8ringer\",\"show\":\"Vis\"},\"delete\":{\"confirmation\":\"Ja, jeg er sikker\",\"flash_confirmation\":\"%{name} ble slettet\"},\"flash\":{\"error\":\"%{name} kunne ikke bli %{action}\",\"noaction\":\"Ingen handlinger ble utf\u00f8rt\",\"successful\":\"%{name} ble %{action}\"},\"history\":{\"name\":\"Logg\",\"no_activity\":\"Ingen aktivitet\",\"page_name\":\"Logg for %{name}\"},\"list\":{\"add_new\":\"Legg til ny\",\"delete_action\":\"Slett\",\"delete_selected\":\"Slett valgte\",\"edit_action\":\"Rediger\",\"search\":\"S\u00f8k\",\"select\":\"Velg %{name} for \u00e5 redigere\",\"select_action\":\"Velg\",\"show_all\":\"Vis alle \"},\"new\":{\"basic_info\":\"Basisinformasjon\",\"cancel\":\"Avbryt\",\"chosen\":\"Valgt %{name}\",\"chose_all\":\"Velg alle\",\"clear_all\":\"Fjern alle\",\"many_chars\":\"eller f\u00e6rre tegn.\",\"one_char\":\"tegn.\",\"optional\":\"Valgfri\",\"required\":\"P\u00e5krevd\",\"save\":\"Lagre\",\"save_and_add_another\":\"Lagre og legg til ny\",\"save_and_edit\":\"Lagre og rediger\",\"select_choice\":\"Kryss av for dine valg og klikk\"}},\"build\":{\"duration\":\"Varighet\",\"finished_at\":\"Fullf\u00f8rt\",\"job\":\"Jobb\"},\"builds\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullf\u00f8rt\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testen ble kj\u00f8rt p\u00e5 en maskin sponset av\"},\"name\":\"Jobb\",\"started_at\":\"Startet\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} time\",\"other\":\"%{count} timer\"},\"minutes_exact\":{\"one\":\"%{count} minutt\",\"other\":\"%{count} minutter\"},\"seconds_exact\":{\"one\":\"%{count} sekund\",\"other\":\"%{count} sekunder\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Din konto er aktivert og du er n\u00e5 innlogget.\",\"send_instructions\":\"Om noen f\u00e5 minutter s\u00e5 vil du f\u00e5 en e-post med informasjon om hvordan du bekrefter kontoen din.\"},\"failure\":{\"inactive\":\"Kontoen din har ikke blitt aktivert enda.\",\"invalid\":\"Ugyldig e-post eller passord.\",\"invalid_token\":\"Ugyldig autentiseringskode.\",\"locked\":\"Kontoen din er l\u00e5st.\",\"timeout\":\"Du ble logget ut siden p\u00e5 grunn av mangel p\u00e5 aktivitet, vennligst logg inn p\u00e5 nytt.\",\"unauthenticated\":\"Du m\u00e5 logge inn eller registrere deg for \u00e5 fortsette.\",\"unconfirmed\":\"Du m\u00e5 bekrefte kontoen din f\u00f8r du kan fortsette.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bekreftelsesinformasjon\"},\"reset_password_instructions\":{\"subject\":\"Instruksjoner for \u00e5 f\u00e5 nytt passord\"},\"unlock_instructions\":{\"subject\":\"Oppl\u00e5sningsinstruksjoner\"}},\"passwords\":{\"send_instructions\":\"Om noen f\u00e5 minutter s\u00e5 vil du f\u00e5 en epost med informasjon om hvordan du kan f\u00e5 et nytt passord.\",\"updated\":\"Passordet ditt ble endret, og du er logget inn.\"},\"registrations\":{\"destroyed\":\"Adj\u00f8! Kontoen din ble kansellert. Vi h\u00e5per vi ser deg igjen snart.\",\"signed_up\":\"Du er n\u00e5 registrert.\",\"updated\":\"Kontoen din ble oppdatert.\"},\"sessions\":{\"signed_in\":\"Du er n\u00e5 logget inn.\",\"signed_out\":\"Du er n\u00e5 logget ut.\"},\"unlocks\":{\"send_instructions\":\"Om noen f\u00e5 minutter s\u00e5 kommer du til \u00e5 f\u00e5 en e-post med informasjon om hvordan du kan l\u00e5se opp kontoen din.\",\"unlocked\":\"Kontoen din ble l\u00e5st opp, og du er n\u00e5 logget inn igjen.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"har allerede blitt bekreftet\",\"not_found\":\"ikke funnnet\",\"not_locked\":\"var ikke l\u00e5st\"}},\"home\":{\"name\":\"hjem\"},\"jobs\":{\"allowed_failures\":\"Tillatte feil\",\"author\":\"Forfatter\",\"branch\":\"Gren\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullf\u00f8rt\",\"message\":\"Beskrivelse\",\"messages\":{\"sponsored_by\":\"Denne testserien ble kj\u00f8rt p\u00e5 en maskin sponset av\"},\"started_at\":\"Startet\"},\"layouts\":{\"about\":{\"alpha\":\"Dette er alfa-greier.\",\"join\":\"Bli med og hjelp oss!\",\"mailing_list\":\"E-postliste\",\"messages\":{\"alpha\":\"Dette er <strong>ikke</strong> en stabil tjeneste. Vi har fremdeles et stykke igjen! Mer informasjon finner du <a href=\\\"https://github.com/travis-ci\\\">her</a>.\"},\"repository\":\"Kodelager\",\"twitter\":\"Twitter.\"},\"application\":{\"fork_me\":\"Se koden p\u00e5 Github\",\"my_repositories\":\"Mine kodelagre\",\"recent\":\"Nylig\",\"search\":\"S\u00f8k\",\"sponsers\":\"Sponsorer\",\"sponsors_link\":\"Se alle de flotte sponsorene v\u00e5re &rarr;\"},\"mobile\":{\"author\":\"Forfatter\",\"build\":\"Jobb\",\"build_matrix\":\"Jobbmatrise\",\"commit\":\"Innsending\",\"committer\":\"Innsender\",\"compare\":\"Sammenlign\",\"config\":\"Oppsett\",\"duration\":\"Varighet\",\"finished_at\":\"Fullf\u00f8rt\",\"job\":\"Jobb\",\"log\":\"Logg\"},\"top\":{\"admin\":\"Administrator\",\"blog\":\"Blogg\",\"docs\":\"Dokumentasjon\",\"github_login\":\"Logg inn med Github\",\"home\":\"Hjem\",\"profile\":\"Profil\",\"sign_out\":\"Logg ut\",\"stats\":\"Statistikk\"}},\"no_job\":\"Ingen jobber finnnes\",\"profiles\":{\"show\":{\"email\":\"E-post\",\"github\":\"Github\",\"message\":{\"config\":\"hvordan sette opp egne jobbinnstillinger\",\"your_repos\":\"Sl\u00e5\\u0010 p\u00e5 Travis for prosjektene dine ved \u00e5 dra i bryterne under, og send koden til Github.<br />\\nFor \u00e5 teste mot flere ruby-versjoner, se dokumentasjonen for\"},\"messages\":{\"notice\":\"For \u00e5 komme i gang, vennligst les <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">kom-i-gang-veivisereren</a> v\u00e5r. <small>Det tar bare et par minutter.</small>\"},\"token\":\"Kode\",\"update\":\"Oppdater\",\"update_locale\":\"Oppdater\",\"your_locale\":\"Ditt spr\u00e5k\",\"your_repos\":\"Dine kodelagre\"}},\"queue\":\"K\u00f8\",\"repositories\":{\"branch\":\"Gren\",\"commit\":\"Innsender\",\"duration\":\"Varighet\",\"finished_at\":\"Fullf\u00f8rt\",\"image_url\":\"Bilde-URL\",\"markdown\":\"Markdown\",\"message\":\"Beskrivelse\",\"rdoc\":\"RDOC\",\"started_at\":\"Startet\",\"tabs\":{\"branches\":\"Grensammendrag\",\"build\":\"Jobb\",\"build_history\":\"Jobblogg\",\"current\":\"Siste\",\"job\":\"Jobb\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Varighet\"},\"statistics\":{\"index\":{\"build_count\":\"Antall jobber\",\"count\":\"Antall\",\"last_month\":\"siste m\u00e5ned\",\"repo_growth\":\"Vekst i kodelager\",\"total_builds\":\"Totale jobber\",\"total_projects\":\"Antall prosjekter/kodelagre\"}},\"workers\":\"Arbeidere\",\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"ja\":\"\u65e5\u672c\u8a9e\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"fr\":\"Fran\u00e7ais\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"nl\":{\"admin\":{\"actions\":{\"create\":\"aanmaken\",\"created\":\"aangemaakt\",\"delete\":\"verwijderen\",\"deleted\":\"verwijderd\",\"update\":\"bijwerken\",\"updated\":\"bijgewerkt\"},\"credentials\":{\"log_out\":\"Afmelden\"},\"dashboard\":{\"add_new\":\"Nieuwe toevoegen\",\"ago\":\"geleden\",\"last_used\":\"Laatst gebruikt\",\"model_name\":\"Model naam\",\"modify\":\"Wijzigen\",\"pagename\":\"Site administratie\",\"show\":\"Laten zien\",\"records\":\"Gegevens\"},\"delete\":{\"confirmation\":\"Ja, ik ben zeker\",\"flash_confirmation\":\"%{name} is vernietigd\"},\"flash\":{\"error\":\"%{name} kon niet worden %{action}\",\"noaction\":\"Er zijn geen acties genomen\",\"successful\":\"%{name} is %{action}\"},\"history\":{\"name\":\"Geschiedenis\",\"no_activity\":\"Geen activiteit\",\"page_name\":\"Geschiedenis van %{name}\"},\"list\":{\"add_new\":\"Nieuwe toevoegen\",\"delete_action\":\"Verwijderen\",\"delete_selected\":\"Verwijder geselecteerden\",\"edit_action\":\"Bewerken\",\"search\":\"Zoeken\",\"select\":\"Selecteer %{name} om te bewerken\",\"select_action\":\"Selecteer\",\"show_all\":\"Laat allen zien\"},\"new\":{\"basic_info\":\"Basisinfo\",\"cancel\":\"Annuleren\",\"chosen\":\"%{name} gekozen\",\"chose_all\":\"Kies allen\",\"clear_all\":\"Deselecteer allen\",\"many_chars\":\"tekens of minder.\",\"one_char\":\"teken.\",\"optional\":\"Optioneel\",\"required\":\"Vereist\",\"save\":\"Opslaan\",\"save_and_add_another\":\"Opslaan en een nieuwe toevoegen\",\"save_and_edit\":\"Opslaan en bewerken\",\"select_choice\":\"Selecteer uw keuzes en klik\"}},\"build\":{\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"job\":\"Taak\"},\"builds\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw Matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze tests zijn gedraaid op een machine gesponsord door\"},\"name\":\"Bouw\",\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} uur\",\"other\":\"%{count} uren\"},\"minutes_exact\":{\"one\":\"%{count} minuut\",\"other\":\"%{count} minuten\"},\"seconds_exact\":{\"one\":\"%{count} seconde\",\"other\":\"%{count} seconden\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Uw account is bevestigd. U wordt nu ingelogd.\",\"send_instructions\":\"Binnen enkele minuten zal u een email ontvangen met instructies om uw account te bevestigen.\"},\"failure\":{\"inactive\":\"Uw account is nog niet geactiveerd.\",\"invalid\":\"Ongeldig email adres of wachtwoord.\",\"invalid_token\":\"Ongeldig authenticatie token.\",\"locked\":\"Uw account is vergrendeld.\",\"timeout\":\"Uw sessie is verlopen, gelieve opnieuw in te loggen om verder te gaan.\",\"unauthenticated\":\"U moet inloggen of u registeren voordat u verder gaat.\",\"unconfirmed\":\"U moet uw account bevestigen voordat u verder gaat.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Bevestigings-instructies\"},\"reset_password_instructions\":{\"subject\":\"Wachtwoord herstel instructies\"},\"unlock_instructions\":{\"subject\":\"Ontgrendel-instructies\"}},\"passwords\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw wachtwoord opnieuw in te stellen.\",\"updated\":\"Uw wachtwoord is veranderd. U wordt nu ingelogd.\"},\"registrations\":{\"destroyed\":\"Dag! Uw account is geannuleerd. We hopen u vlug terug te zien.\",\"signed_up\":\"Uw registratie is voltooid. Als het ingeschakeld is wordt een bevestiging naar uw email adres verzonden.\",\"updated\":\"Het bijwerken van uw account is gelukt.\"},\"sessions\":{\"signed_in\":\"Inloggen gelukt.\",\"signed_out\":\"Uitloggen gelukt.\"},\"unlocks\":{\"send_instructions\":\"Binnen enkele minuten zal u een email krijgen met instructies om uw account te ontgrendelen.\",\"unlocked\":\"Uw account is ontgrendeld. U wordt nu ingelogd.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"was al bevestigd\",\"not_found\":\"niet gevonden\",\"not_locked\":\"was niet vergrendeld\"}},\"jobs\":{\"allowed_failures\":\"Toegestane mislukkingen\",\"author\":\"Auteur\",\"branch\":\"Tak\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"message\":\"Bericht\",\"messages\":{\"sponsored_by\":\"Deze testen zijn uitgevoerd op een machine gesponsord door\"},\"started_at\":\"Gestart\",\"commit\":\"Commit\",\"committer\":\"Committer\"},\"layouts\":{\"about\":{\"alpha\":\"Dit is in alfa-stadium.\",\"join\":\"Doe met ons mee en help!\",\"mailing_list\":\"Mailing lijst\",\"messages\":{\"alpha\":\"Gelieve deze service <strong>niet</strong> te beschouwen als stabiel. Daar zijn we nog lang niet! Meer info <a href='https://github.com/travis-ci'>hier.</a>\"},\"repository\":\"Repository\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Maak een fork op Github\",\"my_repositories\":\"Mijn repositories\",\"recent\":\"Recent\",\"search\":\"Zoeken\",\"sponsers\":\"Sponsors\",\"sponsors_link\":\"Bekijk al onze geweldige sponsors &rarr;\"},\"mobile\":{\"author\":\"Auteur\",\"build\":\"Bouw\",\"build_matrix\":\"Bouw matrix\",\"compare\":\"Vergelijk\",\"config\":\"Configuratie\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid op\",\"job\":\"Taak\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"log\":\"Logboek\"},\"top\":{\"admin\":\"Administratie\",\"blog\":\"Blog\",\"docs\":\"Documentatie\",\"github_login\":\"Inloggen met Github\",\"home\":\"Home\",\"profile\":\"Profiel\",\"sign_out\":\"Uitloggen\",\"stats\":\"Statistieken\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"pt-BR\":\"portugu\u00eas brasileiro\"},\"no_job\":\"Er zijn geen taken\",\"profiles\":{\"show\":{\"email\":\"Email adres\",\"github\":\"Github\",\"message\":{\"config\":\"hoe eigen bouw-opties in te stellen\",\"your_repos\":\"Zet de schakelaars hieronder aan om de Travis hook voor uw projecten te activeren en push daarna naar Github<br />\\nOm te testen tegen meerdere rubies, zie\"},\"messages\":{\"notice\":\"Om te beginnen kunt u onze <a href=\\\\\\\"http://about.travis-ci.org/docs/user/getting-started/\\\\\\\">startersgids</a> lezen.\\\\n <small>Het zal maar enkele minuten van uw tijd vergen.</small>\"},\"update\":\"Bijwerken\",\"update_locale\":\"Bijwerken\",\"your_locale\":\"Uw taal\",\"your_repos\":\"Uw repositories\",\"token\":\"Token\"}},\"queue\":\"Wachtrij\",\"repositories\":{\"branch\":\"Tak\",\"duration\":\"Duur\",\"finished_at\":\"Voltooid\",\"image_url\":\"Afbeeldings URL\",\"message\":\"Bericht\",\"started_at\":\"Gestart\",\"tabs\":{\"branches\":\"Tak samenvatting\",\"build\":\"Bouw\",\"build_history\":\"Bouw geschiedenis\",\"current\":\"Huidig\",\"job\":\"Taak\"},\"commit\":\"Commit\",\"markdown\":\"Markdown\",\"rdoc\":\"RDOC\",\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Duur\"},\"statistics\":{\"index\":{\"build_count\":\"Bouw aantal\",\"count\":\"Aantal\",\"last_month\":\"voorbije maand\",\"repo_growth\":\"Repository groei\",\"total_builds\":\"Bouw totaal\",\"total_projects\":\"Projecten/Repository totaal\"}},\"workers\":\"Machines\",\"home\":{\"name\":\"Hoofdpagina\"}},\"pl\":{\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} godzina\",\"other\":\"%{count} godziny\"},\"minutes_exact\":{\"one\":\"%{count} minuta\",\"other\":\"%{count} minuty\"},\"seconds_exact\":{\"one\":\"%{count} sekunda\",\"other\":\"%{count} sekundy\"}}},\"workers\":\"Workers\",\"queue\":\"Kolejka\",\"no_job\":\"Brak zada\u0144\",\"repositories\":{\"branch\":\"Ga\u0142\u0105\u017a\",\"image_url\":\"URL obrazka\",\"markdown\":\"Markdown\",\"textile\":\"Textile\",\"rdoc\":\"RDOC\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpocz\u0119to\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zako\u0144czono\",\"tabs\":{\"current\":\"Aktualny\",\"build_history\":\"Historia Build\u00f3w\",\"branches\":\"Wszystkie Ga\u0142\u0119zie\",\"build\":\"Build\",\"job\":\"Zadanie\"}},\"build\":{\"job\":\"Zadanie\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zako\u0144czono\"},\"jobs\":{\"messages\":{\"sponsored_by\":\"Te testy zosta\u0142y uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Build\u00f3w\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Por\u00f3wnanie\",\"committer\":\"Committer\",\"branch\":\"Ga\u0142\u0105\u017a\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpocz\u0119to\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zako\u0144czono\",\"sponsored_by\":\"Te testy zosta\u0142y uruchomione na maszynie sponsorowanej przez\"},\"builds\":{\"name\":\"Build\",\"messages\":{\"sponsored_by\":\"Te testy zosta\u0142y uruchomione na maszynie sponsorowanej przez\"},\"build_matrix\":\"Macierz Build\u00f3w\",\"allowed_failures\":\"Dopuszczalne Niepowodzenia\",\"author\":\"Autor\",\"config\":\"Konfiguracja\",\"compare\":\"Por\u00f3wnanie\",\"committer\":\"Komituj\u0105cy\",\"branch\":\"Ga\u0142\u0105\u017a\",\"commit\":\"Commit\",\"message\":\"Opis\",\"started_at\":\"Rozpocz\u0119to\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zako\u0144czono\"},\"layouts\":{\"top\":{\"home\":\"Start\",\"blog\":\"Blog\",\"docs\":\"Dokumentacja\",\"stats\":\"Statystki\",\"github_login\":\"Zaloguj si\u0119 przy pomocy Githuba\",\"profile\":\"Profil\",\"sign_out\":\"Wyloguj si\u0119\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"recent\":\"Ostatnie\",\"search\":\"Wyniki\",\"sponsers\":\"Sponsorzy\",\"sponsors_link\":\"Zobacz naszych wszystkich wspania\u0142ych sponsor\u00f3w &rarr;\",\"my_repositories\":\"Moje repozytoria\"},\"about\":{\"alpha\":\"To wci\u0105\u017c jest wersja alpha.\",\"messages\":{\"alpha\":\"Prosz\u0119 <strong>nie</strong> traktuj tego jako stabilnej us\u0142ugi. Wci\u0105\u017c nam wiele do tego brakuje! Wi\u0119cej informacji znajdziesz <a href='https://github.com/travis-ci'>tutaj.</a>\"},\"join\":\"Pom\u00f3\u017c i do\u0142\u0105cz do nas!\",\"mailing_list\":\"Lista mailingowa\",\"repository\":\"Repozytorium\",\"twitter\":\"Twitter\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Macierz Build\u00f3w\",\"commit\":\"Commit\",\"committer\":\"Komituj\u0105cy\",\"compare\":\"Por\u00f3wnianie\",\"config\":\"Konfiguracja\",\"duration\":\"Czas trwania\",\"finished_at\":\"Zako\u0144czono\",\"job\":\"Zadanie\",\"log\":\"Log\"}},\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"your_repos\":\" Przesu\u0144 suwak poni\u017cej, aby w\u0142\u0105czy\u0107 Travisa, dla twoich projekt\u00f3w, a nast\u0119pnie umie\u015b\u0107 sw\u00f3j kod na GitHubie.<br />\\n Aby testowa\u0107 sw\u00f3j kod przy u\u017cyciu wielu wersji Rubiego, zobacz\",\"config\":\"jak skonfigurowa\u0107 niestandardowe opcje builda\"},\"messages\":{\"notice\":\"Aby zacz\u0105\u0107, przeczytaj nasz <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Przewodnik </a>.\\n <small>Zajmie ci to tylko kilka minut.</small>\"},\"token\":\"Token\",\"your_repos\":\"Twoje repozytoria\"}},\"statistics\":{\"index\":{\"count\":\"Ilo\u015b\u0107\",\"repo_growth\":\"Przyrost repozytori\u00f3w\",\"total_projects\":\"\u0141\u0105cznie projekt\u00f3w/repozytori\u00f3w\",\"build_count\":\"Liczba build\u00f3w\",\"last_month\":\"ostatni miesi\u0105c\",\"total_builds\":\"\u0141\u0105cznie Build\u00f3w\"}},\"date\":{\"abbr_day_names\":[\"nie\",\"pon\",\"wto\",\"\u015bro\",\"czw\",\"pi\u0105\",\"sob\"],\"abbr_month_names\":[\"sty\",\"lut\",\"mar\",\"kwi\",\"maj\",\"cze\",\"lip\",\"sie\",\"wrz\",\"pa\u017a\",\"lis\",\"gru\"],\"day_names\":[\"niedziela\",\"poniedzia\u0142ek\",\"wtorek\",\"\u015broda\",\"czwartek\",\"pi\u0105tek\",\"sobota\"],\"formats\":{\"default\":\"%d-%m-%Y\",\"long\":\"%B %d, %Y\",\"short\":\"%d %b\"},\"month_names\":[\"stycze\u0144\",\"luty\",\"marzec\",\"kwiecie\u0144\",\"maj\",\"czerwiec\",\"lipiec\",\"sierpie\u0144\",\"wrzesie\u0144\",\"pa\u017adziernik\",\"listopad\",\"grudzie\u0144\"],\"order\":[\"day\",\"month\",\"year\"]},\"errors\":{\"format\":\"%{attribute} %{message}\",\"messages\":{\"accepted\":\"musi zosta\u0107 zaakceptowane\",\"blank\":\"nie mo\u017ce by\u0107 puste\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"ja\":\"\u65e5\u672c\u8a9e\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"fr\":\"Fran\u00e7ais\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}},\"pt-BR\":{\"admin\":{\"actions\":{\"create\":\"criar\",\"created\":\"criado\",\"delete\":\"deletar\",\"deleted\":\"deletado\",\"update\":\"atualizar\",\"updated\":\"atualizado\"},\"credentials\":{\"log_out\":\"Deslogar\"},\"dashboard\":{\"add_new\":\"Adicionar novo\",\"ago\":\"atr\u00e1s\",\"last_used\":\"\u00daltima utiliza\u00e7\u00e3o\",\"model_name\":\"Nome do modelo\",\"modify\":\"Modificar\",\"name\":\"Dashboard\",\"pagename\":\"Administra\u00e7\u00e3o do site\",\"records\":\"Registros\",\"show\":\"Mostrar\"},\"delete\":{\"confirmation\":\"Sim, tenho certeza\",\"flash_confirmation\":\"%{name} foi destru\u00eddo com sucesso\"},\"flash\":{\"error\":\"%{name} falhou ao %{action}\",\"noaction\":\"Nenhuma a\u00e7\u00e3o foi tomada\",\"successful\":\"%{name} foi %{action} com sucesso\"},\"history\":{\"name\":\"Hist\u00f3rico\",\"no_activity\":\"Nenhuma Atividade\",\"page_name\":\"Hist\u00f3rico para %{name}\"},\"list\":{\"add_new\":\"Adicionar novo\",\"delete_action\":\"Deletar\",\"delete_selected\":\"Deletar selecionados\",\"edit_action\":\"Editar\",\"search\":\"Buscar\",\"select\":\"Selecionar %{name} para editar\",\"select_action\":\"Selecionar\",\"show_all\":\"Mostrar todos\"},\"new\":{\"basic_info\":\"Informa\u00e7\u00f5es b\u00e1sicas\",\"cancel\":\"Cancelar\",\"chosen\":\"Escolhido %{name}\",\"chose_all\":\"Escolher todos\",\"clear_all\":\"Limpar todos\",\"many_chars\":\"caracteres ou menos.\",\"one_char\":\"caractere.\",\"optional\":\"Opcional\",\"required\":\"Requerido\",\"save\":\"Salvar\",\"save_and_add_another\":\"Salvar e adicionar outro\",\"save_and_edit\":\"Salvar e alterar\",\"select_choice\":\"Selecione e clique\"}},\"build\":{\"duration\":\"Dura\u00e7\u00e3o\",\"finished_at\":\"Conclu\u00eddo em\",\"job\":\"Trabalho\"},\"builds\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Dura\u00e7\u00e3o\",\"finished_at\":\"Conclu\u00eddo em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta s\u00e9rie de testes foi executada em uma caixa de processos patrocinada por\"},\"name\":\"Build\",\"started_at\":\"Iniciou em\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} hora\",\"other\":\"%{count} horas\"},\"minutes_exact\":{\"one\":\"%{count} minuto\",\"other\":\"%{count} minutos\"},\"seconds_exact\":{\"one\":\"%{count} segundo\",\"other\":\"%{count} segundos\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"Sua conta foi confirmada com sucesso. Voc\u00ea agora est\u00e1 logado.\",\"send_instructions\":\"Voc\u00ea receber\u00e1 um email com instru\u00e7\u00f5es de como confirmar sua conta em alguns minutos.\"},\"failure\":{\"inactive\":\"Sua conta ainda n\u00e3o foi ativada.\",\"invalid\":\"Email ou senha inv\u00e1lidos.\",\"invalid_token\":\"Token de autentica\u00e7\u00e3o inv\u00e1lido.\",\"locked\":\"Sua conta est\u00e1 trancada.\",\"timeout\":\"Sua sess\u00e3o expirou, por favor fa\u00e7a seu login novamente.\",\"unauthenticated\":\"Voc\u00ea precisa fazer o login ou cadastrar-se antes de continuar.\",\"unconfirmed\":\"Voc\u00ea precisa confirmar sua conta antes de continuar.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"Instru\u00e7\u00f5es de confirma\u00e7\u00e3o\"},\"reset_password_instructions\":{\"subject\":\"Instru\u00e7\u00f5es de atualiza\u00e7\u00e3o de senha\"},\"unlock_instructions\":{\"subject\":\"Instru\u00e7\u00f5es de destrancamento\"}},\"passwords\":{\"send_instructions\":\"Voc\u00ea receber\u00e1 um email com instru\u00e7\u00f5es de como atualizar sua senha em alguns minutos.\",\"updated\":\"Sua senha foi alterada com sucesso. Voc\u00ea agora est\u00e1 logado.\"},\"registrations\":{\"destroyed\":\"Tchau! Sua conta foi cancelada com sucesso. Esperamos v\u00ea-lo novamente em breve!\",\"signed_up\":\"Voc\u00ea se cadastrou com sucesso. Se ativada, uma confirma\u00e7\u00e3o foi enviada para seu email.\",\"updated\":\"Voc\u00ea atualizou sua conta com sucesso.\"},\"sessions\":{\"signed_in\":\"Logado com sucesso.\",\"signed_out\":\"Deslogado com sucesso.\"},\"unlocks\":{\"send_instructions\":\"Voc\u00ea receber\u00e1 um email com instru\u00e7\u00f5es de como destrancar sua conta em alguns minutos.\",\"unlocked\":\"Sua conta foi destrancada com sucesso. Voc\u00ea agora est\u00e1 logado.\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"j\u00e1 foi confirmado\",\"not_found\":\"n\u00e3o encontrado\",\"not_locked\":\"n\u00e3o estava trancado\"}},\"home\":{\"name\":\"home\"},\"jobs\":{\"allowed_failures\":\"Falhas Permitidas\",\"author\":\"Autor\",\"branch\":\"Branch\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Dura\u00e7\u00e3o\",\"finished_at\":\"Conclu\u00eddo em\",\"message\":\"Mensagem\",\"messages\":{\"sponsored_by\":\"Esta s\u00e9rie de testes foi executada em uma caixa de processos patrocinada por\"},\"started_at\":\"Iniciou em\"},\"layouts\":{\"about\":{\"alpha\":\"Isto \u00e9 um alpha.\",\"join\":\"Junte-se \u00e0 n\u00f3s e ajude!\",\"mailing_list\":\"Lista de email\",\"messages\":{\"alpha\":\"Por favor, <strong>n\u00e3o</strong> considere isto um servi\u00e7o est\u00e1vel. Estamos muito longe disso! Mais informa\u00e7\u00f5es <a href='https://github.com/travis-ci'>aqui.</a>\"},\"repository\":\"Reposit\u00f3rio\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Fa\u00e7a fork no Github\",\"my_repositories\":\"Meus Reposit\u00f3rios\",\"recent\":\"Recentes\",\"search\":\"Buscar\",\"sponsers\":\"Patrocinadores\",\"sponsors_link\":\"Conhe\u00e7a todos os nossos patrocinadores &rarr;\"},\"mobile\":{\"author\":\"Autor\",\"build\":\"Build\",\"build_matrix\":\"Matriz de Build\",\"commit\":\"Commit\",\"committer\":\"Committer\",\"compare\":\"Comparar\",\"config\":\"Config\",\"duration\":\"Dura\u00e7\u00e3o\",\"finished_at\":\"Conclu\u00eddo em\",\"job\":\"Trabalho\",\"log\":\"Log\"},\"top\":{\"admin\":\"Admin\",\"blog\":\"Blog\",\"docs\":\"Documenta\u00e7\u00e3o\",\"github_login\":\"Logue com o Github\",\"home\":\"Home\",\"profile\":\"Perfil\",\"sign_out\":\"Sair\",\"stats\":\"Estat\u00edsticas\"}},\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"fr\":\"Fran\u00e7ais\",\"ja\":\"\u65e5\u672c\u8a9e\",\"nb\":\"Norsk Bokm\u00e5l\",\"nl\":\"Nederlands\",\"pl\":\"Polski\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"pt-BR\":\"portugu\u00eas brasileiro\"},\"no_job\":\"N\u00e3o h\u00e1 trabalhos\",\"profiles\":{\"show\":{\"email\":\"Email\",\"github\":\"Github\",\"message\":{\"config\":\"como configurar op\u00e7\u00f5es de build\",\"your_repos\":\"Use os bot\u00f5es abaixo para ligar ou desligar o hook de servi\u00e7o do Travis para seus projetos, e ent\u00e3o, fa\u00e7a um push para o Github.<br />Para testar com m\u00faltiplas vers\u00f5es do Ruby, leia\"},\"messages\":{\"notice\":\"Para come\u00e7ar, leia nosso <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">Guia de in\u00edcio</a>. <small>S\u00f3 leva alguns minutinhos.</small>\"},\"token\":\"Token\",\"update\":\"Atualizar\",\"update_locale\":\"Atualizar\",\"your_locale\":\"Sua l\u00edngua\",\"your_repos\":\"Seus Reposit\u00f3rios\"}},\"queue\":\"Fila\",\"repositories\":{\"branch\":\"Branch\",\"commit\":\"Commit\",\"duration\":\"Dura\u00e7\u00e3o\",\"finished_at\":\"Conclu\u00eddo em\",\"image_url\":\"URL da imagem\",\"markdown\":\"Markdown\",\"message\":\"Mensagem\",\"rdoc\":\"RDOC\",\"started_at\":\"Iniciou em\",\"tabs\":{\"branches\":\"Sum\u00e1rio do Branch\",\"build\":\"Build\",\"build_history\":\"Hist\u00f3rico de Build\",\"current\":\"Atual\",\"job\":\"Trabalho\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"Dura\u00e7\u00e3o\"},\"statistics\":{\"index\":{\"build_count\":\"N\u00famero de Builds\",\"count\":\"N\u00famero\",\"last_month\":\"\u00faltimo m\u00eas\",\"repo_growth\":\"Crescimento de Reposit\u00f3rio\",\"total_builds\":\"Total de Builds\",\"total_projects\":\"Total de Projetos/Reposit\u00f3rios\"}},\"workers\":\"Processos\"},\"ru\":{\"admin\":{\"actions\":{\"create\":\"\u0441\u043e\u0437\u0434\u0430\u0442\u044c\",\"created\":\"\u0441\u043e\u0437\u0434\u0430\u043d\u043e\",\"delete\":\"\u0443\u0434\u0430\u043b\u0438\u0442\u044c\",\"deleted\":\"\u0443\u0434\u0430\u043b\u0435\u043d\u043e\",\"update\":\"\u043e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\",\"updated\":\"\u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d\u043e\"},\"credentials\":{\"log_out\":\"\u0412\u044b\u0445\u043e\u0434\"},\"dashboard\":{\"add_new\":\"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\",\"ago\":\"\u043d\u0430\u0437\u0430\u0434\",\"last_used\":\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043b\u043e\u0441\u044c \u0432 \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0438\u0439 \u0440\u0430\u0437\",\"model_name\":\"\u0418\u043c\u044f \u043c\u043e\u0434\u0435\u043b\u0438\",\"modify\":\"\u0418\u0437\u043c\u0435\u043d\u0438\u0442\u044c\",\"name\":\"\u041f\u0430\u043d\u0435\u043b\u044c \u0443\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u044f\",\"pagename\":\"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435 \u0441\u0430\u0439\u0442\u043e\u043c\",\"records\":\"\u0417\u0430\u043f\u0438\u0441\u0438\",\"show\":\"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\"},\"delete\":{\"confirmation\":\"\u0414\u0430, \u044f \u0443\u0432\u0435\u0440\u0435\u043d\",\"flash_confirmation\":\"%{name} \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d\u043e\"},\"history\":{\"name\":\"\u0418\u0441\u0442\u043e\u0440\u0438\u044f\",\"no_activity\":\"\u041d\u0435\u0442 \u0430\u043a\u0442\u0438\u0432\u043d\u043e\u0441\u0442\u0438\",\"page_name\":\"\u0418\u0441\u0442\u043e\u0440\u0438\u044f %{name}\"},\"list\":{\"add_new\":\"\u0414\u043e\u0431\u0430\u0432\u0438\u0442\u044c\",\"delete_action\":\"\u0423\u0434\u0430\u043b\u0438\u0442\u044c\",\"delete_selected\":\"\u0423\u0434\u0430\u043b\u0438\u0442\u044c \u0432\u044b\u0431\u0440\u0430\u043d\u043d\u044b\u0435\",\"edit_action\":\"\u0420\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u0442\u044c\",\"search\":\"\u041f\u043e\u0438\u0441\u043a\",\"select\":\"\u0414\u043b\u044f \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0432\u044b\u0431\u0435\u0440\u0438\u0442\u0435 %{name}\",\"select_action\":\"\u0412\u044b\u0431\u0440\u0430\u0442\u044c\",\"show_all\":\"\u041f\u043e\u043a\u0430\u0437\u0430\u0442\u044c \u0432\u0441\u0435\"},\"new\":{\"basic_info\":\"\u041e\u0441\u043d\u043e\u0432\u043d\u0430\u044f \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u044f\",\"cancel\":\"\u041e\u0442\u043c\u0435\u043d\u0430\",\"chosen\":\"\u0412\u044b\u0431\u0440\u0430\u043d\u043e %{name}\",\"chose_all\":\"\u0412\u044b\u0431\u0440\u0430\u0442\u044c \u0432\u0441\u0435\",\"clear_all\":\"\u041e\u0447\u0438\u0441\u0442\u0438\u0442\u044c \u0432\u0441\u0435\",\"one_char\":\"\u0441\u0438\u043c\u0432\u043e\u043b.\",\"optional\":\"\u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\",\"required\":\"\u041e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u043e\",\"save\":\"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c\",\"save_and_add_another\":\"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c \u0434\u0440\u0443\u0433\u043e\u0435\",\"save_and_edit\":\"\u0421\u043e\u0445\u0440\u0430\u043d\u0438\u0442\u044c \u0438 \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0438\u0442\u044c \u0440\u0435\u0434\u0430\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\",\"select_choice\":\"\u0412\u044b\u0431\u0435\u0440\u0438\u0442\u0435 \u0438 \u043a\u043b\u0438\u043a\u043d\u0438\u0442\u0435\",\"many_chars\":\"\u0441\u0438\u043c\u0432\u043e\u043b\u043e\u0432 \u0438\u043b\u0438 \u043c\u0435\u043d\u044c\u0448\u0435.\"},\"flash\":{\"error\":\"%{name} \u043d\u0435 \u0443\u0434\u0430\u043b\u043e\u0441\u044c %{action}\",\"noaction\":\"\u041d\u0438\u043a\u0430\u043a\u0438\u0445 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0439 \u043d\u0435 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u043e\",\"successful\":\"%{name} \u0431\u044b\u043b\u043e \u0443\u0441\u043f\u0435\u0448\u043d\u043e %{action}\"}},\"build\":{\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\",\"finished_at\":\"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\",\"job\":\"\u0417\u0430\u0434\u0430\u0447\u0430\"},\"builds\":{\"allowed_failures\":\"\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u0438\",\"author\":\"\u0410\u0432\u0442\u043e\u0440\",\"branch\":\"\u0412\u0435\u0442\u043a\u0430\",\"build_matrix\":\"\u041c\u0430\u0442\u0440\u0438\u0446\u0430\",\"commit\":\"\u041a\u043e\u043c\u043c\u0438\u0442\",\"committer\":\"\u041a\u043e\u043c\u043c\u0438\u0442\u0435\u0440\",\"compare\":\"\u0414\u0438\u0444\u0444\",\"config\":\"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\",\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\",\"finished_at\":\"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\",\"message\":\"\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439\",\"messages\":{\"sponsored_by\":\"\u042d\u0442\u0430 \u0441\u0435\u0440\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u0431\u044b\u043b\u0430 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435, \u0441\u043f\u043e\u043d\u0441\u0438\u0440\u0443\u0435\u043c\u043e\u0439\"},\"name\":\"\u0411\u0438\u043b\u0434\",\"started_at\":\"\u041d\u0430\u0447\u0430\u043b\u043e\"},\"datetime\":{\"distance_in_words\":{\"hours_exact\":{\"one\":\"%{count} \u0447\u0430\u0441\",\"few\":\"%{count} \u0447\u0430\u0441\u0430\",\"many\":\"%{count} \u0447\u0430\u0441\u043e\u0432\",\"other\":\"%{count} \u0447\u0430\u0441\u0430\"},\"minutes_exact\":{\"one\":\"%{count} \u043c\u0438\u043d\u0443\u0442\u0430\",\"few\":\"%{count} \u043c\u0438\u043d\u0443\u0442\u044b\",\"many\":\"%{count} \u043c\u0438\u043d\u0443\u0442\",\"other\":\"%{count} \u043c\u0438\u043d\u0443\u0442\u044b\"},\"seconds_exact\":{\"one\":\"%{count} \u0441\u0435\u043a\u0443\u043d\u0434\u0430\",\"few\":\"%{count} \u0441\u0435\u043a\u0443\u043d\u0434\u044b\",\"many\":\"%{count} \u0441\u0435\u043a\u0443\u043d\u0434\",\"other\":\"%{count} \u0441\u0435\u043a\u0443\u043d\u0434\u044b\"}}},\"devise\":{\"confirmations\":{\"confirmed\":\"\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d. \u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c!\",\"send_instructions\":\"\u0412 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0438\u043d\u0443\u0442 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u044f \u043f\u0440\u043e\u0446\u0435\u0434\u0443\u0440\u044b \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430.\"},\"failure\":{\"inactive\":\"\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0435\u0449\u0435 \u043d\u0435 \u0430\u043a\u0442\u0438\u0432\u0438\u0440\u043e\u0432\u0430\u043d.\",\"invalid\":\"\u041e\u0448\u0438\u0431\u043a\u0430 \u0432 \u0430\u0434\u0440\u0435\u0441\u0435 \u043f\u043e\u0447\u0442\u044b \u0438\u043b\u0438 \u043f\u0430\u0440\u043e\u043b\u0435.\",\"invalid_token\":\"\u041d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439 \u0442\u043e\u043a\u0435\u043d \u0430\u0443\u0442\u0435\u043d\u0442\u0438\u0444\u0438\u043a\u0430\u0446\u0438\u0438.\",\"locked\":\"\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d.\",\"timeout\":\"\u0421\u0435\u0441\u0441\u0438\u044f \u043e\u043a\u043e\u043d\u0447\u0435\u043d\u0430. \u0414\u043b\u044f \u043f\u0440\u043e\u0434\u043e\u043b\u0436\u0435\u043d\u0438\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0432\u043e\u0439\u0434\u0438\u0442\u0435 \u0441\u043d\u043e\u0432\u0430.\",\"unauthenticated\":\"\u0412\u0430\u043c \u043d\u0443\u0436\u043d\u043e \u0432\u043e\u0439\u0442\u0438 \u0438\u043b\u0438 \u0437\u0430\u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0438\u0440\u043e\u0432\u0430\u0442\u044c\u0441\u044f.\",\"unconfirmed\":\"\u0412\u044b \u0434\u043e\u043b\u0436\u043d\u044b \u0441\u043d\u0430\u0447\u0430\u043b\u0430 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044c \u0441\u0432\u043e\u0439 \u0430\u043a\u043a\u0430\u0443\u043d\u0442.\"},\"mailer\":{\"confirmation_instructions\":{\"subject\":\"\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044e \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430\"},\"reset_password_instructions\":{\"subject\":\"\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u043f\u0430\u0440\u043e\u043b\u044f\"},\"unlock_instructions\":{\"subject\":\"\u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430\"}},\"passwords\":{\"send_instructions\":\"\u0412 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0438\u043d\u0443\u0442 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c\u0438 \u0434\u043b\u044f \u0441\u0431\u0440\u043e\u0441\u0430 \u043f\u0430\u0440\u043e\u043b\u044f.\",\"updated\":\"\u0412\u0430\u0448 \u043f\u0430\u0440\u043e\u043b\u044c \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0438\u0437\u043c\u0435\u043d\u0435\u043d. \u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c!\"},\"registrations\":{\"destroyed\":\"\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0431\u044b\u043b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0443\u0434\u0430\u043b\u0435\u043d. \u0416\u0438\u0432\u0438\u0442\u0435 \u0434\u043e\u043b\u0433\u043e \u0438 \u043f\u0440\u043e\u0446\u0432\u0435\u0442\u0430\u0439\u0442\u0435!\",\"signed_up\":\"\u0412\u044b \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043f\u0440\u043e\u0448\u043b\u0438 \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044e. \u0418\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u0438 \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430 \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u044b \u043d\u0430 \u0432\u0430\u0448 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441.\",\"updated\":\"\u0410\u043a\u043a\u0430\u0443\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u043e\u0431\u043d\u043e\u0432\u043b\u0435\u043d.\"},\"sessions\":{\"signed_in\":\"\u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c!\",\"signed_out\":\"\u0423\u0434\u0430\u0447\u0438!\"},\"unlocks\":{\"send_instructions\":\"\u0412 \u0442\u0435\u0447\u0435\u043d\u0438\u0438 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u043c\u0438\u043d\u0443\u0442 \u0432\u044b \u043f\u043e\u043b\u0443\u0447\u0438\u0442\u0435 \u044d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u043e\u0435 \u043f\u0438\u0441\u044c\u043c\u043e \u0441 \u0438\u043d\u0441\u0442\u0440\u0443\u043a\u0446\u0438\u044f\u043c \u0434\u043b\u044f \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u043d\u0438\u044f \u0430\u043a\u043a\u0430\u0443\u043d\u0442\u0430.\",\"unlocked\":\"\u0412\u0430\u0448 \u0430\u043a\u043a\u0430\u0443\u043d\u0442 \u0443\u0441\u043f\u0435\u0448\u043d\u043e \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d. \u041f\u0440\u0438\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u0435\u043c!\"}},\"errors\":{\"messages\":{\"already_confirmed\":\"\u0443\u0436\u0435 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\",\"not_found\":\"\u043d\u0435 \u043d\u0430\u0439\u0434\u0435\u043d\",\"not_locked\":\"\u043d\u0435 \u0437\u0430\u0431\u043b\u043e\u043a\u0438\u0440\u043e\u0432\u0430\u043d\"}},\"home\":{\"name\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\"},\"jobs\":{\"allowed_failures\":\"\u0414\u043e\u043f\u0443\u0441\u0442\u0438\u043c\u044b\u0435 \u043d\u0435\u0443\u0434\u0430\u0447\u0438\",\"author\":\"\u0410\u0432\u0442\u043e\u0440\",\"branch\":\"\u0412\u0435\u0442\u043a\u0430\",\"build_matrix\":\"\u041c\u0430\u0442\u0440\u0438\u0446\u0430\",\"commit\":\"\u041a\u043e\u043c\u043c\u0438\u0442\",\"committer\":\"\u041a\u043e\u043c\u043c\u0438\u0442\u0435\u0440\",\"compare\":\"\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\",\"config\":\"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\",\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\",\"finished_at\":\"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\",\"message\":\"\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439\",\"messages\":{\"sponsored_by\":\"\u042d\u0442\u0430 \u0441\u0435\u0440\u0438\u044f \u0442\u0435\u0441\u0442\u043e\u0432 \u0431\u044b\u043b\u0430 \u0437\u0430\u043f\u0443\u0449\u0435\u043d\u0430 \u043d\u0430 \u043c\u0430\u0448\u0438\u043d\u0435 \u0441\u043f\u043e\u043d\u0441\u0438\u0440\u0443\u0435\u043c\u043e\u0439\"},\"started_at\":\"\u041d\u0430\u0447\u0430\u043b\u043e\"},\"layouts\":{\"about\":{\"alpha\":\"\u042d\u0442\u043e \u0430\u043b\u044c\u0444\u0430-\u0432\u0435\u0440\u0441\u0438\u044f\",\"join\":\"\u041f\u0440\u0438\u0441\u043e\u0435\u0434\u0438\u043d\u044f\u0439\u0442\u0435\u0441\u044c \u043a \u043d\u0430\u043c \u0438 \u043f\u043e\u043c\u043e\u0433\u0430\u0439\u0442\u0435!\",\"mailing_list\":\"\u041b\u0438\u0441\u0442 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438\",\"messages\":{\"alpha\":\"\u041f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, <strong>\u043d\u0435</strong> \u0441\u0447\u0438\u0442\u0430\u0439\u0442\u0435 \u0434\u0430\u043d\u043d\u044b\u0439 \u0441\u0435\u0440\u0432\u0438\u0441 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u044b\u043c. \u041c\u044b \u0435\u0449\u0435 \u043e\u0447\u0435\u043d\u044c \u0434\u0430\u043b\u0435\u043a\u0438 \u043e\u0442 \u0441\u0442\u0430\u0431\u0438\u043b\u044c\u043d\u043e\u0441\u0442\u0438! <a href='https://github.com/travis-ci'>\u041f\u043e\u0434\u0440\u043e\u0431\u043d\u043e\u0441\u0442\u0438</a>\"},\"repository\":\"\u0420\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439\",\"twitter\":\"Twitter\"},\"application\":{\"fork_me\":\"Fork me on Github\",\"my_repositories\":\"\u041c\u043e\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438\",\"recent\":\"\u041d\u0435\u0434\u0430\u0432\u043d\u0438\u0435\",\"search\":\"\u041f\u043e\u0438\u0441\u043a\",\"sponsers\":\"\u0421\u043f\u043e\u043d\u0441\u043e\u0440\u044b\",\"sponsors_link\":\"\u0421\u043f\u0438\u0441\u043e\u043a \u0432\u0441\u0435\u0445 \u043d\u0430\u0448\u0438\u0445 \u0437\u0430\u043c\u0435\u0447\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u0441\u043f\u043e\u043d\u0441\u043e\u0440\u043e\u0432 &rarr;\"},\"mobile\":{\"author\":\"\u0410\u0432\u0442\u043e\u0440\",\"build\":\"\u0421\u0431\u043e\u0440\u043a\u0430\",\"build_matrix\":\"\u041c\u0430\u0442\u0440\u0438\u0446\u0430 \u0441\u0431\u043e\u0440\u043e\u043a\",\"commit\":\"\u041a\u043e\u043c\u043c\u0438\u0442\",\"committer\":\"\u041a\u043e\u043c\u043c\u0438\u0442\u0435\u0440\",\"compare\":\"\u0421\u0440\u0430\u0432\u043d\u0435\u043d\u0438\u0435\",\"config\":\"\u041a\u043e\u043d\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044f\",\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\",\"finished_at\":\"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\",\"job\":\"\u0417\u0430\u0434\u0430\u0447\u0430\",\"log\":\"\u0416\u0443\u0440\u043d\u0430\u043b\"},\"top\":{\"admin\":\"\u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\",\"blog\":\"\u0411\u043b\u043e\u0433\",\"docs\":\"\u0414\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u044f\",\"github_login\":\"\u0412\u043e\u0439\u0442\u0438 \u0447\u0435\u0440\u0435\u0437 Github\",\"home\":\"\u0413\u043b\u0430\u0432\u043d\u0430\u044f\",\"profile\":\"\u041f\u0440\u043e\u0444\u0438\u043b\u044c\",\"sign_out\":\"\u0412\u044b\u0445\u043e\u0434\",\"stats\":\"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043a\u0430\"}},\"no_job\":\"\u041e\u0447\u0435\u0440\u0435\u0434\u044c \u043f\u0443\u0441\u0442\u0430\",\"profiles\":{\"show\":{\"email\":\"\u042d\u043b\u0435\u043a\u0442\u0440\u043e\u043d\u043d\u0430\u044f \u043f\u043e\u0447\u0442\u0430\",\"github\":\"Github\",\"message\":{\"config\":\"\u043a\u0430\u043a \u043d\u0430\u0441\u0442\u0440\u043e\u0438\u0442\u044c \u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043e\u043f\u0446\u0438\u0438 \u0431\u0438\u043b\u0434\u0430\",\"your_repos\":\"\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 \u043f\u0435\u0440\u0435\u043a\u043b\u044e\u0447\u0430\u0442\u0435\u043b\u0438, \u0447\u0442\u043e\u0431\u044b \u0432\u043a\u043b\u044e\u0447\u0438\u0442\u044c Travis service hook \u0434\u043b\u044f \u0432\u0430\u0448\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u0430, \u0430 \u043f\u043e\u0442\u043e\u043c \u043e\u0442\u043f\u0440\u0430\u0432\u044c\u0442\u0435 \u043a\u043e\u0434 \u043d\u0430 GitHub.<br />\\n\u0414\u043b\u044f \u0442\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043d\u0430 \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u0438\u0445 \u0432\u0435\u0440\u0441\u0438\u044f\u0445 Ruby \u0441\u043c\u043e\u0442\u0440\u0438\u0442\u0435\"},\"messages\":{\"notice\":\"\u041f\u0435\u0440\u0435\u0434 \u043d\u0430\u0447\u0430\u043b\u043e\u043c, \u043f\u043e\u0436\u0430\u043b\u0443\u0439\u0441\u0442\u0430, \u043f\u0440\u043e\u0447\u0442\u0438\u0442\u0435 <a href=\\\"http://about.travis-ci.org/docs/user/getting-started/\\\">\u0420\u0443\u043a\u043e\u0432\u043e\u0434\u0441\u0442\u0432\u043e \u0434\u043b\u044f \u0431\u044b\u0441\u0442\u0440\u043e\u0433\u043e \u0441\u0442\u0430\u0440\u0442\u0430</a>. <small>\u042d\u0442\u043e \u0437\u0430\u0439\u043c\u0435\u0442 \u0432\u0441\u0435\u0433\u043e \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0438\u043d\u0443\u0442.</small>\"},\"token\":\"\u0422\u043e\u043a\u0435\u043d\",\"update\":\"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\",\"update_locale\":\"\u041e\u0431\u043d\u043e\u0432\u0438\u0442\u044c\",\"your_locale\":\"\u0412\u0430\u0448 \u044f\u0437\u044b\u043a\",\"your_repos\":\"\u0412\u0430\u0448\u0438 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0438\"}},\"queue\":\"\u041e\u0447\u0435\u0440\u0435\u0434\u044c\",\"repositories\":{\"branch\":\"\u0412\u0435\u0442\u043a\u0430\",\"commit\":\"\u041a\u043e\u043c\u043c\u0438\u0442\",\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\",\"finished_at\":\"\u0417\u0430\u0432\u0435\u0440\u0448\u0435\u043d\",\"image_url\":\"URL \u0438\u0437\u043e\u0431\u0440\u0430\u0436\u0435\u043d\u0438\u044f\",\"markdown\":\"Markdown\",\"message\":\"\u041a\u043e\u043c\u043c\u0435\u043d\u0442\u0430\u0440\u0438\u0439\",\"rdoc\":\"RDOC\",\"started_at\":\"\u041d\u0430\u0447\u0430\u043b\u043e\",\"tabs\":{\"branches\":\"\u0421\u0442\u0430\u0442\u0443\u0441 \u0432\u0435\u0442\u043e\u043a\",\"build\":\"\u0411\u0438\u043b\u0434\",\"build_history\":\"\u0418\u0441\u0442\u043e\u0440\u0438\u044f\",\"current\":\"\u0422\u0435\u043a\u0443\u0449\u0438\u0439\",\"job\":\"\u0417\u0430\u0434\u0430\u0447\u0430\"},\"textile\":\"Textile\"},\"repository\":{\"duration\":\"\u0414\u043b\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c\"},\"statistics\":{\"index\":{\"build_count\":\"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e \u0431\u0438\u043b\u0434\u043e\u0432\",\"count\":\"\u041a\u043e\u043b\u0438\u0447\u0435\u0441\u0442\u0432\u043e\",\"last_month\":\"\u043f\u0440\u043e\u0448\u043b\u044b\u0439 \u043c\u0435\u0441\u044f\u0446\",\"repo_growth\":\"\u0420\u043e\u0441\u0442 \u0447\u0438\u0441\u043b\u0430 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432\",\"total_builds\":\"\u0412\u0441\u0435\u0433\u043e \u0431\u0438\u043b\u0434\u043e\u0432\",\"total_projects\":\"\u0412\u0441\u0435\u0433\u043e \u043f\u0440\u043e\u0435\u043a\u0442\u043e\u0432/\u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0435\u0432\"}},\"workers\":\"\u041c\u0430\u0448\u0438\u043d\u044b\",\"locales\":{\"en\":\"English\",\"es\":\"Espa\u00f1ol\",\"ja\":\"\u65e5\u672c\u8a9e\",\"ru\":\"\u0420\u0443\u0441\u0441\u043a\u0438\u0439\",\"fr\":\"Fran\u00e7ais\",\"nb\":\"Norsk Bokm\u00e5l\",\"pl\":\"Polski\",\"nl\":\"Nederlands\",\"pt-BR\":\"portugu\u00eas brasileiro\"}}};\n\n\n})();\n//@ sourceURL=config/locales");minispade.register('ext/ember/bound_helper', "(function() {// https://gist.github.com/2018185\n// For reference: https://github.com/wagenet/ember.js/blob/ac66dcb8a1cbe91d736074441f853e0da474ee6e/packages/ember-handlebars/lib/views/bound_property_view.js\nvar BoundHelperView = Ember.View.extend(Ember._Metamorph, {\n\n context: null,\n options: null,\n property: null,\n // paths of the property that are also observed\n propertyPaths: [],\n\n value: Ember.K,\n\n valueForRender: function() {\n var value = this.value(Ember.get(this.context, this.property), this.options);\n if (this.options.escaped) { value = Handlebars.Utils.escapeExpression(value); }\n return value;\n },\n\n render: function(buffer) {\n buffer.push(this.valueForRender());\n },\n\n valueDidChange: function() {\n if (this.morph.isRemoved()) { return; }\n this.morph.html(this.valueForRender());\n },\n\n didInsertElement: function() {\n this.valueDidChange();\n },\n\n init: function() {\n this._super();\n Ember.addObserver(this.context, this.property, this, 'valueDidChange');\n this.get('propertyPaths').forEach(function(propName) {\n Ember.addObserver(this.context, this.property + '.' + propName, this, 'valueDidChange');\n }, this);\n },\n\n destroy: function() {\n Ember.removeObserver(this.context, this.property, this, 'valueDidChange');\n this.get('propertyPaths').forEach(function(propName) {\n this.context.removeObserver(this.property + '.' + propName, this, 'valueDidChange');\n }, this);\n this._super();\n }\n\n});\n\nEmber.registerBoundHelper = function(name, func) {\n var propertyPaths = Array.prototype.slice.call(arguments, 2);\n Ember.Handlebars.registerHelper(name, function(property, options) {\n var data = options.data,\n view = data.view,\n ctx = this;\n\n var bindView = view.createChildView(BoundHelperView, {\n property: property,\n propertyPaths: propertyPaths,\n context: ctx,\n options: options.hash,\n value: func\n });\n\n view.appendChild(bindView);\n });\n};\n\n\n})();\n//@ sourceURL=ext/ember/bound_helper");minispade.register('ext/ember/namespace', "(function() {Em.Namespace.reopen = Em.Namespace.reopenClass\n\n\n\n})();\n//@ sourceURL=ext/ember/namespace");