Skip to content

Instantly share code, notes, and snippets.

@jordaaash
Last active August 29, 2015 14:04
Show Gist options
  • Save jordaaash/433e4d03c56e0ae9911b to your computer and use it in GitHub Desktop.
Save jordaaash/433e4d03c56e0ae9911b to your computer and use it in GitHub Desktop.
Source of fnd.io's app.js for analysis
!function() {
"use strict";
var e = "undefined" != typeof window ? window : global;
if ("function" != typeof e.require) {
var t = {}, s = {}, r = function(e, t) {
return {}.hasOwnProperty.call(e, t)
}, a = function(e, t) {
var s, r, a = [];
s = /^\.\.?(\/|$)/.test(t) ? [e, t].join("/").split("/") : t.split("/");
for (var n = 0, i = s.length; i > n; n++)
r = s[n], ".." === r ? a.pop() : "." !== r && "" !== r && a.push(r);
return a.join("/")
}, n = function(e) {
return e.split("/").slice(0, -1).join("/")
}, i = function(t) {
return function(s) {
var r = n(t), i = a(r, s);
return e.require(i, t)
}
}, o = function(e, t) {
var r = {id: e,exports: {}};
return s[e] = r, t(r.exports, i(e), r), r.exports
}, h = function(e, n) {
var i = a(e, ".");
if (null == n && (n = "/"), r(s, i))
return s[i].exports;
if (r(t, i))
return o(i, t[i]);
var h = a(i, "./index");
if (r(s, h))
return s[h].exports;
if (r(t, h))
return o(h, t[h]);
throw new Error('Cannot find module "' + e + '" from "' + n + '"')
}, p = function(e, s) {
if ("object" == typeof e)
for (var a in e)
r(e, a) && (t[a] = e[a]);
else
t[e] = s
}, u = function() {
var e = [];
for (var s in t)
r(t, s) && e.push(s);
return e
};
e.require = h, e.require.define = p, e.require.register = p, e.require.list = u, e.require.brunch = !0
}
}(), require.register("adapters/chart", function(e, t) {
var s, r;
t("adapters/itunes"), s = "https://itunes.apple.com/us/rss", r = Ember.isEmpty, App.ChartResultAdapter = App.ItunesAdapter.extend({findQuery: function(e, t, s) {
return this.ajax(this.buildURL(s), "GET")
},ajaxOptions: function(e, t, s) {
return s = s || {}, s.url = e, s.type = t, s.dataType = "json", s
},buildURL: function(e) {
var t;
return t = [s], t.pushObject(e.rssId), r(e.genreId) || t.pushObject("genre=" + e.genreId), r(e.limit) || t.pushObject("limit=" + e.limit), t.pushObject("json"), t.join("/")
}})
}), require.register("adapters/fnd_fixture", function() {
App.FndFixtureAdapter = DS.FixtureAdapter.extend({latency: 50,queryFixtures: function(e, t) {
var s, r, a;
if ("tons" === t.term) {
for (a = [], s = r = 1; 50 >= r; s = ++r)
a.push(e.get("firstObject"));
return a
}
return "none" === t.term ? [] : e
}})
}), require.register("adapters/itunes", function() {
App.ItunesAdapter = DS.Adapter.extend({find: function(e, t, s) {
return this.ajax(this.buildURL(s), "GET")
},findMany: function(e, t, s) {
return this.ajax(this.buildURL(s), "GET")
},findQuery: function(e, t, s) {
var r;
return "id" in s ? (r = s.id, delete s.id, this.ajax(this.buildURL(r), "GET", {data: this.buildQuery(s)})) : this.ajax(this.buildURL(), "GET", {data: this.buildQuery(s)})
},queryForType: function(e) {
return QUERY_TYPES[e]
},findHasMany: function(e, t, s, r) {
return "string" !== Ember.typeOf(s) && (s = t.get("" + r.key + "Url")), this.ajax(s, "GET")
},ajax: function(e, t, s) {
return App.Logger.dbg.log("AJAX " + e, (null != s ? s.data : void 0) || s), new Ember.RSVP.Promise(function(r) {
return function(a, n) {
return s = r.ajaxOptions(e, t, s), s.success = function(e) {
return Ember.run(null, a, e)
}, s.error = function(e) {
return Ember.run(null, n, e)
}, Ember.$.ajax(s)
}
}(this))
},ajaxOptions: function(e, t, s) {
return s = s || {}, s.url = e, s.type = t, s.dataType = "jsonp", s.context = this, s.timeout = 3e4, s.contentType = "application/json; charset=utf-8", s
},baseQueryUrl: "https://itunes.apple.com/search",baseFindUrl: "https://itunes.apple.com/lookup",buildURL: function(e) {
return e ? (e = Ember.makeArray(e), "" + this.get("baseFindUrl") + "?id=" + e.join(",")) : this.get("baseQueryUrl")
},buildQuery: function(e) {
var t, s;
return t = Ember.copy(e), s = Ember.get(t, "term"), "string" === Ember.typeOf(s) && (t.term = s.replace(/\+/g, " ").toLowerCase()), t
}})
}), require.register("components/app-screenshot", function(e, t, s) {
var r, a;
t("components/image-set"), a = Ember.computed.alias, r = "horizontal", s.exports = App.AppScreenshotComponent = App.ImageSetComponent.extend({tagName: "span",classNames: ["app-screenshot"],classNameBindings: ["isLandscape:landscape:portrait", "typeClass", "isIpad:ipad", "layoutClasses"],shouldLink: !0,isLoading: !0,layoutName: r,imageSet: a("screenshot"),isIpad: a("screenshot.isIpad"),title: a("screenshot.title"),routeName: function() {
return "" + this.get("model.routeName") + ".screenshots"
}.property("model"),imageLoaded: function() {
var e;
return e = this.get("$image"), this.set("isLandscape", e[0].width > e[0].height)
},typeClass: function() {
return this.get("screenshot.cssClass")
}.property("screenshot.cssClass"),imageClass: function() {
return this.get("layoutName") === r ? [this.get("isLandscape") ? "landscape" : "portrait", this.get("typeClass"), this.get("isIpad") ? "ipad" : void 0].compact().join(" ") : void 0
}.property("isLandscape", "typeClass", "isIpad"),layoutClasses: function() {
return "full" === this.get("layoutName") ? "app-screenshot--full" : void 0
}.property("layoutName")})
}), require.register("components/app-screenshots", function(e, t, s) {
var r, a, n, i, o;
o = Ember.computed.notEmpty, i = Ember.isEmpty, a = "iphone", r = "ipad", n = "mac", s.exports = App.AppScreenshotsComponent = Ember.Component.extend({hasIphone: o("iphoneScreenshots.[]"),hasIpad: o("ipadScreenshots.[]"),hasMac: o("macScreenshots.[]"),hasScreenshots: Ember.computed.or("hasIphone", "hasIpad", "hasMac"),hasIphoneAndIpad: Ember.computed.and("hasIphone", "hasIpad"),cssClass: Ember.computed.alias("currentType"),screenshotsWithIndex: function() {
var e;
return e = this.get("currentType"), this.get("" + e + "Screenshots").map(function(e) {
return function(t, s) {
return {screenshot: t,index: s + 1,type: e.get("currentType"),model: e.get("model")}
}
}(this))
}.property("currentType", "model"),nameForType: function(e) {
switch (e) {
case a:
return "iPhone";
case r:
return "iPad";
case n:
return "Mac"
}
},name: function() {
return this.nameForType(this.get("currentType"))
}.property("currentType"),otherType: function() {
switch (this.get("currentType")) {
case a:
return r;
case r:
return a
}
}.property("currentType"),currentType: function() {
if (!i(this.get("currentTypeChoice")))
return this.get("currentTypeChoice");
if (this.get("hasIphoneAndIpad"))
switch (!1) {
case "iphone" !== this.get("search.id"):
return a;
case "ipad" !== this.get("search.id"):
return r;
case !this.get("device.isIpad"):
return r;
case !this.get("device.isIphone"):
return a;
default:
return a
}
else
switch (!1) {
case !this.get("hasIphone"):
return a;
case !this.get("hasIpad"):
return r;
case !this.get("hasMac"):
return n
}
}.property("device.isIos", "hasIphoneAndIpad", "hasIphone", "hasIpad", "hasMac", "currentTypeChoice"),screenshotChoices: function() {
return [a, r].map(function(e) {
return function(t, s) {
return {name: e.nameForType(t),isSelected: e.get("currentType") === t,isLast: 1 === s}
}
}(this))
}.property("currentType"),actions: {"switch": function() {
return this.set("currentTypeChoice", this.get("otherType"))
}}})
}), require.register("components/chart-group", function(e, t, s) {
s.exports = App.ChartGroupComponent = Ember.Component.extend({charts: Ember.computed.alias("chartGroup.charts"),hasMoreThanOneChart: Ember.computed.gt("charts.length", 1),chartButtons: function() {
var e;
return null != (e = this.get("charts")) ? e.map(function(e) {
return function(t) {
return {chart: t,isSelected: e.get("selectedChart") === t}
}
}(this)) : void 0
}.property("charts", "selectedChart"),setInitialSelectedChart: function() {
return this.set("selectedChart", this.get("charts.firstObject"))
}.on("init"),actions: {selectChart: function(e) {
return this.set("selectedChart", e)
}}})
}), require.register("components/device-icons", function(e, t, s) {
var r, a, n;
a = '<svg width="5" height="8" viewBox="0 0 5 8" xmlns="http://www.w3.org/2000/svg" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"><title>iphone</title><g sketch:type="MSLayerGroup" fill="#969696"><path d="M2.5 6.458c.23 0 .417-.187.417-.417 0-.23-.187-.417-.417-.417-.23 0-.417.187-.417.417 0 .23.187.417.417.417z" sketch:type="MSShapeGroup"/><path d="M0 .833v5.626c0 .46.372.833.831.833h3.337c.459 0 .831-.372.831-.833v-5.626c0-.46-.372-.833-.831-.833h-3.337c-.459 0-.831.372-.831.833zm4.169-.416c.229 0 .415.186.415.416v5.626c0 .231-.185.416-.415.416h-3.337c-.229 0-.415-.186-.415-.416v-5.626c0-.231.185-.416.415-.416h3.337z" sketch:type="MSShapeGroup"/></g></svg>', r = '<svg width="10" height="15" viewBox="0 0 10 15" xmlns="http://www.w3.org/2000/svg" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"><title>ipad</title><g sketch:type="MSLayerGroup" fill="#969696"><path d="M5 13.077c.212 0 .385-.172.385-.385 0-.212-.172-.385-.385-.385-.212 0-.385.172-.385.385 0 .212.172.385.385.385z" sketch:type="MSShapeGroup"/><path d="M0 1.347v11.729c0 .744.603 1.347 1.346 1.347h7.308c.743 0 1.346-.601 1.346-1.347v-11.729c0-.744-.603-1.347-1.346-1.347h-7.308c-.743 0-1.346.601-1.346 1.347zm8.654-.963c.531 0 .961.431.961.963v11.729c0 .533-.43.963-.961.963h-7.308c-.531 0-.961-.431-.961-.963v-11.729c0-.533.43-.963.961-.963h7.308z" sketch:type="MSShapeGroup"/></g></svg>', n = '<svg width="19" height="14" viewBox="0 0 19 14" xmlns="http://www.w3.org/2000/svg" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns"><title>mac</title><path d="M14.06 14h-8.93l1.488-2.613h-5.857c-.421 0-.761-.333-.761-.746v-9.895c0-.412.341-.746.761-.746h17.478c.421 0 .761.333.761.746v9.895c0 .412-.341.746-.761.746h-5.667l1.488 2.613zm-13.68-13.254v9.895c0 .206.169.372.381.372h17.478c.21 0 .381-.167.381-.372v-9.895c0-.206-.169-.372-.381-.372h-17.478c-.21 0-.381.167-.381.372z" fill="#969696" sketch:type="MSShapeGroup"/></svg>', s.exports = App.DeviceIconsComponent = Ember.Component.extend({tagName: "span",classNames: ["ii-mediaicons"],render: function(e) {
return this.get("isIphone") && e.push('<span class="ii-mediaicons--iphone" title="iPhone">\n ' + a + "\n</span>"), this.get("isIpad") && e.push('<span class="ii-mediaicons--ipad" title="iPad">\n ' + r + "\n</span>"), this.get("isMac") ? e.push('<span class="ii-mediaicons--mac" title="Mac">\n ' + n + "\n</span>") : void 0
},observesValue: function() {
return this.rerender()
}.observes("isIphone", "isIpad", "isMac")})
}), require.register("components/fnd-header", function(e, t, s) {
s.exports = App.FndHeaderComponent = Ember.Component.extend({actions: {headerButtonClicked: function() {
return this.sendAction("buttonClicked")
},logoClicked: function() {
return this.sendAction("logoClicked")
}}})
}), require.register("components/fnd-search", function(e, t, s) {
var r, a, n;
n = t("utils/google_complete"), a = Ember.get, r = new Bloodhound({name: "google",remote: {url: n.TYPEAHEAD_URL,ajax: {cache: !0,dataType: "jsonp"},filter: function(e) {
return e[1].map(function(e) {
return {value: e}
})
}},datumTokenizer: Bloodhound.tokenizers.whitespace,queryTokenizer: Bloodhound.tokenizers.whitespace}), r.initialize(), s.exports = App.FndSearchComponent = Ember.Component.extend({tagName: "form",attributeBindings: ["role"],classNames: ["input-group", "fnd-search"],classNameBindings: ["variationClass"],role: "form",variation: "lg",autoFocus: !1,variationClass: function() {
return "fnd-search--" + this.get("variation")
}.property("variation"),submitSearch: function(e) {
return this.get("device.isIos") && this.$input().blur(), this.triggerAction({actionContext: e})
},submit: function(e) {
return e.preventDefault(), this.closeTypehead(), this.submitSearch(this.$input().typeahead("val")), !1
},$input: function() {
return this.$(".fnd-search-input:last")
},updateValue: function() {
return this.$input().typeahead("val", this.get("value") || "")
},observesValue: function() {
return this.updateValue(), this.closeTypehead()
}.observes("value"),setupTypeahead: function() {
return this.$input().val(this.get("value")), this.$input().typeahead({highlight: !0,hint: !1}, {source: r.ttAdapter()}).on("typeahead:selected", function(e) {
return function(t, s) {
return Ember.run.next(function() {
return e.submitSearch(s.value)
})
}
}(this))
}.on("didInsertElement"),destroyTypeahead: function() {
return this.$input().typeahead("destroy")
}.on("willDestroyElement"),focusSearch: function() {
return this.get("autoFocus") ? Ember.run.scheduleOnce("afterRender", function(e) {
return function() {
return e.$input().focus()
}
}(this)) : void 0
}.on("didInsertElement"),closeTypehead: function() {
return this.$input().typeahead("close")
}})
}), require.register("components/ii-creator", function(e, t, s) {
s.exports = App.IiCreatorComponent = Ember.Component.extend({tagName: "span",classNames: ["text-muted"],creator: function() {
return this.get("parent." + this.get("creatorKey"))
}.property("parent", "creatorKey"),creatorName: function() {
return this.get("parent." + this.get("creatorKey") + "Name")
}.property("parent", "creatorKey")})
}), require.register("components/ii-list", function(e, t, s) {
s.exports = App.IiListComponent = Ember.Component.extend({initialResults: 5,showTrackNumbers: !1,isLoading: Ember.computed.oneWay("items.isPending"),notLoading: Ember.computed.not("isLoading"),hasItems: Ember.computed.notEmpty("items.[]"),hasItemsAndNotLoading: Ember.computed.and("hasItems", "notLoading"),name: Ember.computed.oneWay("mediaType.name"),pluralName: Ember.computed.oneWay("mediaType.pluralName"),pluralLowerCaseName: function() {
return this.get("pluralName").toLowerCase()
}.property("pluralName"),lowerCaseName: function() {
return this.get("name").toLowerCase()
}.property("name"),fetcher: function() {
return this.get("parent") && this.get("mediaType") ? App.AssociationFetcher.firstOrCreate(this.get("parent"), this.get("mediaType.search.baseQuery"), {mediaType: this.get("mediaType"),startAmount: this.get("initialResults")}) : void 0
}.property("parent", "mediaType"),mediaType: function() {
return this.get("parent.store").getById("mediaType", this.get("mediaTypeId"))
}.property("mediaTypeId"),loadInitalResults: function() {
return this.get("fetcher") ? this.get("fetcher").fetchInitialSets() : void 0
}.on("init").observes("parent"),routeName: function() {
return "" + this.get("parent.typeKey") + ".association"
}.property("mediaType", "parent.typeKey"),routeModel: function() {
return this.get("mediaType.id").dasherize()
}.property("mediaType.id"),mayHaveMoreResults: function() {
return this.get("fetcher.resultSets.length") > 1 || this.get("fetcher.mayHaveMoreResults")
}.property("fetcher.mayHaveMoreResults", "hasHiddenSets")})
}), require.register("components/ii-name", function(e, t, s) {
s.exports = App.IiNameComponent = Ember.Component.extend({showFullName: !1,allowFullName: !1,classNameBindings: ["shouldShowFullName:ii-name--show-full"],render: function(e) {
return e.push('<span title="' + this.get("title") + '">' + this.get("title") + "</span>"), this.get("subtitle") ? e.push('<span class="ii-subtitle"> ' + this.get("subtitle") + "</span>") : void 0
},observesValue: function() {
return this.rerender()
}.observes("title", "subtitle"),observesTitle: function() {
return this.set("showFullName", !1)
}.observes("title"),shouldShowFullName: Ember.computed.and("showFullName", "allowFullName"),click: function() {
return this.toggleProperty("showFullName")
}})
}), require.register("components/ii-set", function(e, t, s) {
s.exports = App.IiSetComponent = Ember.Component.extend({showTrackNumbers: !1,itemTemplate: "_itunes_item",needsDivider: Ember.computed.oneWay("set.extraSet"),actions: {goToItem: function(e) {
var t;
return t = this.get("container").lookup("router:main"), t.transitionTo(e.get("routeName"), e)
}}})
}), require.register("components/image-set", function(e, t, s) {
s.exports = App.ImageSetComponent = Ember.Component.extend({imageLoaded: Ember.K,setupImageListener: function() {
return this.loadUntilFound()
}.on("didInsertElement"),removeListeners: function() {
var e;
return null != (e = this.get("$image")) ? e.off(".imagesLoaded") : void 0
}.on("willDestroyElement"),image: function() {
return this.get("small" !== this.get("preferredSize") || this.get("device.isRetina") ? "imageSet.largestValidImage" : "imageSet.smallestValidImage")
}.property("preferredSize", "imageSet.smallestValidImage", "imageSet.largestValidImage"),loadUntilFound: function() {
var e, t;
if (this.get("element") && (t = this.get("image.url"), !Ember.isEmpty(t)))
return e = Ember.$("<img>").attr("src", t), this.set("$image", e), e.imagesLoaded().fail(function(e) {
return function() {
return e.get("element") ? Ember.run(function() {
return e.get("image").invalidate(), e.loadUntilFound()
}) : void 0
}
}(this)).done(function(e) {
return function() {
return e.get("element") ? Ember.run(function() {
return e.set("isLoading", !1), e.imageLoaded()
}) : void 0
}
}(this))
}})
}), require.register("components/itunes-button", function(e, t, s) {
var r;
r = 6, s.exports = App.ItunesButtonComponent = Ember.Component.extend({tagName: "span",classNameBindings: ["isLong:ii-action--xs"],availablityClass: function() {
switch (this.get("availability")) {
case "available":
return "btn-itunes-buy";
case "pre_order":
return "btn-pre-order";
case "unavailable":
return "btn-unavailable";
default:
return "btn-default"
}
}.property("availability"),isLong: function() {
return this.get("text.length") > r
}.property("text")})
}), require.register("components/itunes-description", function(e, t, s) {
s.exports = App.ItunesDescriptionComponent = Ember.Component.extend({noHeader: !1,noDivider: !1})
}), require.register("components/itunes-reviews", function(e, t, s) {
s.exports = App.ItunesReviewsComponent = Ember.Component.extend({classNames: ["itunes-reviews"],reviews: Ember.computed.alias("model.reviews"),hasReviews: function() {
return !this.get("reviews.isPending") && this.get("reviews.length") > 0
}.property("reviews.isPending", "reviews.length"),reviewsByHelpful: function() {
return Ember.ArrayController.create({content: this.get("reviews"),sortProperties: ["voteSum", "voteCount", "version"],sortAscending: !1})
}.property("reviews.@each")})
}), require.register("components/loading-button", function(e, t, s) {
s.exports = App.LoadingButtonComponent = Ember.Component.extend({text: "Loading...",classNames: ["loading-button"],classNameBindings: ["padding:l-pad-v--100"],padding: !1})
}), require.register("components/nav-link", function(e, t, s) {
s.exports = App.NavLinkComponent = Ember.Component.extend({tagName: "li",classNameBindings: ["active"],active: function() {
return this.get("childViews.firstObject.active")
}.property("childViews.firstObject.active")})
}), require.register("components/paginated-results", function(e, t, s) {
var r, a;
a = t("utils/one_way_many"), s.exports = App.PaginatedResultsComponent = Ember.Component.extend({defaultSetsDesired: 1,showRank: !1,cachedShownResultSets: Ember.computed.alias("cache.shownResultSets"),oneResult: Ember.computed.equal("numResultsShown", 1),setsDesired: function(e, t) {
return arguments.length > 1 && this.set("cache.setsDesired", t), this.getWithDefault("cache.setsDesired", this.get("defaultSetsDesired"))
}.property("cache"),numResultsShown: function() {
return this.get("shownResultSets").reduce(function(e, t) {
return e += t.get("length")
}, 0)
}.property("shownResultSets.@each"),foundNoResults: function() {
return this.get("noResults") && !this.get("isFetching")
}.property("noResults", "isFetching"),canLoadMoreResults: function() {
return this.get("hasPreloadedSets") || !this.get("isLoading") && this.get("mayHaveMoreResults")
}.property("isLoading", "mayHaveMoreResults", "hasPreloadedSets"),hasPreloadedSets: function() {
return this.get("setsDesired") < this.get("model.resultSets.length")
}.property("setsDesired", "model.resultSets.@each"),cache: function() {
return this.get("model") ? this.constructor.getCache(this.get("model")) : void 0
}.property("model"),shownResultSets: function() {
var e, t, s, r;
if (this.get("model"))
return r = this.get("cachedShownResultSets"), s = this.get("setsDesired"), this.get("noResultSets") ? r : (s > r.get("length") && (e = this.get("model.resultSets").slice(0, s), t = e.removeObjects(r), t && r.pushObjects(t)), r)
}.property("cachedShownResultSets", "model.resultSets.@each", "setsDesired"),isLoadingDesired: function() {
return this.get("setsDesired") > this.get("shownResultSets.length") && this.get("isFetching")
}.property("isFetching", "setsDesired", "shownResultSets.@each"),isLoadingInitial: Ember.computed.oneWay("model.isFetchingFirst"),isLoading: Ember.computed.or("isLoadingInitial", "isLoadingDesired"),actions: {loadMoreResults: function() {
var e;
return (this.get("model.mayHaveMoreResults") || this.get("model.resultSets.length") >= this.get("setsDesired")) && this.incrementProperty("setsDesired"), this.get("setsDesired") >= this.get("model.resultSets.length") && !this.get("model.isFetching") ? (e = this.get("setsDesired") - this.get("model.resultSets.length"), this.get("model").loadMoreResults(e + 1).then(Ember.K, Ember.K)) : void 0
}}}), r = ["noResults", "isFetching", "mayHaveMoreResults", "alternateSearches", "noResultSets"], a(r, "model", App.PaginatedResultsComponent), App.PaginatedResultsComponent.reopenClass({CACHED_SETS_SHOWN_FOR_MODEL: Ember.Map.create(),getCache: function(e) {
var t, s;
return s = e.get("id"), (t = this.CACHED_SETS_SHOWN_FOR_MODEL.get(s)) ? t : (t = Ember.Object.create({shownResultSets: []}), this.CACHED_SETS_SHOWN_FOR_MODEL.set(s, t), t)
}})
}), require.register("components/paginated-search", function(e, t) {
var s;
s = t("utils/one_way_many"), App.PaginatedSearchComponent = App.PaginatedResultsComponent.extend({hasSearchTerm: Ember.computed.notEmpty("searchTerm"),foundNoResults: function() {
return this.get("noResults") && !this.get("isFetching") && this.get("hasSearchTerm")
}.property("noResults", "isFetching", "hasSearchTerm"),canLoadMoreResults: function() {
return this.get("hasPreloadedSets") || this.get("hasSearchTerm") && !this.get("isLoading") && this.get("mayHaveMoreResults")
}.property("hasSearchTerm", "isLoading", "mayHaveMoreResults", "hasPreloadedSets"),actions: {search: function(e) {
return this.sendAction("search", e)
}}})
}), require.register("components/previous-next", function(e, t, s) {
s.exports = App.PreviousNextComponent = Ember.Component.extend({nextItem: function() {
var e, t;
return e = null != (t = this.get("items")) ? t.indexOf(this.get("current")) : void 0, void 0 !== e && -1 !== e && e !== this.get("items.length") + 1 ? this.get("items").objectAt(e + 1) : void 0
}.property("items.@each", "current"),previousItem: function() {
var e, t;
return e = null != (t = this.get("items")) ? t.indexOf(this.get("current")) : void 0, void 0 !== e && -1 !== e && 0 !== e ? this.get("items").objectAt(e - 1) : void 0
}.property("items.@each", "current"),setupKeyListener: function() {
return Ember.$(document).on("keyup", function(e) {
return function(t) {
return Ember.run(function() {
return e.documentKeyUp(t)
})
}
}(this))
}.on("didInsertElement"),removeKeyListener: function() {
return Ember.$().off("keyup")
}.on("willDestroyElement"),documentKeyUp: function(e) {
return Ember.run(function(t) {
return function() {
var s, r;
return s = function() {
switch (e.which) {
case 37:
return this.get("previousItem");
case 39:
return this.get("nextItem")
}
}.call(t), r = t.container.lookup("router:main"), s ? r.transitionTo(s.get("routeName"), s) : void 0
}
}(this))
}})
}), require.register("components/star-rating", function(e, t, s) {
var r;
r = t("utils/number_with_commas"), s.exports = App.StarRatingComponent = Ember.Component.extend({tagName: "span",classNames: ["star-rating"],classNameBindings: ["variationClass"],showNone: !1,variationClass: function() {
return this.get("variation") ? "star-rating--" + this.get("variation") : void 0
}.property("variation"),fullStar: '<span class="fa fa-star"></span>',halfStar: '<span class="fa fa-star-half-o"></span>',emptyStar: '<span class="fa fa-star-o"></span>',formattedRatings: function() {
return this.get("ratings") ? r(this.get("ratings")) : void 0
}.property("ratings"),ratingsHtml: function() {
return this.get("ratings") ? '<span class="star-rating-ratings text-muted">\n (' + this.getWithDefault("formattedRatings", "No Ratings") + ")\n</span>" : ""
}.property("formattedRatings", "ratings", "showNone"),render: function(e) {
var t, s, r, a, n;
if (r = this.get("value"), "number" === Ember.typeOf(r) || this.get("showNone")) {
if (r)
for (t = Math.floor(r) !== r, s = a = 1; 5 >= a; s = ++a)
e.push(Math.floor(r) >= s ? this.get("fullStar") : t && Math.ceil(r) === s ? this.get("halfStar") : this.get("emptyStar"));
else
for (s = n = 1; 5 >= n; s = ++n)
e.push(this.get("emptyStar"));
return this.get("noRatings") ? void 0 : e.push(this.get("ratingsHtml"))
}
},observesValue: function() {
return this.rerender()
}.observes("value", "ratings")})
}), require.register("config/app", function(e, t, s) {
var r, a;
r = t("config/environment"), a = {}, r.get("debugLog") && (a = {LOG_TRANSITIONS: !1,LOG_TRANSITIONS_INTERNAL: !1,LOG_STACKTRACE_ON_DEPRECATION: !0,LOG_BINDINGS: !1,LOG_VIEW_LOOKUPS: !1,LOG_ACTIVE_GENERATION: !1}, Ember.STRUCTURED_PROFILE = !1, Ember.Logger.debug("Running in the %c" + r.get("name") + "%c environment", "color: red;", "")), Ember.RSVP.configure("onerror", function(e) {
var t, s, a;
if (r.get("errorReportingEnabled")) {
if (a = "info" !== (null != e ? e.level : void 0))
return Raven.captureException(e)
} else {
if (t = function() {
switch (e.level) {
case "warning":
return {method: "warn",name: "Warning"};
case "info":
return {method: "info",name: "Info"};
default:
return {method: "error",name: "Error"}
}
}(), "object" !== Ember.typeOf(e))
return Ember.Logger.error("RSVP Error", e);
if (s = (null != e ? e.message : void 0) || "No error message", Ember.Logger[t.method]("RSVP " + t.name + ": " + s), (null != e ? e.stack : void 0) && Ember.Logger[t.method](e.stack), null != e ? e.object : void 0)
return Ember.Logger[t.method](e.object)
}
}), r.get("errorReportingEnabled") && (Ember.onerror = function(e) {
return Raven.captureException(e)
}), s.exports = Ember.Application.create(a)
}), require.register("config/device", function(e, t, s) {
var r, a, n = [].indexOf || function(e) {
for (var t = 0, s = this.length; s > t; t++)
if (t in this && this[t] === e)
return t;
return -1
};
a = Ember.get, r = Ember.Object.extend({isIphone: Ember.computed.match("userAgent", /iPhone/),isIpad: Ember.computed.match("userAgent", /iPad/),isIos: Ember.computed.or("isIphone", "isIpad"),isRetina: function() {
var e;
return window.devicePixelRatio > 1 ? !0 : (e = ["(-webkit-min-device-pixel-ratio: 1.5)", "(min--moz-device-pixel-ratio: 1.5)", "(-o-min-device-pixel-ratio: 3/2)", "(min-resolution: 1.5dppx)"].join(","), window.matchMedia && window.matchMedia(e).matches ? !0 : !1)
}.property(),isTouch: function() {
return "ontouchstart" in window || n.call(window, "onmsgesturechange") >= 0
}.property()}), s.exports = r.create({userAgent: a(window, "navigator.userAgent")})
}), require.register("config/environment", function(e, t, s) {
var r;
window.require.list().filter(function(e) {
return new RegExp("^config/environments/").test(e) ? t(e) : void 0
}), r = Ember.Object.extend({isTest: Ember.computed.equal("name", "test"),isDevelopment: Ember.computed.equal("name", "development"),isProduction: Ember.computed.equal("name", "production"),setTitle: function(e, t) {
var s, r;
return null == t && (t = {}), t = Ember.copy(t), _.defaults(t, {quoted: !1,appName: !0}), s = this.get("appSubtitle"), Ember.isEmpty(Ember.$.trim(e)) || (s = t.quoted ? '"' + e + '"' : e), r = t.appName ? "" + s + " | " + this.get("appName") : s, window.document.title = r
},setDefaultTitle: function() {
return this.setTitle(this.get("appSubtitle"))
}}), s.exports = r.create(window.TAPAS_ENV)
}), require.register("config/errors", function(e, t, s) {
s.exports = {NO_MORE_RESULTS: "no_more_results",NO_POSSIBLE_RESULTS: "no_possible_results",ALREADY_FETCHED: "already_fetched",MISSING_PARAM: "missing_param"}
}), require.register("config/fastclick", function() {
window.addEventListener("load", function() {
return FastClick.attach(document.body)
}, !1)
}), require.register("config/google_analytics", function(e, t) {
var s, r, a;
r = t("config/environment"), "undefined" != typeof ga && null !== ga && r.get("analyticsEnabled") && (s = r.get("googleAnalyticsDomain"), a = r.get("googleAnalyticsId"), ga("create", a, s))
}), require.register("config/inflector", function() {
var e;
e = Ember.Inflector.inflector, e.uncountable("music"), e.uncountable("tv"), e.uncountable("mac"), e.uncountable("iphone"), e.uncountable("ipad"), e.uncountable("audio"), e.uncountable("all"), e.uncountable("iphone and ipad")
}), require.register("config/route", function() {
Ember.Route.reopen({shouldShowHeader: !0})
}), require.register("config/router", function(e, t, s) {
var r;
r = App.ItunesItem.MODELS, s.exports = App.Router.map(function() {
return this.route("missing", {path: "*missing"}), this.resource("home", {path: "/"}), this.route("search", {path: "/search"}), this.route("about"), r.forEach(function(e) {
return function(t) {
var s, r, a, n;
return n = App[t], r = n.routeName(), a = n.routePath(), s = n.dynamicSegmentName(), e.resource(r, {path: "/" + a + "/:" + s}, function() {
return this.route("association", {path: "/:media_type_id"}), n.hasScreenshots ? this.route("screenshots", {path: "screenshots/:type/:screenshot_number"}) : void 0
})
}
}(this)), this.resource("charts", {path: "/charts"}), this.resource("chart", {path: "/charts/:media_type_id/:chart_type_id/:genre_slug"}), this.resource("any", {path: "/any/:id"}), this.resource("integrations", {path: "/integrations"}), this.resource("integration", {path: "/integrations/:integration_id"}), this.resource("bookmarklet", {path: "/bookmarklets/:bookmarklet_id"})
})
}), require.register("controllers/about", function(e, t, s) {
var r;
r = Ember.Object.extend({logoUrl: function() {
return "/images/technologies/" + this.get("name").toLowerCase() + ".png"
}.property("name")}), s.exports = App.AboutController = Ember.ArrayController.extend({technologies: function() {
return [{name: "Ember",url: "http://emberjs.com"}, {name: "Brunch",url: "http://brunch.io"}, {name: "Moment.js",url: "http://momentjs.com/"}, {name: "Lo-Dash",url: "http://lodash.com/"}, {name: "Bootstrap",url: "http://getbootstrap.com/"}, {name: "CoffeeScript",url: "http://coffeescript.org/"}, {name: "typeahead.js",url: "http://twitter.github.io/typeahead.js/"}].map(function(e) {
return r.create(e)
})
}.property()})
}), require.register("controllers/application", function(e, t, s) {
s.exports = App.ApplicationController = Ember.Controller.extend({isntHome: Ember.computed.not("isHome"),isHome: function() {
return "home" === this.get("currentRouteName")
}.property("currentRouteName"),shouldShowHeader: function() {
var e;
return e = this.get("container").lookup("route:" + this.get("currentRouteName")), e.get("shouldShowHeader")
}.property("currentRouteName"),trackRouteHistory: function() {
var e;
return e = this.get("target.router.currentHandlerInfos.lastObject.name"), "search" === e || "chart" === e ? this.set("lastListingRouteName", e) : void 0
}.observes("currentRouteName"),sayingsSeen: 0,actionType: function() {
return this.get("device.isTouch") ? "tap" : "click"
}.property("device.isTouch"),actionTypePastTense: function() {
return this.get("device.isTouch") ? "tapped" : "clicked"
}.property("device.isTouch"),actionTypePresentParticiple: function() {
return this.get("device.isTouch") ? "tapping" : "clicking"
}.property("device.isTouch"),saying: function() {
var e;
switch (e = this.get("sayingsSeen"), !1) {
case !(e > 1e3):
return "I knew it, you were cheating.";
case 1e3 !== e:
return "Tweet @tryfnd with the code " + ("<I" + this.get("actionType").toUpperCase() + "WEBSITES> for a surprise.");
case !(e > 750):
return "You're going to find a memory leak if you keep going.";
case !(e > 500):
return "You're cheating, aren't you?";
case 250 !== e:
return "KEEP GOING!";
case !(e > 100):
return "Did you notice there wasn't an exclamation mark on the \"Congratulations\"? That meant I wasn't impressed.";
case !(e > 50):
return "You've " + this.get("actionTypePastTense") + " " + e + " times. Congratulations.";
case !(e > 37):
return "I'm done encouraging you. You'd be better off learning JavaScript and reverse-engineering the website.";
case !(e > 31):
return "I appreciate your enthusiasm, really, I do. Have you considered signing up for Amazon's mechanical turk program?";
case !(e > 23):
return "Man, the money is rolling in from sweetfooter.com. No ads, just footers and Google Plus Dollars™.";
case !(e > 17):
return "I'm not kidding. I bought it. That's where the money is. sweetfooter.com for all your footer needs.";
case !(e > 13):
return "Alright, I get it. I just bought sweetfooter.com.";
case !(e > 7):
return "I built this entire site and you're " + ("" + this.get("actionTypePresentParticiple") + " the footer? Sweet.")
}
return _.shuffle(["Sweat & Ember", "I hope fnd makes your day a little better.", "It's a magnifying glass. See it? *bwchawow*", "The three pieces of chalk up there are a menu.", "Angry Birds was originally named Avian Obesity Camp.", "4d3d3d3 engaged.", "Please don't tweet about this. No one cares.", 'It\'s pronounced "find". "fnd" is the sound of German winning at hide and seek.', "Copyrights are good for one thing, determining if a site is dead. © " + moment().format("GGGG"), "" + moment().format("MMMM") + " is a cold month.", "If you say something clever on Twitter, I'll put it here."]).get("firstObject")
}.property("sayingsSeen"),actions: {changeSaying: function() {
return this.incrementProperty("sayingsSeen")
}}})
}), require.register("controllers/chart", function(e, t, s) {
s.exports = App.ChartController = Ember.ObjectController.extend({rssId: function() {
return this.get("mediaType.rssId") && !this.get("chartType.noSuffixRssId") ? this.get("chartType.baseRssId") + this.get("mediaType.rssId") : this.get("chartType.baseRssId")
}.property("mediaType.rssId", "chartType.noSuffixRssId", "chartType.baseRssId"),fetcher: function() {
var e;
if (this.get("mediaType"))
return e = App.ChartFetcher.firstOrCreate(this.get("mediaType"), {rssId: this.get("rssId"),genreId: this.get("genre.rssId")})
}.property("mediaType", "rssId", "genre.rssId"),fetchResults: function() {
return this.get("fetcher").fetchInitialSets()
}})
}), require.register("controllers/charts/edit", function(e, t, s) {
s.exports = App.ChartsEditController = Ember.Controller.extend({mediaTypeId: "iphone",_chartTypeId: "top-free",_genreId: "all",hasMoreThanOneChartType: Ember.computed.gt("chartTypes.length", 1),hasGenres: function() {
return this.get("chartType.hasGenres") && this.get("genres.length") > 0
}.property("genres.@each", "chartType.hasGenres"),mediaType: function() {
return this.get("store").getById("mediaType", this.get("mediaTypeId"))
}.property("mediaTypeId"),chartTypeId: function(e, t) {
return arguments.length > 1 && this.set("_chartTypeId", t), this.get(this.get("mediaType.chartTypes").isAny("id", this.get("_chartTypeId")) ? "_chartTypeId" : "mediaType.chartTypes.firstObject.id")
}.property("mediaType"),genreId: function(e, t) {
var s;
return arguments.length > 1 && this.set("_genreId", t), s = this.get("store").getById("genre", this.get("_genreId")), this.get("mediaType.genres").isAny("id", s.get("id")) ? s.get("id") : this.get("mediaType.genres").isAny("name", s.get("name")) ? this.get("mediaType.genres").findBy("name", s.get("name")).get("id") : this.get("mediaType.genres.firstObject.id")
}.property("mediaType"),chartType: function() {
return this.get("store").getById("chartType", this.get("chartTypeId"))
}.property("chartTypeId"),genre: function() {
return this.get("store").getById("genre", this.get("genreId"))
}.property("genreId"),mediaTypes: function() {
return this.get("store").all("mediaType").filterBy("hasChartTypes")
}.property(),chartTypes: function() {
return this.get("mediaType.chartTypes")
}.property("mediaType"),genres: function() {
return this.get("mediaType.genres").sortBy("name")
}.property("mediaType"),chart: function(e, t) {
return arguments.length > 1 && (this.set("mediaTypeId", t.get("mediaType.id")), this.set("chartTypeId", t.get("chartType.id")), this.set("genreId", t.get("genre.id"))), App.Chart.firstOrCreate(this.get("mediaType"), this.get("chartType"), this.get("genre"))
}.property("mediaType", "chartType", "genre"),updateChart: function() {
return this.transitionToRoute("chart", this.get("chart"))
}.observes("chart")})
}), require.register("controllers/integration", function(e, t, s) {
var r, a, n, i;
n = t("config/environment"), a = n.get("url"), r = ["All", "Apps=ios", "Music", "Movies", "TV", "Books", "Mac", "Podcasts=podcasting"].join("|"), i = function(e) {
var t, s, r;
return null == e && (e = {}), r = e.url, s = e.title, t = e.description, r = encodeURIComponent(r), "launchpro://import?url=" + r + "&title=" + s + "&description=" + t
}, s.exports = App.IntegrationController = Ember.ObjectController.extend({launchCenterProAllSearch: i({url: "" + a + "/#/search?term=[prompt:Search fnd for?]&mediaType=all",title: "fnd",description: "Search fnd for..."}),launchCenterProMediaSearch: i({url: "" + a + "/#/search?" + ("mediaType=[list:Type|" + r + "]&") + "term=[prompt:Search fnd for?]",title: "fnd category",description: "Search fnd category for..."})})
}), require.register("controllers/integrations", function(e, t, s) {
s.exports = App.IntegrationsController = Ember.ArrayController.extend()
}), require.register("controllers/itunes_item", function(e, t, s) {
var r;
r = Ember.computed.oneWay, s.exports = App.ItunesItemController = Ember.ObjectController.extend({needs: ["search", "searchMultiple", "chart", "application"],lastListingRouteName: r("controllers.application.lastListingRouteName"),searchFetcher: r("controllers.search.fetcher"),chartFetcher: r("controllers.chart.fetcher"),searchMultipleFetchers: r("controllers.searchMultiple.fetchers"),fetcher: function() {
var e, t;
return "search" === this.get("lastListingRouteName") ? (e = this.get("searchMultipleFetchers").find(function(e) {
return function(t) {
return t.get("results").contains(e.get("content"))
}
}(this)), e || this.get("searchFetcher")) : "chart" === this.get("lastListingRouteName") && (null != (t = this.get("chartFetcher.results")) ? t.contains(this.get("content")) : void 0) ? this.get("chartFetcher") : void 0
}.property("content", "searchFetcher.results.@each", "searchMultipleFetchers.@each.results.@each", "chartFetcher.results.@each", "lastListingRouteName"),backRouteName: function() {
var e, t;
return (null != (e = this.get("fetcher")) ? e.constructor : void 0) === App.SearchFetcher ? "search" : (null != (t = this.get("fetcher")) ? t.constructor : void 0) === App.ChartFetcher ? "chart" : "search"
}.property("fetcher"),backText: function() {
return "search" === this.get("backRouteName") ? "Search" : "Charts"
}.property("backRouteName"),backModel: function() {
return "chart" === this.get("backRouteName") ? this.get("controllers.chart.content") : void 0
}.property("backRouteName"),searchResults: r("fetcher.results"),isLastAndLoading: Ember.computed.and("isLastResult", "fetcher.isSearching"),isLastResult: function() {
return this.get("searchResults.lastObject") === this.get("content")
}.property("searchResults.lastObject", "content"),loadMoreIfLast: function() {
return this.get("fetcher") && this.get("isLastResult") ? this.get("fetcher").loadMoreResults() : void 0
}}), App.ItunesItem.MODELS.forEach(function(e) {
return App["" + e + "Controller"] = App.ItunesItemController
})
}), require.register("controllers/itunes_item/association", function() {
App.ItunesItemAssociationController = Ember.ObjectController.extend({name: Ember.computed.oneWay("mediaType.shortNameOrName"),fetcher: function() {
return this.get("parent") && this.get("mediaType") ? App.AssociationFetcher.firstOrCreate(this.get("parent"), this.get("mediaType.search.baseQuery"), {mediaType: this.get("mediaType")}) : void 0
}.property("parent", "mediaType"),loadInitalResults: function() {
return this.get("fetcher") ? this.get("fetcher").fetchAtLeast(3) : void 0
}.on("init")})
}), require.register("controllers/itunes_item/screenshots", function() {
var e, t, s;
t = "iphone", e = "ipad", s = "mac", App.ItunesItemScreenshotsController = Ember.ObjectController.extend({needs: ["itunesItem"],itunesItem: Ember.computed.oneWay("controllers.itunesItem.content"),screenshots: function() {
return this.get("itunesItem." + this.get("type") + "Screenshots")
}.property("itunesItem", "type"),closeOverlay: function() {
return this.transitionToRoute(this.get("itunesItem.routeName"), this.get("itunesItem"))
},index: function() {
return this.get("number") - 1
}.property("number"),nameForType: function(r) {
switch (r) {
case t:
return "iPhone";
case e:
return "iPad";
case s:
return "Mac"
}
},name: function() {
return this.nameForType(this.get("type"))
}.property("type")})
}), require.register("controllers/missing", function(e, t, s) {
s.exports = App.MissingController = Ember.Controller.extend()
}), require.register("controllers/search", function(e, t, s) {
var r, a, n, i, o, h;
n = t("utils/normalize_term"), h = Ember.computed, o = h.oneWay, i = h.notEmpty, r = ["all", "ios", "music", "movies", "tv", "books", "mac", "podcasting"], a = 4, s.exports = App.SearchController = Ember.ObjectController.extend({queryParams: ["term", "mediaType"],mediaType: "all",searchTerm: o("term"),term: function(e, t) {
return arguments.length > 1 && (this.set("_searchTerm", n(t)), this.set("newSearchTerm", this.get("_searchTerm"))), this.get("_searchTerm")
}.property("term"),hasSearchTerm: Ember.computed.notEmpty("searchTerm"),fetcher: function() {
var e;
if (this.get("content") && this.get("hasSearchTerm"))
return e = this.get("searchTerm"), App.SearchFetcher.firstOrCreate(this.get("content"), {term: e})
}.property("searchTerm", "content", "hasSearchTerm"),runSearch: function() {
var e;
return this.get("hasSearchTerm") && null != (e = this.get("fetcher")) ? e.fetchInitialSets() : void 0
},majorSearches: function() {
return r.map(function(e) {
return function(t) {
return e.get("store").getById("search", t)
}
}(this))
}.property(),isContainedSearch: function(e) {
return !e.get("isAll") && e.get("searches").contains(this.get("content"))
},isActive: function(e) {
return e === this.get("content") || this.isContainedSearch(e)
},majorSearchTypes: function() {
return this.get("majorSearches").map(function(e) {
return function(t, s) {
var r;
return r = {mediaType: t.get("id"),term: e.get("searchTerm")}, {name: t.get("searchNameOrShortName").pluralize(),queryParams: r,isActive: e.isActive(t),isExtra: s + 1 > a}
}
}(this))
}.property("searchTerm", "content"),extraMajorSearchTypes: function() {
return this.get("majorSearchTypes").filterBy("isExtra")
}.property("majorSearchTypes.@each.isExtra"),isExtraActive: function() {
return this.get("extraMajorSearchTypes").isAny("isActive")
}.property("extraMajorSearchTypes.@each.isActive"),minorSearchTypes: function() {
var e, t, s;
return this.get("isAll") ? [] : (s = this.get(this.get("parentSearch") ? "parentSearch.searches" : "searches"), t = s.map(function(e) {
return function(t) {
var s;
return s = {mediaType: t.get("id"),term: e.get("searchTerm")}, {search: t,queryParams: s,name: t.get("shortNameOrName").pluralize()}
}
}(this)), (this.get("hasSearches") || this.get("parentSearch")) && (e = this.get("parentSearch") || this.get("content"), t.unshiftObject({name: "All",queryParams: {mediaType: e.get("id"),term: this.get("searchTerm")}})), t)
}.property("content", "searchTerm", "parentSearch"),hasMinorSearchTypes: i("minorSearchTypes.[]")})
}), require.register("controllers/search/multiple", function() {
var e, t, s, r;
r = Ember.computed, s = r.oneWay, e = r.alias, t = r.any, App.SearchMultipleController = Ember.ObjectController.extend({needs: ["search"],content: s("controllers.search.content"),searchTerm: s("controllers.search.searchTerm"),hasSearchTerm: s("controllers.search.hasSearchTerm"),fetcher: s("fetchers.firstObject"),alternateSearches: s("fetcher.alternateSearches"),didYouMean: s("fetcher.didYouMean"),allDoneSearching: Ember.computed.not("anySearchingFirst"),anySearchingFirst: function() {
return this.get("fetchers").anyBy("isSearchingFirst")
}.property("fetchers.@each.isSearchingFirst"),firstSearchingFetcher: function() {
return this.get("fetchers").findBy("isSearchingFirst")
}.property("fetchers.@each.isSearchingFirst"),fetchers: function() {
var e;
return e = this.get("searchTerm"), !this.get("content") || Ember.isEmpty(e) ? [] : this.get("searches").map(function(t) {
return App.SearchFetcher.firstOrCreate(t, {term: e})
})
}.property("searchTerm", "content"),noResults: function() {
return this.get("fetchers").everyBy("noResults") && !this.get("fetchers").anyBy("isSearching")
}.property("fetchers.@each.results.@each", "fetchers.@each.isSearching"),runSearch: function() {
return this.get("fetchers").forEach(function(e) {
return e.get("hasResultSets") ? void 0 : e.fetchResults()
})
}})
}), require.register("helpers/comma", function(e, t, s) {
var r;
r = t("utils/number_with_commas"), s.exports = Ember.Handlebars.helper("comma", function(e) {
return Ember.isEmpty(e) ? "" : r(e)
})
}), require.register("helpers/pluralize", function() {
Ember.Handlebars.helper("pluralize", function(e, t) {
var s;
return "string" === Ember.typeOf(e) ? e.pluralize() : (s = Ember.get(e, "length"), s || (s = e), 1 === s ? t : t.pluralize())
})
}), require.register("initialize", function(e, t) {
var s, r;
t("config/google_analytics"), window.App = t("config/app"), App.Logger = t("utils/logger"), t("config/route"), s = t("config/environment"), t("config/inflector"), Ember.$.ajaxPrefilter(function(e) {
return e.global = !0
}), r = ["initializers", "utils", "mixins", "transforms", "serializers", "adapters", "models", "routes", "views", "controllers", "helpers", "templates", "components"], r.forEach(function(e) {
return window.require.list().filter(function(t) {
return new RegExp("^" + e + "/").test(t)
}).forEach(function(e) {
return t(e)
})
}), t("config/router"), s.get("useFixtures") ? (Ember.Logger.debug("Using Fixtures"), App.ApplicationAdapter = App.FndFixtureAdapter) : (App.ApplicationAdapter = App.ItunesAdapter, App.ApplicationSerializer = App.ItunesItemSerializer), t("config/fastclick")
}), require.register("initializers/device", function(e, t) {
var s;
s = t("config/device"), Ember.Application.initializer({name: "device",initialize: function(e, t) {
return t.register("device:main", s, {instantiate: !1,singleton: !0}), t.inject("controller", "device", "device:main"), t.inject("component", "device", "device:main")
}})
}), require.register("initializers/environment", function(e, t, s) {
var r;
r = t("config/environment"), s.exports = Ember.Application.initializer({name: "environment",initialize: function(e, t) {
return t.register("environment:main", r, {instantiate: !1,singleton: !0}), t.inject("controller", "env", "environment:main"), t.inject("route", "env", "environment:main")
}})
}), require.register("mixins/app", function(e, t, s) {
var r;
r = DS.attr, s.exports = App.AppMixin = Ember.Mixin.create({sellerUrl: r("string"),artistName: r("string"),description: r("string"),screenshotUrls: r("array"),version: r("string"),metadata1Template: "app/_metadata1",metadata2Template: "app/_metadata2",metadata3Template: "app/_metadata3",mediaTypeTemplate: "app/_media_type",iiMetadataTemplate: "app/_ii_metadata",softwareDeveloper: DS.belongsTo("softwareDeveloper"),softwareDeveloperName: Ember.computed.alias("artistName"),subtitle: null,imageSuffix: "175x175-75",hasSellerUrl: Ember.computed.notEmpty("sellerUrl"),screenshots: function() {
return App.Screenshot.createFromUrls(this.get("screenshotUrls"), this.get("typeKey"))
}.property("screenshotUrls"),sellerDomain: function() {
var e;
return e = new URI(this.get("sellerUrl")), e.domain()
}.property("sellerUrl"),searchName: function() {
return Ember.$.trim("" + this.get("name") + " " + this.get("mediaType.name"))
}.property("name", "mediaType.name"),cssClass: function() {
return this._super() + " app"
}.property()})
}), require.register("mixins/app_class", function(e, t, s) {
s.exports = App.AppClassMixin = Ember.Mixin.create({hasScreenshots: !0})
}), require.register("mixins/artist", function(e, t, s) {
var r;
r = Ember.computed.alias, s.exports = App.ArtistMixin = Ember.Mixin.create({artistLinkUrl: DS.attr("string"),name: r("artistName"),url: r("artistLinkUrl"),subtitle: null,pageTitleFormat: null,slugUrlFormat: null,availability: "available",cssClass: function() {
return this._super() + " creator"
}.property()})
}), require.register("mixins/belongs_to_album", function(e, t, s) {
s.exports = App.BelongsToAlbumMixin = Ember.Mixin.create({albumName: Ember.computed.alias("collectionName"),album: DS.belongsTo("album"),mediaTypeId: "songs",unavailableName: "Album Only"})
}), require.register("mixins/download", function(e, t, s) {
s.exports = App.DownloadMixin = Ember.Mixin.create({downloadFileName: function() {
var e, t, s;
return t = null != (s = this.get("previewUrl")) ? s.match(/\.(\w|\d){3,4}$/) : void 0, t ? (e = this.get("downloadName"), e += t[0]) : this.get("previewUrl")
}.property("name")})
}), require.register("mixins/duration", function(e, t, s) {
s.exports = App.DurationMixin = Ember.Mixin.create({trackTimeMillis: DS.attr("number"),trackTimeFormatted: function() {
var e, t, s, r, a, n, i;
return t = this.get("trackTimeMillis"), t && 0 !== t ? (n = Math.floor(t / 1e3 % 60), s = Math.floor(t / 6e4 % 60), e = Math.floor(t / 36e5 % 60), a = 10 > n, i = a ? "0" + n : n.toString(), e ? (a = 10 > s, r = a ? "0" + s : s.toString(), "" + e + ":" + r + ":" + i) : s ? "" + s + ":" + i : "0:" + i) : ""
}.property("trackTimeMillis")})
}), require.register("mixins/genre", function(e, t, s) {
s.exports = App.GenreMixin = Ember.Mixin.create({primaryGenreName: DS.attr("string")})
}), require.register("mixins/has_author", function(e, t, s) {
s.exports = App.HasAuthorMixin = Ember.Mixin.create({author: DS.belongsTo("author"),authorName: Ember.computed.alias("artistName"),subtitle: null})
}), require.register("mixins/has_music_artist", function(e, t, s) {
s.exports = App.HasMusicArtistMixin = Ember.Mixin.create({artistName: DS.attr("string"),_artist: DS.belongsTo("artist"),artist: function() {
return this.get("_artist.isVariousArtists") ? void 0 : this.get("_artist")
}.property("_artist.isVariousArtists")})
}), require.register("mixins/overlay", function(e, t, s) {
s.exports = App.OverlayMixin = Ember.Mixin.create({appearanceDirection: "bottom",addOverlay: function() {
return Ember.$("body").addClass("overlay-open")
}.on("didInsertElement"),removeOverlay: function() {
return this.$(".overlay").removeClass("overlay--show"), Ember.$("body").removeClass("overlay-open")
}.on("willDestroyElement"),animateAppearance: function() {
var e;
if (this.get("element"))
return e = Ember.$(window).height(), "top" === this.get("appearanceDirection") && (e = -e), "none" === this.get("appearanceDirection") && (e = 0), this.$(".overlay").css({y: e,opacity: 0}).transition({y: 0,opacity: 1,duration: 400,easing: "ease",complete: function(e) {
return function() {
return "function" === Ember.typeOf(e.afterMenuShown) ? e.afterMenuShown() : void 0
}
}(this)})
}.on("didInsertElement")})
}), require.register("mixins/rating", function(e, t, s) {
var r;
r = DS.attr, s.exports = App.RatingMixin = Ember.Mixin.create({averageUserRating: r("number"),userRatingCount: r("number"),averageUserRatingForCurrentVersion: r("number"),userRatingCountForCurrentVersion: r("number"),rating: function() {
return this.get("averageUserRating") ? this.get("averageUserRating") : this.get("averageUserRatingForCurrentVersion") ? this.get("averageUserRatingForCurrentVersion") : void 0
}.property("averageUserRating", "averageUserRatingForCurrentVersion"),ratingCount: function() {
return this.get("userRatingCount") ? this.get("userRatingCount") : this.get("userRatingCountForCurrentVersion") ? this.get("userRatingCountForCurrentVersion") : void 0
}.property("userRatingCount", "userRatingCountForCurrentVersion")})
}), require.register("mixins/review", function(e, t, s) {
var r;
r = "https://itunes.apple.com/rss/customerreviews/id=%@/json", s.exports = App.ReviewMixin = Ember.Mixin.create({reviews: DS.hasMany("review", {async: !0,alwaysLoad: !0}),headerTemplate: "itunes_item/_review_header",reviewsUrl: function() {
return r.fmt(this.get("id"))
}.property("id")})
}), require.register("mixins/track", function(e, t, s) {
var r;
r = DS.attr, s.exports = App.TrackMixin = Ember.Mixin.create({hasTrackNumbers: !0,trackPrice: r("number"),previewUrl: r("string"),trackNumber: r("number"),discCount: r("number"),discNumber: r("number"),price: Ember.computed.alias("trackPrice"),hasMoreThanOneDisc: Ember.computed.gt("discCount", 1)})
}), require.register("models/bookmarklet", function(e, t, s) {
var r, a, n;
n = t("config/environment"), r = n.get("url"), a = t("config/device"), t("models/fnd_model"), s.exports = App.Bookmarklet = App.FndModel.extend({title: DS.attr("string"),name: DS.attr("string"),description: DS.attr("string"),hiddenOnIos: DS.attr("boolean"),rawCode: DS.attr("string"),needsIcon: DS.attr("boolean"),integration: DS.belongsTo("integration"),code: function() {
var e;
return e = this.get("rawCode"), e = e.split(/\n/).map(function(e) {
return e = e.replace(/^\s*\/\/.+\n/, ""), e = e.replace(/\t/, " "), e = e.replace(/\s{2,}/, " "), e = e.replace(/^\s+/, ""), e = e.replace(/\s+$/, ""), e = e.replace(/\n/, "")
}).join(""), encodeURI("javascript:(function(){" + e + "})()")
}.property("rawCode"),hidden: function() {
return a.get("isIos") && this.get("hiddenOnIos")
}.property("hiddenOnIos"),installText: function() {
return 'Tap to Install "' + this.get("title") + '"'
}.property("title")}), App.Bookmarklet.all = [{id: "search",integration: "bookmarklets",title: "Search fnd",name: "🔎 fnd",needsIcon: !0,description: "Quickly Search fnd in any browser.",rawCode: "var term = window.prompt('Search fnd for...');\nif (term) {\n window.location.href = '" + r + "/#/search?term='+term+'&mediaType=all';\n}"}, {id: "convert",integration: "bookmarklets",title: "Convert iTunes Page to fnd",name: "iTunes > fnd",description: "Convert an iTunes page to its counterpart in fnd. Share the result with\nyour friends and they won't hate you for opening iTunes on their\ncomputer.",hiddenOnIos: !0,rawCode: "var id,\n iRe = /i=(\\d+)/,\n idRe = /id(\\d+)/,\n href = window.location.href;\nif (iRe.test(href)) {\n id = iRe.exec(href)[1];\n} else if (idRe.test(href)) {\n id = idRe.exec(href)[1];\n}\nif (id) {\n window.location.href='" + r + "/#/any/'+id;\n}"}]
}), require.register("models/chart", function(e, t, s) {
var r;
r = function(e, t, s) {
return [e, t, s].compact().mapBy("id").join(":")
}, s.exports = App.Chart = Ember.Object.extend({id: function() {
return r(this.get("mediaType"), this.get("chartType"), this.get("genre"))
}.property("mediaType.id", "chartType.id", "genre.id"),name: function() {
return this.get("chartType.overrideName") || "" + this.get("chartType.name") + " " + this.get("mediaType.name")
}.property("mediaType.name", "chartType.name", "chartType.baseName"),title: function() {
return [this.get("mediaType.pluralName"), "that are", this.get("chartType.name"), this.get("genre.isAll") ? void 0 : "in " + this.get("genre.name")].compact().join(" ")
}.property("mediaType.name", "chartType.name", "genre.name")}), App.Chart.reopenClass({CHART_MAP: Ember.Map.create(),createWithFallback: function(e, t, s) {
var r;
return r = App.__container__.lookup("store:main"), e || (e = r.getById("mediaType", "iphone")), e.get("chartTypes").contains(t) || (t = e.get("chartTypes.firstObject")), t.get("hasGenres") ? e.get("genres").contains(s) || (s = e.get("genres.firstObject")) : s = r.getById("genre", "all"), App.Chart.create({mediaType: e,chartType: t,genre: s})
},firstOrCreate: function(e, t, s) {
var a, n;
return n = r(e, t, s), n && (a = this.CHART_MAP.get(n)) ? a : (a = this.createWithFallback(e, t, s), this.CHART_MAP.set(a.get("id"), a), a)
}})
}), require.register("models/chart_result", function(e, t, s) {
t("models/fnd_model"), s.exports = App.ChartResult = App.FndModel.extend({results: DS.hasMany("itunesItemResult", {async: !0})})
}), require.register("models/chart_type", function(e, t, s) {
s.exports = App.ChartType = App.FndModel.extend({baseName: DS.attr("string"),overrideName: DS.attr("string"),noSuffixRssId: DS.attr("boolean", {defaultValue: !1}),hasGenres: DS.attr("boolean", {defaultValue: !0}),name: function() {
return this.get("overrideName") || this.get("baseName")
}.property("baseName", "overrideName"),baseRssId: function() {
return this.get("id").replace(/-/g, "")
}.property("")}), App.ChartType.all = [{id: "top-free",baseName: "Top Free"}, {id: "top-paid",baseName: "Top Paid"}, {id: "top-grossing",baseName: "Top Grossing"}, {id: "new",baseName: "New",hasGenres: !1}, {id: "new-free",baseName: "New & Free",hasGenres: !1}, {id: "new-paid",baseName: "New & Paid",hasGenres: !1}, {id: "top-movies",baseName: "Top Movies"}, {id: "top-video-rentals",baseName: "Top Rentals"}, {id: "top-albums",overrideName: "Top Albums"}, {id: "top-songs",overrideName: "Top Songs"}, {id: "top-music-videos",overrideName: "Top Music Videos",hasGenres: !1}, {id: "top",baseName: "Top"}, {id: "top-audiobooks",noSuffixRssId: !0,overrideName: "Top Audiobooks"}, {id: "top-podcasts",baseName: "Top Podcasts"}, {id: "top-tv-seasons",overrideName: "Top TV Seasons"}, {id: "top-tv-episodes",overrideName: "Top TV Episodes"}]
}), require.register("models/did_you_mean", function(e, t, s) {
var r, a, n;
r = t("utils/create_promise"), n = t("utils/google_complete"), a = function(e) {
return null != e ? e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&") : void 0
}, s.exports = App.DidYouMean = Ember.Object.extend(Ember.PromiseProxyMixin, {suggestion: function() {
var e, t;
return e = this.get("suggestions.firstObject"), t = new RegExp(a(this.get("term")), "i"), t.test(e) ? void 0 : e
}.property("suggestions.firstObject"),setupVariables: function() {
return this.set("suggestions", [])
}.on("init"),fetch: function() {
var e, t;
if (!this.get("isSettled") && !this.get("suggestion") && (t = Ember.$.trim(this.get("term")), !Ember.isEmpty(t)))
return e = r(function(e) {
return function(s, r) {
return Ember.$.ajax({url: n.FULL_URL.fmt(encodeURIComponent(t)),dataType: "jsonp",timeout: 5e3,success: function(t) {
return Ember.run(function() {
return e.get("suggestions").pushObjects(t[1]), s(t[1])
})
},error: function() {
return r("Google complete suggestions failed to load.")
}})
}
}(this)), this.set("promise", e)
}}), App.DidYouMean.reopenClass({CACHE: Ember.Map.create(),firstOrCreate: function(e) {
var t;
return (t = this.CACHE.get(e)) ? t : (t = this.create({term: e}), t.fetch(), this.CACHE.set(e, t), t)
}})
}), require.register("models/fetchers/association_fetcher", function(e, t, s) {
t("models/fetchers/fetcher"), s.exports = App.AssociationFetcher = App.Fetcher.extend({resultType: "itunesItemResult",startAmount: 5,moreAmount: 25,maxAmount: 300,defaultInitialResultSets: 1,countForResults: function(e) {
return e.uniq().length - 1
},extractResults: function(e) {
var t;
return t = this.get("mediaType.itunesItemTypes"), e = e.filter(function(e) {
return t.contains(e.get("actualResult.typeKey"))
}), Ember.RSVP.resolve(e.mapBy("actualResult"))
},buildQuery: function(e) {
return e.id = this.get("model.id"), e
}}), App.AssociationFetcher.reopenClass({FETCHER_ID: "association"})
}), require.register("models/fetchers/chart_fetcher", function(e, t, s) {
t("models/fetchers/fetcher"), s.exports = App.ChartFetcher = App.Fetcher.extend({requiredParams: ["rssId"],resultType: "chartResult",startAmount: 25,moreAmount: 25,maxAmount: 400,defaultInitialResultSets: 2,extractResults: function(e) {
return new Ember.RSVP.Promise(function(t, s) {
return e.get("firstObject.results").then(function(e) {
return t(e.mapBy("actualResult"))
}, function(e) {
return s(e)
})
})
},buildQuery: function(e) {
return e
}}), App.ChartFetcher.reopenClass({FETCHER_ID: "chart"})
}), require.register("models/fetchers/fetcher", function(e, t, s) {
var r, a, n, i, o, h;
n = t("config/environment"), i = t("config/errors"), a = t("utils/create_promise"), h = Ember.computed, r = h.alias, o = h.notEmpty, s.exports = App.Fetcher = Ember.Object.extend({mayHaveMoreResults: !0,queryParams: null,requiredParams: [],startAmount: 1,moreAmount: 10,maxAmount: 300,defaultInitialResultSets: 2,concatenatedProperties: ["requiredParams"],maxFetchAmount: Ember.computed.max("fetchAmounts"),isFetching: r("fetchPromise.isPending"),isFetchingFirst: Ember.computed.and("noResultSets", "isFetching"),hasResults: o("results.[]"),noResults: Ember.computed.not("hasResults"),hasResultSets: o("resultSets.[]"),noResultSets: Ember.computed.not("hasResultSets"),firstResultSet: r("resultSets.firstObject"),store: r("model.store"),setupVariables: function() {
return this.set("resultSets", []), this.set("fetchAmounts", [])
}.on("init"),addResultSet: function(e) {
return this.get("resultSets").pushObject(e)
},results: function() {
var e;
return null != (e = this.get("resultSets")) ? e.reduce(function(e, t) {
return e.pushObjects(t.get("content")), e
}, []) : void 0
}.property("resultSets.@each"),hasRequiredParams: function(e) {
return this.get("requiredParams").every(function(t) {
return !Ember.isEmpty(e[t])
})
},missingParams: function(e) {
return this.get("requiredParams").filter(function(t) {
return Ember.isEmpty(e[t])
})
},countForResults: function(e) {
return e.get("meta.resultCount")
},_fetchResults: function(e) {
var t, s;
return null == e && (e = DEFAULT_FETCH), e > this.get("maxAmount") && (e = this.get("maxAmount")), this.get("mayHaveMoreResults") ? this.get("fetchAmounts").contains(e) ? Ember.RSVP.reject({code: i.ALREADY_FETCHED,message: "Already fetched " + e,level: "info"}) : e > this.get("maxAmount") ? (this.set("mayHaveMoreResults", !1), Ember.RSVP.reject({message: "Max amount is %@. Tried to query for %@".fmt(this.get("maxAmount"), e)})) : e < this.get("maxFetchAmount") ? Ember.RSVP.reject({message: "Querying for %@ pointless when %@ has already been queried".fmt(e, this.get("maxFetchAmount"))}) : (this.get("fetchAmounts").pushObject(e), t = this.buildQuery(Ember.copy(this.get("queryParams"))), this.hasRequiredParams(t) ? (t.limit = e, s = this.get("store").findQuery(this.get("resultType"), t), a(function(t) {
return function(r, a) {
return s.then(function(s) {
return t.countForResults(s) < e && t.set("mayHaveMoreResults", !1), t.extractResults(s).then(function(s) {
var n;
return n = App.ResultSet.create({content: s,resultsBefore: t.get("results.length") || 0,extraSet: t.get("hasResultSets")}), t.get("maxAmount") === e && t.set("mayHaveMoreResults", !1), t.get("results") && n.removeObjects(t.get("results")), n.get("length") > 0 ? (t.addResultSet(n), r(n)) : (t.set("mayHaveMoreResults", !1), a({code: i.NO_MORE_RESULTS,message: "No more results.",level: "info"}))
})
}, function(e) {
var t, s;
return s = null != e ? e.statusText : void 0, s && (t = "Reason: " + s + "."), a({message: "Failed to load results. " + t,object: e})
})
}
}(this))) : Ember.RSVP.reject({message: "Missing required query params " + this.missingParams(t),code: i.MISSING_PARAM,level: "error"})) : Ember.RSVP.reject({code: i.NO_POSSIBLE_RESULTS,message: "No possibility of more results.",level: "info"})
},fetchResults: function(e) {
var t;
return null == e && (e = this.get("startAmount")), this.get("isFetching") ? Ember.RSVP.reject("Already fetching, skipping fetch") : (t = this._fetchResults(e), this.set("fetchPromise", t), t)
},loadMoreResults: function(e) {
return null == e && (e = 1), 1 >= e ? this.fetchResults(this.get("results.length") + this.get("moreAmount")) : this.fetchResults(this.get("results.length") + this.get("moreAmount")).then(function(t) {
return function() {
return t.loadMoreResults(e - 1)
}
}(this))
},fetchAtLeast: function(e) {
var t;
return this.get("hasResultSets") && this.get("resultSets.length") < e ? (t = e - this.get("resultSets.length"), this.loadMoreResults(t)) : this.get("hasResultSets") ? void 0 : (t = e - this.get("resultSets.length"), this.fetchResults(this.get("startAmount")).then(function(e) {
return function() {
return 1 !== t ? e.loadMoreResults(t - 1) : void 0
}
}(this)))
},fetchInitialSets: function() {
return this.fetchAtLeast(this.get("defaultInitialResultSets"))
}}), App.Fetcher.reopenClass({FETCHER_ID: "fetcher",FETCHER_MAP: Ember.Map.create(),uniqueKey: function(e, t) {
var s, r;
return s = Ember.keys(t).sort(), r = s.reduce(function(e, s) {
var r;
return r = t[s], "string" !== Ember.typeOf(r) ? e : (r = r.toLowerCase(), "limit" !== s && e.pushObject("" + s + "-" + r), e)
}, ["" + this.FETCHER_ID + "-" + e.get("id")]).join(":")
},firstOrCreate: function(e, t, s) {
var r, a;
return a = this.uniqueKey(e, t), (r = this.FETCHER_MAP.get(a)) ? r : (r = this.create(Ember.merge({model: e,queryParams: Ember.copy(t),id: a}, s)), this.FETCHER_MAP.set(a, r), r)
}})
}), require.register("models/fetchers/search_fetcher", function(e, t, s) {
t("models/fetchers/fetcher"), s.exports = App.SearchFetcher = App.Fetcher.extend({requiredParams: ["term"],resultType: "itunesItemResult",startAmount: 3,moreAmount: 30,maxAmount: 200,defaultInitialResultSets: 3,searchTerm: Ember.computed.alias("queryParams.term"),search: Ember.computed.alias("model"),isSearching: Ember.computed.oneWay("isFetching"),isSearchingFirst: Ember.computed.oneWay("isFetchingFirst"),extractResults: function(e) {
return Ember.RSVP.resolve(e.mapBy("actualResult"))
},buildQuery: function(e) {
return Ember.merge(Ember.copy(this.get("model.baseQuery")), e)
},didYouMean: function() {
return App.DidYouMean.firstOrCreate(this.get("searchTerm"))
}.property("searchTerm"),alternateSearches: function() {
var e;
return e = URI.encodeQuery(this.get("searchTerm"), !0), [{name: "Google",url: "https://www.google.com/search?q=" + e}, {name: "YouTube",url: "https://www.youtube.com/results?search_query=" + e}, {name: "SoundCloud",url: "https://soundcloud.com/search?q=" + e}, {name: "Beatport",url: "http://www.beatport.com/search?query=" + e}]
}.property("searchTerm")}), App.SearchFetcher.reopenClass({FETCHER_ID: "search"})
}), require.register("models/fnd_model", function(e, t, s) {
s.exports = App.FndModel = DS.Model.extend({typeKey: function() {
return this.constructor.typeKey
}.property(),routeName: function() {
return this.constructor.routeName()
}.property(),routePath: function() {
return this.constructor.routePath()
}.property(),templateName: function() {
return this.constructor.templateName()
}.property(),dynamicSegmentName: function() {
return this.constructor.dynamicSegmentName()
}.property(),cssClass: function() {
return this.constructor.cssClass()
}.property()}), App.FndModel.reopenClass({typeKeyFromToString: function() {
return this._typeKeyFromToString || (this._typeKeyFromToString = this.toString().split(".")[1].camelize())
},routeName: function() {
return this.typeKeyFromToString().camelize()
},routePath: function() {
return this.typeKeyFromToString().dasherize()
},templateName: function() {
return this.typeKeyFromToString().underscore()
},cssClass: function() {
return this.typeKeyFromToString().dasherize()
},dynamicSegmentName: function() {
return "" + this.typeKeyFromToString().underscore() + "_id"
},loadAll: function(e) {
return this.all.forEach(function(t) {
return function(s) {
return e.push(t.typeKeyFromToString(), s)
}
}(this))
}})
}), require.register("models/genre", function(e, t, s) {
var r;
r = {id: "all",name: "All"}, s.exports = App.Genre = App.FndModel.extend({name: DS.attr("string"),subGenres: DS.hasMany("genre"),isSub: Ember.computed.notEmpty("parentGenre"),isPrimary: Ember.computed.not("isSub"),isAll: Ember.computed.equal("id", "all"),lowerCaseName: function() {
var e;
return null != (e = this.get("name")) ? e.toLowerCase() : void 0
}.property("name"),rssId: function() {
return this.get("isAll") ? "" : this.get("id")
}.property("id", "isAll"),slug: function() {
var e;
return e = this.get("name").replace(/&/, "and"), parameterize(e)
}.property("id", "name")}), App.Genre.loadAll = function(e) {
var t, s, a, n, i, o;
o = this.all;
for (i in o)
t = o[i], n = function() {
var r, n;
r = t.subgenres, n = [];
for (s in r)
a = r[s], e.push("genre", a), n.push(a.id);
return n
}(), t.subGenres = ["all"], t.subGenres.pushObjects(n), e.push("genre", t);
return e.push("genre", r)
}
}), require.register("models/genres", function() {
App.Genre.all = {26: {name: "Podcasts",id: "26",subgenres: {1301: {name: "Arts",id: "1301"},1303: {name: "Comedy",id: "1303"},1304: {name: "Education",id: "1304"},1305: {name: "Kids & Family",id: "1305"},1307: {name: "Health",id: "1307"},1309: {name: "TV & Film",id: "1309"},1310: {name: "Music",id: "1310"},1311: {name: "News & Politics",id: "1311"},1314: {name: "Religion & Spirituality",id: "1314"},1315: {name: "Science & Medicine",id: "1315"},1316: {name: "Sports & Recreation",id: "1316"},1318: {name: "Technology",id: "1318"},1321: {name: "Business",id: "1321"},1323: {name: "Games & Hobbies",id: "1323"},1324: {name: "Society & Culture",id: "1324"},1325: {name: "Government & Organizations",id: "1325"}}},31: {name: "Music Videos",id: "31",subgenres: {1602: {name: "Blues",id: "1602"},1603: {name: "Comedy",id: "1603"},1604: {name: "Children's Music",id: "1604"},1605: {name: "Classical",id: "1605"},1606: {name: "Country",id: "1606"},1607: {name: "Electronic",id: "1607"},1608: {name: "Holiday",id: "1608"},1609: {name: "Opera",id: "1609"},1610: {name: "Singer/Songwriter",id: "1610"},1611: {name: "Jazz",id: "1611"},1612: {name: "Latin",id: "1612"},1613: {name: "New Age",id: "1613"},1614: {name: "Pop",id: "1614"},1615: {name: "R&B/Soul",id: "1615"},1616: {name: "Soundtrack",id: "1616"},1617: {name: "Dance",id: "1617"},1618: {name: "Hip-Hop/Rap",id: "1618"},1619: {name: "World",id: "1619"},1620: {name: "Alternative",id: "1620"},1621: {name: "Rock",id: "1621"},1622: {name: "Christian & Gospel",id: "1622"},1623: {name: "Vocal",id: "1623"},1624: {name: "Reggae",id: "1624"},1625: {name: "Easy Listening",id: "1625"},1626: {name: "Podcasts",id: "1626"},1627: {name: "J-Pop",id: "1627"},1628: {name: "Enka",id: "1628"},1629: {name: "Anime",id: "1629"},1630: {name: "Kayokyoku",id: "1630"},1631: {name: "Disney",id: "1631"},1632: {name: "French Pop",id: "1632"},1633: {name: "German Pop",id: "1633"},1634: {name: "German Folk",id: "1634"},1637: {name: "Chinese",id: "1637"},1648: {name: "Korean",id: "1648"},1671: {name: "Brazilian",id: "1671"},1683: {name: "Fitness & Workout",id: "1683"},1684: {name: "Instrumental",id: "1684"},1686: {name: "K-Pop",id: "1686"},1687: {name: "Karaoke",id: "1687"},1689: {name: "Spoken Word",id: "1689"},1690: {name: "Indian",id: "1690"},1713: {name: "Arabic",id: "1713"},1719: {name: "Folk",id: "1719"},1720: {name: "Orchestral",id: "1720"},1721: {name: "Marching",id: "1721"},1926: {name: "Christian & Gospel",id: "1926"}}},32: {name: "TV Shows",id: "32",subgenres: {4e3: {name: "Comedy",id: "4000"},4001: {name: "Drama",id: "4001"},4002: {name: "Animation",id: "4002"},4003: {name: "Action & Adventure",id: "4003"},4004: {name: "Classic",id: "4004"},4005: {name: "Kids",id: "4005"},4006: {name: "Nonfiction",id: "4006"},4007: {name: "Reality TV",id: "4007"},4008: {name: "Sci-Fi & Fantasy",id: "4008"},4009: {name: "Sports",id: "4009"},4010: {name: "Teens",id: "4010"},4011: {name: "Latino TV",id: "4011"}}},33: {name: "Movies",id: "33",subgenres: {4401: {name: "Action & Adventure",id: "4401"},4402: {name: "Anime",id: "4402"},4403: {name: "Classics",id: "4403"},4404: {name: "Comedy",id: "4404"},4405: {name: "Documentary",id: "4405"},4406: {name: "Drama",id: "4406"},4407: {name: "Foreign",id: "4407"},4408: {name: "Horror",id: "4408"},4409: {name: "Independent",id: "4409"},4410: {name: "Kids & Family",id: "4410"},4411: {name: "Musicals",id: "4411"},4412: {name: "Romance",id: "4412"},4413: {name: "Sci-Fi & Fantasy",id: "4413"},4414: {name: "Short Films",id: "4414"},4415: {name: "Special Interest",id: "4415"},4416: {name: "Thriller",id: "4416"},4417: {name: "Sports",id: "4417"},4418: {name: "Western",id: "4418"},4419: {name: "Urban",id: "4419"},4420: {name: "Holiday",id: "4420"},4421: {name: "Made for TV",id: "4421"},4422: {name: "Concert Films",id: "4422"},4423: {name: "Music Documentaries",id: "4423"},4424: {name: "Music Feature Films",id: "4424"},4425: {name: "Japanese Cinema",id: "4425"},4426: {name: "Jidaigeki",id: "4426"},4427: {name: "Tokusatsu",id: "4427"},4428: {name: "Korean Cinema",id: "4428"},4429: {name: "Russian",id: "4429"},4430: {name: "Turkish",id: "4430"},4431: {name: "Bollywood",id: "4431"},4432: {name: "Regional Indian",id: "4432"},4433: {name: "MiddleEastern",id: "4433"},4434: {name: "African",id: "4434"}}},34: {name: "Music",id: "34",subgenres: {2: {name: "Blues",id: "2"},3: {name: "Comedy",id: "3"},4: {name: "Children's Music",id: "4"},5: {name: "Classical",id: "5"},6: {name: "Country",id: "6"},7: {name: "Electronic",id: "7"},8: {name: "Holiday",id: "8"},9: {name: "Opera",id: "9"},10: {name: "Singer/Songwriter",id: "10"},11: {name: "Jazz",id: "11"},12: {name: "Latino",id: "12"},13: {name: "New Age",id: "13"},14: {name: "Pop",id: "14"},15: {name: "R&B/Soul",id: "15"},16: {name: "Soundtrack",id: "16"},17: {name: "Dance",id: "17"},18: {name: "Hip-Hop/Rap",id: "18"},19: {name: "World",id: "19"},20: {name: "Alternative",id: "20"},21: {name: "Rock",id: "21"},22: {name: "Christian & Gospel",id: "22"},23: {name: "Vocal",id: "23"},24: {name: "Reggae",id: "24"},25: {name: "Easy Listening",id: "25"},27: {name: "J-Pop",id: "27"},28: {name: "Enka",id: "28"},29: {name: "Anime",id: "29"},30: {name: "Kayokyoku",id: "30"},50: {name: "Fitness & Workout",id: "50"},51: {name: "K-Pop",id: "51"},52: {name: "Karaoke",id: "52"},53: {name: "Instrumental",id: "53"},1122: {name: "Brazilian",id: "1122"},1197: {name: "Arabic",id: "1197"},1232: {name: "Chinese",id: "1232"},1243: {name: "Korean",id: "1243"},1262: {name: "Indian",id: "1262"},1289: {name: "Folk",id: "1289"},1290: {name: "Orchestral",id: "1290"},1291: {name: "Marching",id: "1291"},1e5: {name: "Christian & Gospel",id: "100000"},50000061: {name: "Spoken Word",id: "50000061"},50000063: {name: "Disney",id: "50000063"},50000064: {name: "French Pop",id: "50000064"},50000066: {name: "German Pop",id: "50000066"},50000068: {name: "German Folk",id: "50000068"}}},36: {name: "App Store",id: "36",subgenres: {6e3: {name: "Business",id: "6000"},6001: {name: "Weather",id: "6001"},6002: {name: "Utilities",id: "6002"},6003: {name: "Travel",id: "6003"},6004: {name: "Sports",id: "6004"},6005: {name: "Social Networking",id: "6005"},6006: {name: "Reference",id: "6006"},6007: {name: "Productivity",id: "6007"},6008: {name: "Photo & Video",id: "6008"},6009: {name: "News",id: "6009"},6010: {name: "Navigation",id: "6010"},6011: {name: "Music",id: "6011"},6012: {name: "Lifestyle",id: "6012"},6013: {name: "Health & Fitness",id: "6013"},6014: {name: "Games",id: "6014"},6015: {name: "Finance",id: "6015"},6016: {name: "Entertainment",id: "6016"},6017: {name: "Education",id: "6017"},6018: {name: "Books",id: "6018"},6020: {name: "Medical",id: "6020"},6021: {name: "Newsstand",id: "6021"},6022: {name: "Catalogs",id: "6022"},6023: {name: "Food & Drink",id: "6023"}}},38: {name: "Books",id: "38",subgenres: {9002: {name: "Nonfiction",id: "9002"},9003: {name: "Romance",id: "9003"},9004: {name: "Travel & Adventure",id: "9004"},9007: {name: "Arts & Entertainment",id: "9007"},9008: {name: "Biographies & Memoirs",id: "9008"},9009: {name: "Business & Personal Finance",id: "9009"},9010: {name: "Children & Teens",id: "9010"},9012: {name: "Humor",id: "9012"},9015: {name: "History",id: "9015"},9018: {name: "Religion & Spirituality",id: "9018"},9019: {name: "Science & Nature",id: "9019"},9020: {name: "Sci-Fi & Fantasy",id: "9020"},9024: {name: "Lifestyle & Home",id: "9024"},9025: {name: "Health, Mind & Body",id: "9025"},9026: {name: "Comics & Graphic Novels",id: "9026"},9027: {name: "Computers & Internet",id: "9027"},9028: {name: "Cookbooks, Food & Wine",id: "9028"},9029: {name: "Professional & Technical",id: "9029"},9030: {name: "Parenting",id: "9030"},9031: {name: "Fiction & Literature",id: "9031"},9032: {name: "Mysteries & Thrillers",id: "9032"},9033: {name: "Reference",id: "9033"},9034: {name: "Politics & Current Events",id: "9034"},9035: {name: "Sports & Outdoors",id: "9035"}}},39: {name: "Mac App Store",id: "39",subgenres: {12001: {name: "Business",id: "12001"},12002: {name: "Developer Tools",id: "12002"},12003: {name: "Education",id: "12003"},12004: {name: "Entertainment",id: "12004"},12005: {name: "Finance",id: "12005"},12006: {name: "Games",id: "12006"},12007: {name: "Health & Fitness",id: "12007"},12008: {name: "Lifestyle",id: "12008"},12010: {name: "Medical",id: "12010"},12011: {name: "Music",id: "12011"},12012: {name: "News",id: "12012"},12013: {name: "Photography",id: "12013"},12014: {name: "Productivity",id: "12014"},12015: {name: "Reference",id: "12015"},12016: {name: "Social Networking",id: "12016"},12017: {name: "Sports",id: "12017"},12018: {name: "Travel",id: "12018"},12019: {name: "Utilities",id: "12019"},12020: {name: "Video",id: "12020"},12021: {name: "Weather",id: "12021"},12022: {name: "Graphics & Design",id: "12022"}}},40: {name: "Textbooks",id: "40",subgenres: {15e3: {name: "Arts & Entertainment",id: "15000"},15017: {name: "Biographies & Memoirs",id: "15017"},15018: {name: "Business & Personal Finance",id: "15018"},15032: {name: "Children & Teens",id: "15032"},15035: {name: "Comics & Graphic Novels",id: "15035"},15038: {name: "Communications & Media",id: "15038"},15046: {name: "Computers & Internet",id: "15046"},15056: {name: "Cookbooks, Food & Wine",id: "15056"},15066: {name: "Engineering",id: "15066"},15075: {name: "Fiction & Literature",id: "15075"},15092: {name: "Health, Mind & Body",id: "15092"},15095: {name: "History",id: "15095"},15108: {name: "Humor",id: "15108"},15109: {name: "Language Studies",id: "15109"},15130: {name: "Lifestyle & Home",id: "15130"},15135: {name: "Mathematics",id: "15135"},15142: {name: "Medicine",id: "15142"},15155: {name: "Mysteries & Thrillers",id: "15155"},15162: {name: "Nonfiction",id: "15162"},15166: {name: "Parenting",id: "15166"},15167: {name: "Philosophy",id: "15167"},15176: {name: "Politics & Current Events",id: "15176"},15184: {name: "Professional & Technical",id: "15184"},15190: {name: "Reference",id: "15190"},15202: {name: "Religion & Spirituality",id: "15202"},15212: {name: "Romance",id: "15212"},15220: {name: "Sci-Fi & Fantasy",id: "15220"},15232: {name: "Science & Nature",id: "15232"},15249: {name: "Social Science",id: "15249"},15270: {name: "Sports & Outdoors",id: "15270"},15288: {name: "Teaching & Learning",id: "15288"},15298: {name: "Travel & Adventure",id: "15298"}}},50000024: {name: "Audiobooks",id: "50000024",subgenres: {74: {name: "News",id: "74"},75: {name: "Programs & Performances",id: "75"},50000040: {name: "Fiction",id: "50000040"},50000041: {name: "Arts & Entertainment",id: "50000041"},50000042: {name: "Biography & Memoir",id: "50000042"},50000043: {name: "Business",id: "50000043"},50000044: {name: "Kids & Young Adults",id: "50000044"},50000045: {name: "Classics",id: "50000045"},50000046: {name: "Comedy",id: "50000046"},50000047: {name: "Drama & Poetry",id: "50000047"},50000048: {name: "Speakers & Storytellers",id: "50000048"},50000049: {name: "History",id: "50000049"},50000050: {name: "Languages",id: "50000050"},50000051: {name: "Mystery",id: "50000051"},50000052: {name: "Nonfiction",id: "50000052"},50000053: {name: "Religion & Spirituality",id: "50000053"},50000054: {name: "Science",id: "50000054"},50000055: {name: "Sci Fi & Fantasy",id: "50000055"},50000056: {name: "Self Development",id: "50000056"},50000057: {name: "Sports",id: "50000057"},50000058: {name: "Technology",id: "50000058"},50000059: {name: "Travel & Adventure",id: "50000059"},50000069: {name: "Romance",id: "50000069"},50000070: {name: "Audiobooks Latino",id: "50000070"}}}}
}), require.register("models/image_set", function(e, t, s) {
App.Image = Ember.Object.extend({valid: !0,invalidate: function() {
return this.set("valid", !1)
}}), s.exports = App.ImageSet = Ember.Object.extend({validImages: Ember.computed.filterBy("images", "valid", !0),smallestValidImage: Ember.computed.alias("validImages.lastObject"),largestValidImage: Ember.computed.alias("validImages.firstObject"),generate: function(e) {
return Ember.makeArray(App.Image.create({url: e}))
},images: function() {
return this.generate(this.get("url"))
}.property("url")})
}), require.register("models/integration", function(e, t, s) {
s.exports = App.Integration = App.FndModel.extend({title: DS.attr("string"),subtitle: DS.attr("string"),bookmarklets: DS.hasMany("bookmarklet", {async: !0}),templateName: function() {
return "integrations/" + this.get("id")
}.property("id"),imagePartial: function() {
return "svg/integrations/" + this.get("id")
}.property("id")}), App.Integration.all = [{id: "bookmarklets",title: "Bookmarklets",subtitle: "Quick access shortcuts for any browser",bookmarklets: ["search", "convert"]}, {id: "launch-center-pro",title: "Launch Center Pro",subtitle: "Custom actions for iPhone and iPad"}, {id: "alfred",title: "Alfred",subtitle: "Powerful workflow for Mac"}]
}), require.register("models/itunes_item", function(e, t, s) {
var r, a, n, i, o, h, p;
t("models/fnd_model"), t("adapters/itunes"), i = t("utils/apple_ssl_url"), a = "https://gdata.youtube.com/feeds/api/videos", r = 50, o = DS.attr, h = Ember.get, n = Ember.computed.alias, p = Ember.getWithDefault, s.exports = App.ItunesItem = App.FndModel.extend({trackName: o("string"),trackViewUrl: o("string"),artworkUrl100: o("string"),releaseDate: o("string"),price: o("number"),artistName: o("string"),collectionName: o("string"),artistId: o("number"),mediaTypeId: o("string"),youtubeResults: DS.hasMany("youtubeResult", {async: !0,alwaysLoad: !0}),youtubeResultsUrl: function() {
return "" + a + "?q=" + URI.encodeQuery(this.get("searchName")) + "&alt=json&max-results=3"
}.property("searchName"),fallbackDisplayPrice: "View in",fallbackAvailability: "unavailable",unavailableName: "N/A",pageTitleFormat: " by %@",slugUrlFormat: " by %@",imageSuffix: "200x200-75",imageFileExtension: "jpg",itemTemplate: "_itunes_item",headerTemplate: "itunes_item/_header",badgeTemplate: function() {
var e;
return e = "svg/badges/" + this.get("templateName"), e in Ember.TEMPLATES || (e = "svg/badges/itunes_item"), e
}.property("typeKey"),templateWithDefault: function(e) {
var t;
return t = "" + this.get("templateName") + "/" + e, t in Ember.TEMPLATES || (t = "itunes_item/" + e), t
},metadata1Template: function() {
return this.templateWithDefault("_metadata1")
}.property("templateName"),metadata2Template: function() {
return this.templateWithDefault("_metadata2")
}.property("templateName"),metadata3Template: function() {
return this.templateWithDefault("_metadata3")
}.property("templateName"),mediaTypeTemplate: function() {
return this.templateWithDefault("_media_type")
}.property("templateName"),iiMetadataTemplate: function() {
return this.templateWithDefault("_ii_metadata")
}.property("templateName"),name: n("trackName"),url: n("trackViewUrl"),actionText: Ember.computed.defaultTo("displayPrice"),searchName: function() {
return "" + this.get("name") + " " + this.get("mediaType.name")
}.property("name", "mediaType.name"),pageTitle: function() {
return this.get("formattedPageTitle") ? "" + this.get("name") + this.get("formattedPageTitle") : this.get("name")
}.property("name", "formattedPageTitle"),formattedPageTitle: function() {
var e;
if (!Ember.isEmpty(this.get("artistName")))
return null != (e = this.get("pageTitleFormat")) ? e.fmt(this.get("artistName")) : void 0
}.property("artistName", "pageTitleFormat"),releaseDateMoment: function() {
return moment(this.get("releaseDate"))
}.property("releaseDate"),formattedReleaseDate: function() {
return this.get("releaseDateMoment").format("l")
}.property("releaseDateMoment"),fromReleaseDate: function() {
return this.get("releaseDateMoment").fromNow()
}.property("releaseDateMoment"),isFutureReleaseDate: function() {
return this.get("releaseDateMoment").toDate().getTime() > (new Date).getTime()
}.property("releaseDateMoment"),affiliateUrl: function() {
return this.get("url") + "&at=11l6hc&ct=fnd"
}.property("url"),displayPrice: function() {
var e;
if (e = this.get("price"), "string" === Ember.typeOf(e))
return e;
switch (!1) {
case 0 !== e:
return "Free";
case -1 !== e:
return this.get("unavailableName");
case !Ember.isEmpty(e):
return this.get("isFutureReleaseDate") ? "Pre-Order" : this.get("fallbackDisplayPrice");
default:
return "$" + this.get("price")
}
}.property("price", "isFutureReleaseDate", "fallbackDisplayPrice", "unavailableName"),availability: function() {
var e;
return e = this.get("price"), "number" === Ember.typeOf(e) || "string" === Ember.typeOf(e) ? -1 !== e ? "available" : "unavailable" : Ember.isEmpty(e) && this.get("isFutureReleaseDate") ? "pre_order" : this.get("fallbackAvailability")
}.property("price", "isFutureReleaseDate", "fallbackAvailability"),smallImageURL: function() {
var e;
return e = this.get("artworkUrl100"), Ember.isEmpty(e) ? void 0 : (e = e.replace(/\d{3}x\d{3}-\d{2}\./, ""), e = e.replace(/\.(jpg|jpeg|png|tif|tiff)$/, ""), "" + e + "." + this.get("imageSuffix") + "." + this.get("imageFileExtension"))
}.property("artworkUrl100", "imageSuffix", "imageFileExtension"),imageUrl: function() {
return i(this.get("smallImageURL"))
}.property("smallImageURL"),slug: function() {
var e, t, s, a;
return t = this.get("id"), this.get("slugUrlFormat") && !Ember.isEmpty(this.get("artistName")) ? (e = this.get("slugUrlFormat").fmt(this.get("artistName")), s = "" + this.get("name") + e) : s = this.get("name"), Ember.isEmpty(s) ? t : (a = parameterize("" + t + " " + s), a.slice(0, +r + 1 || 9e9))
}.property("id", "name", "slugUrlFormat"),fndUrlWithSlug: function() {
return "#/" + this.get("routePath") + "/" + this.get("slug")
}.property("slug", "routePath"),mediaType: function() {
return this.get("store").getById("mediaType", this.get("mediaTypeId"))
}.property("mediaTypeId"),lookupURL: function() {
return "https://itunes.apple.com/lookup?id=" + this.get("id")
}.property("id")}), App.ItunesItem.reopenClass({MODELS: ["Album", "Artist", "Audiobook", "Author", "Book", "Compilation", "IosUniversalApp", "IpadApp", "IphoneApp", "MacApp", "Movie", "MusicVideo", "Podcast", "PodcastEpisode", "Podcaster", "SoftwareDeveloper", "Song", "Studio", "TvEpisode", "TvSeason", "TvShow"]})
}), require.register("models/itunes_item_result", function(e, t, s) {
s.exports = App.ItunesItemResult = App.FndModel.extend({actualResult: DS.belongsTo("itunesItem", {polymorphic: !0})})
}), require.register("models/itunes_items/album", function(e, t, s) {
t("models/itunes_items/itunes_collection"), s.exports = App.Album = App.ItunesCollection.extend(App.HasMusicArtistMixin, App.ReviewMixin, App.GenreMixin, {trackCount: DS.attr("number"),mediaTypeId: "albums",formattedTrackCount: function() {
var e, t;
return t = this.get("trackCount"), e = 1 === t ? "song" : "songs", "" + t + " " + e
}.property("trackCount"),subtitle: Ember.computed.oneWay("formattedTrackCount"),searchName: function() {
var e;
return e = Ember.$.trim("" + this.get("name") + " " + this.get("artistName")), "" + e + " album"
}.property("name", "artistName")})
}), require.register("models/itunes_items/artist", function(e, t, s) {
var r;
r = "36270", s.exports = App.Artist = App.ItunesItem.extend(App.ArtistMixin, App.GenreMixin, {artistType: DS.attr("string"),mediaTypeId: "artists",imageUrl: function() {
return "Movie Artist" === this.get("artistType") ? "/images/placeholders/movie_studio.svg" : "Spoken Word" === this.get("primaryGenreName") ? "/images/placeholders/author.svg" : "/images/placeholders/artist.svg"
}.property("artistType", "primaryGenreName"),isVariousArtists: function() {
return this.get("id") === r
}.property("id")})
}), require.register("models/itunes_items/audiobook", function(e, t, s) {
s.exports = App.Audiobook = App.ItunesCollection.extend(App.HasAuthorMixin, {description: DS.attr("string"),previewUrl: DS.attr("string"),mediaTypeId: "audiobooks"})
}), require.register("models/itunes_items/author", function(e, t, s) {
s.exports = App.Author = App.ItunesItem.extend(App.ArtistMixin, {mediaTypeId: "authors",imageUrl: "/images/placeholders/author.svg",badgeTemplate: "svg/badges/book"})
}), require.register("models/itunes_items/book", function(e, t, s) {
s.exports = App.Book = App.ItunesItem.extend(App.RatingMixin, App.ReviewMixin, App.HasAuthorMixin, {description: DS.attr("string"),mediaTypeId: "books",fallbackDisplayPrice: "Pre-Order",fallbackAvailability: "pre_order"})
}), require.register("models/itunes_items/compilation", function(e, t, s) {
t("models/itunes_items/album"), s.exports = App.Compilation = App.Album.extend()
}), require.register("models/itunes_items/ios_app", function(e, t, s) {
var r;
r = DS.attr, s.exports = App.IosApp = App.ItunesItem.extend(App.AppMixin, App.RatingMixin, App.ReviewMixin, App.GenreMixin, {ipadScreenshotUrls: r("array"),badgeTemplate: "svg/badges/ios_app",iphoneScreenshots: Ember.computed.alias("screenshots"),ipadScreenshots: function() {
return App.Screenshot.createFromUrls(this.get("ipadScreenshotUrls"), this.get("typeKey"), !0)
}.property("ipadScreenshotUrls"),cssClass: function() {
return this._super() + " ios"
}.property()}), App.IosApp.reopenClass(App.AppClassMixin)
}), require.register("models/itunes_items/ios_universal_app", function(e, t, s) {
s.exports = App.IosUniversalApp = App.IosApp.extend({isIphone: !0,isIpad: !0,mediaTypeId: "ios"})
}), require.register("models/itunes_items/ipad_app", function(e, t, s) {
t("models/itunes_items/ios_app"), s.exports = App.IpadApp = App.IosApp.extend({mediaTypeId: "ipad",isIpad: !0})
}), require.register("models/itunes_items/iphone_app", function(e, t, s) {
t("models/itunes_items/ios_app"), s.exports = App.IphoneApp = App.IosApp.extend({mediaTypeId: "iphone",isIphone: !0,iphoneScreenshots: Ember.computed.alias("screenshots")})
}), require.register("models/itunes_items/itunes_collection", function(e, t, s) {
var r, a;
t("models/itunes_item"), a = DS.attr, r = Ember.computed.alias, s.exports = App.ItunesCollection = App.ItunesItem.extend({collectionPrice: a("number"),collectionViewUrl: a("string"),name: r("collectionName"),price: r("collectionPrice"),url: r("collectionViewUrl")})
}), require.register("models/itunes_items/mac_app", function(e, t, s) {
s.exports = App.MacApp = App.ItunesItem.extend(App.AppMixin, App.RatingMixin, App.ReviewMixin, App.GenreMixin, {mediaTypeId: "mac",isMac: !0,imageFileExtension: "png",macScreenshots: Ember.computed.alias("screenshots")}), App.MacApp.reopenClass(App.AppClassMixin)
}), require.register("models/itunes_items/movie", function(e, t, s) {
var r, a, n, i, o, h;
t("models/itunes_item"), h = Ember.computed.alias, o = "http://www.rottentomatoes.com/search/?search=%@", a = "http://api.rottentomatoes.com/api/public/v1.0/movies.json", i = "?q=%@&apikey=%@&page_limit=1", n = a + i, r = "b4g224kpffrhjkx5hrpzqpyn", s.exports = App.Movie = App.ItunesItem.extend(App.TrackMixin, App.ReviewMixin, App.DownloadMixin, App.GenreMixin, App.DurationMixin, {longDescription: DS.attr("string"),contentAdvisoryRating: DS.attr("string"),artistName: DS.attr("string"),studio: DS.belongsTo("studio"),mediaTypeId: "movies",studioName: Ember.computed.alias("artistName"),rottenTomatoesListings: DS.hasMany("rottenTomatoesListing", {async: !0,alwaysLoad: !0}),hasTrackNumbers: !1,downloadName: function() {
return parameterize(this.get("name"))
}.property("name"),fallbackDisplayPrice: "Buy",fallbackAvailability: "available",firstTomato: h("rottenTomatoesListings.firstObject"),rottenTomatoesUrl: h("firstTomato.url"),rottenTomatoesListingsUrl: function() {
var e;
return e = URI.encodeQuery(this.get("name"), !0), n.fmt(e, r)
}.property("name"),rottenTomatoesSearchUrl: function() {
return o.fmt(this.get("name"))
}.property("name"),tomatoClass: function() {
return this.get("firstTomato.cssClass") || "rotten-tomatoes-tomato"
}.property("firstTomato.cssClass"),hasRottenTomatoesScore: function() {
var e;
return e = this.get("firstTomato.criticsScore"), "number" === Ember.typeOf(e) && -1 !== e
}.property("firstTomato.criticsScore"),description: h("longDescription"),rating: function() {
var e;
return e = this.get("contentAdvisoryRating"), "NR" === e ? "Not Rated" : "Unrated" === e ? e : "Rated " + e
}.property("contentAdvisoryRating"),subtitle: h("rating")})
}), require.register("models/itunes_items/music_video", function(e, t, s) {
s.exports = App.MusicVideo = App.ItunesItem.extend(App.TrackMixin, App.HasMusicArtistMixin, App.ReviewMixin, App.DownloadMixin, App.DurationMixin, App.GenreMixin, App.BelongsToAlbumMixin, {mediaTypeId: "music-videos",subtitle: Ember.computed.alias("trackTimeFormatted"),downloadName: function() {
return "" + this.get("artistName") + " - " + this.get("name")
}.property("name", "artistName")})
}), require.register("models/itunes_items/podcast", function(e, t, s) {
s.exports = App.Podcast = App.ItunesItem.extend(App.GenreMixin, App.ReviewMixin, {feedUrl: DS.attr("string"),trackCount: DS.attr("number"),podcaster: DS.belongsTo("podcaster"),mediaTypeId: "podcasts",actionText: "Subscribe",availability: "available",podcasterName: Ember.computed.alias("artistName"),episodesText: function() {
var e, t;
return t = this.get("trackCount"), e = 1 === t ? "episode" : "episodes", "" + t + " " + e
}.property("trackCount"),subtitle: Ember.computed.alias("episodesText"),searchName: function() {
return Ember.$.trim("" + this.get("name") + " " + this.get("podcasterName"))
}.property("name", "podcasterName")})
}), require.register("models/itunes_items/podcast_episode", function(e, t, s) {
var r;
r = DS.attr, s.exports = App.PodcastEpisode = App.ItunesItem.extend({episodeGuid: r("string"),episodeUrl: r("string"),feedUrl: r("string"),artworkUrl600: r("string"),description: r("string"),podcast: DS.belongsTo("podcast"),mediaTypeId: "podcast-episodes",itemTemplate: "_podcast_episode_item",episodePageUrl: Ember.computed.alias("episodeGuid"),hasEpisodePageUrl: Ember.computed.match("episodePageUrl", /^https?/),artworkUrl100: Ember.computed.alias("artworkUrl600"),availability: "available"})
}), require.register("models/itunes_items/podcaster", function(e, t, s) {
s.exports = App.Podcaster = App.ItunesItem.extend(App.ArtistMixin, {mediaTypeId: "podcasters",imageUrl: "/images/placeholders/podcaster.svg"})
}), require.register("models/itunes_items/software_developer", function(e, t, s) {
s.exports = App.SoftwareDeveloper = App.ItunesItem.extend(App.ArtistMixin, {mediaTypeId: "software-developer",imageUrl: "/images/placeholders/developer.svg",badgeTemplate: "svg/badges/ios_app"})
}), require.register("models/itunes_items/song", function(e, t, s) {
s.exports = App.Song = App.ItunesItem.extend(App.TrackMixin, App.HasMusicArtistMixin, App.GenreMixin, App.DurationMixin, App.BelongsToAlbumMixin, {trackCensoredName: DS.attr("string"),subtitle: Ember.computed.alias("trackTimeFormatted"),searchName: function() {
var e;
return e = Ember.$.trim("" + this.get("name") + " " + this.get("artistName")), "" + e + " song"
}.property("name", "artistName"),name: function() {
var e, t;
return t = this.get("trackName"), e = this.get("trackCensoredName"), (null != e ? e.length : void 0) > (null != t ? t.length : void 0) ? e : t
}.property("trackName", "trackCensoredName")})
}), require.register("models/itunes_items/studio", function(e, t, s) {
s.exports = App.Studio = App.ItunesItem.extend(App.ArtistMixin, {mediaTypeId: "movie-studio",imageUrl: "/images/placeholders/movie_studio.svg"})
}), require.register("models/itunes_items/tv_episode", function(e, t, s) {
var r;
r = Ember.computed.alias, s.exports = App.TvEpisode = App.ItunesItem.extend(App.TrackMixin, App.GenreMixin, App.DurationMixin, {longDescription: DS.attr("string"),contentAdvisoryRating: DS.attr("string"),tvSeason: DS.belongsTo("tvSeason"),tvShow: DS.belongsTo("tvShow"),mediaTypeId: "episodes",pageTitleFormat: " of %@",slugUrlFormat: " of %@",unavailableName: "Season Only",tvSeasonName: r("collectionName"),tvShowName: r("artistName"),episodeText: function() {
return "Episode " + this.get("trackNumber")
}.property("trackNumber"),subtitle: r("episodeText"),searchName: function() {
var e;
return e = Ember.$.trim("" + this.get("name") + " " + this.get("tvShowName")), "" + e + " episode"
}.property("name", "tvShowName")})
}), require.register("models/itunes_items/tv_season", function(e, t, s) {
s.exports = App.TvSeason = App.ItunesCollection.extend(App.ReviewMixin, App.GenreMixin, {longDescription: DS.attr("string"),trackCount: DS.attr("number"),contentAdvisoryRating: DS.attr("string"),tvShow: DS.belongsTo("tvShow"),mediaTypeId: "seasons",tvShowName: Ember.computed.alias("artistName"),subtitleFormat: null,pageTitleFormat: " of %@",slugUrlFormat: " of %@",unavailableName: "Episodes Only",episodesText: function() {
var e, t;
return t = this.get("trackCount"), e = 1 === t ? "episode" : "episodes", "" + t + " " + e
}.property("trackCount"),subtitle: Ember.computed.alias("episodesText")})
}), require.register("models/itunes_items/tv_show", function(e, t, s) {
s.exports = App.TvShow = App.ItunesItem.extend(App.ArtistMixin, App.GenreMixin, {mediaTypeId: "shows",imageUrl: "/images/placeholders/tv_show.svg"})
}), require.register("models/media_type", function(e, t, s) {
var r, a, n;
r = DS.attr, n = DS.hasMany, a = DS.belongsTo, s.exports = App.MediaType = App.FndModel.extend({name: r("string"),shortName: r("string"),searchName: r("string"),itunesCategoryId: r("string"),rssId: r("string"),itunesItemTypes: r("array"),chartTypes: n("chartType"),isAll: Ember.computed.equal("id", "all"),hasChartTypes: Ember.computed.notEmpty("chartTypes.[]"),shortNameOrName: function() {
return this.get("shortName") || this.get("name")
}.property("name", "shortName"),pluralShortNameOrName: function() {
return this.get("pluralShortName") || this.get("pluralName")
}.property("pluralShortName", "pluralName"),searchNameOrShortName: function() {
return this.get("searchName") || this.get("shortNameOrName")
}.property("searchName", "shortNameOrName"),pluralSearchName: function() {
var e;
return (null != (e = this.get("searchName")) ? e.pluralize() : void 0) || this.get("pluralShortNameOrName")
}.property("searchName", "pluralShortNameOrName"),search: function() {
return this.get("store").getById("search", this.get("id"))
}.property("id"),primaryGenre: function() {
return this.get("store").getById("genre", this.get("itunesCategoryId"))
}.property("itunesCategoryId"),pluralName: function() {
return this.get("name").pluralize()
}.property("name"),pluralShortName: function() {
var e;
return null != (e = this.get("shortName")) ? e.pluralize() : void 0
}.property("shortName"),genres: Ember.computed.alias("primaryGenre.subGenres")}), App.MediaType.all = [{id: "all",name: "All media",shortName: "All"}, {id: "ios",name: "iPhone and iPad App",searchName: "Apps",itunesItemTypes: ["iphoneApp", "ipadApp", "iosUniversalApp"]}, {id: "iphone",name: "iPhone App",shortName: "iPhone",itunesCategoryId: "36",rssId: "applications",chartTypes: ["new", "new-free", "new-paid", "top-free", "top-grossing", "top-paid"],itunesItemTypes: ["iphoneApp"]}, {id: "ipad",name: "iPad App",shortName: "iPad",itunesCategoryId: "36",rssId: "ipadapplications",chartTypes: ["top-free", "top-grossing", "top-paid"],itunesItemTypes: ["ipadApp"]}, {id: "software-developer",name: "Software Developer",shortName: "Developer",itunesItemTypes: ["softwareDeveloper"]}, {id: "music",name: "Music",itunesCategoryId: "34",chartTypes: ["top-albums", "top-songs", "top-music-videos"],itunesItemTypes: ["artist", "album", "song", "musicVideo"]}, {id: "songs",name: "Song",itunesItemTypes: ["song"]}, {id: "artists",name: "Artist",itunesItemTypes: ["artist"]}, {id: "albums",name: "Album",itunesItemTypes: ["album", "itunesCollection"]}, {id: "music-videos",name: "Music Video",shortName: "Video",itunesItemTypes: ["musicVideo"]}, {id: "songs-and-music-videos",name: "Songs",itunesItemTypes: ["song", "musicVideo"]}, {id: "movies",name: "Movie",itunesCategoryId: "33",itunesItemTypes: ["movie"],chartTypes: ["top-movies"]}, {id: "movies-only",name: "Movie"}, {id: "movie-studio",name: "Movie Studio"}, {id: "movie-artist",name: "Movie Artist",shortName: "Artist"}, {id: "tv",name: "TV",itunesCategoryId: "32",chartTypes: ["top-tv-episodes", "top-tv-seasons"],itunesItemTypes: ["tvSeason", "tvShow", "tvEpisode"]}, {id: "seasons",name: "TV Season",shortName: "Season",itunesItemTypes: ["tvSeason"]}, {id: "episodes",name: "TV Episode",shortName: "Episode",itunesItemTypes: ["tvEpisode"]}, {id: "shows",name: "TV Show",shortName: "Show",itunesItemTypes: ["tvShow"]}, {id: "books",name: "Book",itunesCategoryId: "38",rssId: "ebooks",chartTypes: ["top-paid", "top-free", "top-audiobooks"],itunesItemTypes: ["book", "audiobook"]}, {id: "authors",name: "Author",itunesItemTypes: ["author"]}, {id: "ibooks",name: "Book",itunesItemTypes: ["book"]}, {id: "audiobooks",name: "Audiobook",itunesItemTypes: ["audiobook"]}, {id: "textbooks",name: "Textbook",itunesItemTypes: ["book"]}, {id: "mac",name: "Mac App",shortName: "Mac",itunesCategoryId: "39",rssId: "macapps",chartTypes: ["top", "top-free", "top-grossing", "top-paid"],itunesItemTypes: ["macApp"]}, {id: "apps",name: "App",itunesItemTypes: ["iphoneApp", "ipadApp", "macApp", "iosUniversalApp"]}, {id: "podcasting",name: "Podcast",itunesCategoryId: "26",rssId: "podcasts",chartTypes: ["top"],itunesItemTypes: ["podcaster", "podcast", "podcastEpisode"]}, {id: "podcasts",name: "Podcast",itunesItemTypes: ["podcast"]}, {id: "podcast-episodes",name: "Podcast Episode",shortName: "Episode",itunesItemTypes: ["podcastEpisode"]}, {id: "podcasters",name: "Podcaster",itunesItemTypes: ["podcaster"]}]
}), require.register("models/review", function(e, t, s) {
var r, a;
a = DS.attr, r = "%@ out of %@ customers found this review helpful.", s.exports = App.Review = App.FndModel.extend({title: a("string"),content: a("string"),rating: a("number"),version: a("string"),authorName: a("string"),authorUri: a("string"),voteSum: a("number"),voteCount: a("number"),voteText: function() {
return this.get("voteCount") ? r.fmt(this.get("voteSum"), this.get("voteCount")) : void 0
}.property("voteSum", "voteCount")})
}), require.register("models/rotten_tomatoes_listing", function(e, t, s) {
var r;
r = DS.attr, s.exports = App.RottenTomatoesListing = App.FndModel.extend({title: r("string"),url: r("string"),criticsRating: r("string"),criticsScore: r("number"),isRotten: function() {
return "Rotten" === this.get("criticsRating")
}.property("criticsRating"),isFresh: Ember.computed.not("isRotten"),cssClass: function() {
var e;
return e = ["rotten-tomatoes-tomato"], this.get("isFresh") && e.pushObject("rotten-tomatoes-tomato--fresh"), this.get("isRotten") && e.pushObject("rotten-tomatoes-tomato--rotten"), e.join(" ")
}.property("isRotten", "isFresh")})
}), require.register("models/screenshot", function(e, t, s) {
var r, a, n;
n = t("utils/apple_ssl_url"), a = {iphone: ["1136x1136", "640x640", "568x568", "480x480", "320x320"],ipad: ["2048x2048", "1024x1024", "960x960", "480x480"],mac: ["1600x1000", "1280x800", "800x500"]}, r = new RegExp("screen(" + _.flatten(_.values(a)).join("|") + ")"), s.exports = App.Screenshot = App.ImageSet.extend({generate: function(e) {
var t, s, i;
return e.match(r) ? (s = e.match(r)[1], i = this.get("isIpad") ? a.ipad : this.get("isMac") ? a.mac : a.iphone, t = i.map(function(t) {
return e = e.replace(r, "screen" + t), App.Image.create({url: n(e)})
})) : t = Ember.makeArray(App.Image.create({url: n(e)})), t
},title: function() {
var e;
return e = this.get("isIpad") ? "iPad" : this.get("isMac") ? "Mac" : "iPhone", "" + e + " Screenshot " + this.get("index")
}.property("index", "isIpad", "isMac"),isMac: function() {
return "macApp" === this.get("typeKey")
}.property("typeKey")}), App.Screenshot.createFromUrls = function(e, t, s) {
return null == s && (s = !1), e.map(function(e, r) {
return App.Screenshot.create({url: e,typeKey: t,index: r + 1,isIpad: s})
})
}
}), require.register("models/search/result_set", function(e, t, s) {
s.exports = App.ResultSet = Ember.ArrayProxy.extend(Ember.SortableMixin, {resultsBefore: 0,extraSet: !0,contentWithIndex: function() {
return this.get("content").map(function(e) {
return function(t, s) {
var r;
return r = e.get("resultsBefore") + s + 1, {item: t,position: r}
}
}(this))
}.property("content")})
}), require.register("models/search/search", function(e, t, s) {
var r, a, n, i, o;
a = DS.attr, o = Ember.computed, r = o.alias, n = o.equal, i = o.notEmpty, s.exports = App.Search = App.FndModel.extend({baseQuery: a("object"),placeholder: a("string"),multipleSearch: a("boolean", {"default": !1}),parentSearch: DS.belongsTo("search"),searches: DS.hasMany("search"),mediaType: function() {
return this.get("store").getById("mediaType", this.get("id"))
}.property("id"),hasSearches: i("searches.[]"),hasNoSearches: Ember.computed.not("hasSearches"),isAll: n("id", "all"),name: r("mediaType.name"),pluralName: r("mediaType.pluralName"),shortName: r("mediaType.shortName"),pluralShortName: r("mediaType.pluralShortName"),shortNameOrName: r("mediaType.shortNameOrName"),pluralShortNameOrName: r("mediaType.pluralShortNameOrName"),searchNameOrShortName: r("mediaType.searchNameOrShortName"),pluralSearchName: r("mediaType.pluralSearchName"),placeholderText: function() {
return "e.g. " + this.get("placeholder")
}.property("placeholder")})
}), require.register("models/search/searches", function() {
App.Search.all = [{id: "all",multipleSearch: !0,searches: ["ios", "music", "movies", "tv", "books", "mac", "podcasting"],placeholder: '"Yelp", "Avicii", or "Gravity"'}, {id: "ios",searches: ["iphone", "ipad", "software-developer"],baseQuery: {media: "software",entity: "software,iPadSoftware,softwareDeveloper"},placeholder: '"Angry Birds", "Paper", or "Acorn"'}, {id: "iphone",parentSearch: "ios",baseQuery: {media: "software",entity: "software"},placeholder: '"Angry Birds", "Drafts", or "Letterpress"'}, {id: "ipad",parentSearch: "ios",baseQuery: {media: "software",entity: "iPadSoftware"},placeholder: '"Paper", "The Room", or "Netflix"'}, {id: "software-developer",parentSearch: "ios",baseQuery: {entity: "softwareDeveloper",media: "software",attribute: "softwareDeveloper"},placeholder: '"Realmac", "Tap Tap Tap", or "AgileBits"'}, {id: "music",searches: ["songs", "albums", "artists", "music-videos"],baseQuery: {entity: "song,album,musicArtist,musicVideo"},placeholder: '"Avicii", "Daisy", or "Adventure Club"'}, {id: "songs",parentSearch: "music",baseQuery: {media: "music",entity: "song"},placeholder: '"Crave You", "Sandstorm", or "Daisy"'}, {id: "albums",parentSearch: "music",baseQuery: {media: "music",entity: "album"},placeholder: '"Daisy", "Melody AM", or "Kaleidoscope"'}, {id: "artists",parentSearch: "music",baseQuery: {media: "music",entity: "musicArtist"},placeholder: '"Adventure Club", "Brand New", or "Royksopp"'}, {id: "music-videos",parentSearch: "music",baseQuery: {media: "music",entity: "musicVideo"},placeholder: '"Sweet Nothing", "Royals", or "Feel So Close"'}, {id: "songs-and-music-videos",baseQuery: {media: "music",entity: "song,musicVideo"}}, {id: "movies",searches: ["movies-only", "movie-artist"],baseQuery: {media: "movie",entity: "movieArtist,movie"},placeholder: '"Lost in Translation", "Up", or "Edward Scissorhands"'}, {id: "movies-only",parentSearch: "movies",baseQuery: {media: "movie",entity: "movie"},placeholder: '"Lost in Translation", "Up", or "Edward Scissorhands"'}, {id: "movie-artist",parentSearch: "movies",baseQuery: {media: "movie",entity: "movieArtist"},placeholder: '"Morgan Freeman", "Bill Murray", or "Ryan Gosling"'}, {id: "tv",searches: ["shows", "seasons", "episodes"],baseQuery: {media: "tvShow",entity: "tvEpisode,tvSeason,tvShow"},placeholder: '"Game of Thrones", "LOST", or "Felina"'}, {id: "shows",parentSearch: "tv",baseQuery: {media: "tvShow",entity: "tvShow"},placeholder: '"Game of Thrones", "Firefly", or "Sex and the City"'}, {id: "episodes",parentSearch: "tv",baseQuery: {media: "tvShow",entity: "tvEpisode"},placeholder: '"Felina", "Out of Gas", or "Exodus from Genisis"'}, {id: "seasons",parentSearch: "tv",baseQuery: {media: "tvShow",entity: "tvSeason"},placeholder: '"LOST Season 2", "Farscape Season 1", or "Firefly"'}, {id: "books",searches: ["ibooks", "audiobooks", "authors"],baseQuery: {entity: "ebook,audiobook,bookAuthor"},placeholder: '"The Giver", "Hatchet", or "Dragonlance"'}, {id: "authors",parentSearch: "books",baseQuery: {media: "ebook",entity: "bookAuthor"},placeholder: '"Dr. Seuss", "George R. R. Martin", or "Suzanne Collins"'}, {id: "ibooks",parentSearch: "books",baseQuery: {media: "ebook"},placeholder: '"The Giver", "Hatchet", or "Dragonlance"'}, {id: "audiobooks",parentSearch: "books",baseQuery: {media: "ebook",entity: "audiobook"},placeholder: '"Holes", "Me Talk Pretty One Day", or "1984"'}, {id: "textbooks",parentSearch: "books",baseQuery: {media: "textbook"},placeholder: '"Math", "English", or "Computers"'}, {id: "mac",baseQuery: {media: "software",entity: "macSoftware"},placeholder: '"Acorn", "Alfred", or "Dash"'}, {id: "apps",baseQuery: {media: "software",entity: "software,iPadSoftware,macSoftware"}}, {id: "podcasting",searches: ["podcasts", "podcasters"],baseQuery: {media: "podcast",entity: "podcast,podcastAuthor"},placeholder: '"Back to Work", "5by5", or "This American Life"'}, {id: "podcasts",parentSearch: "podcasting",baseQuery: {media: "podcast",entity: "podcast"},placeholder: '"Back to Work", "This American Life", or "The Talk Show"'}, {id: "podcasters",parentSearch: "podcasting",baseQuery: {media: "podcast",entity: "podcastAuthor"},placeholder: '"5by5", "TWiT", or "Bongos"'}, {id: "podcast-episodes",parentSearch: "podcasting",baseQuery: {media: "podcast",entity: "podcastEpisode"}}]
}), require.register("models/youtube_result", function(e, t, s) {
var r;
r = DS.attr, s.exports = App.YoutubeResult = App.FndModel.extend({title: r("string"),link: r("string"),url: Ember.computed.alias("link"),published: r("date"),viewCount: r("number"),uri: function() {
var e;
return e = URI(this.get("url"))
}.property("url"),cleanUrl: function() {
return this.get("uri").removeQuery("feature").toString()
}.property("url"),shortUrl: function() {
return "https://youtu.be/" + this.get("videoId")
}.property("videoId"),videoId: function() {
return this.get("uri").query(!0).v
}.property("url"),embedUrl: function() {
return "https://www.youtube.com/embed/" + this.get("videoId") + "?html5=1"
}.property("videoId")})
}), require.register("routes/about", function(e, t, s) {
var r, a, n;
t("routes/fnd"), n = t("config/environment"), a = Ember.Object.extend({twitterUrl: function() {
return "https://twitter.com/" + this.get("twitterUsername")
}.property("twitterUsername"),photoUrl: function() {
return "/images/" + this.get("firstNameLowerCase") + ".jpg"
}.property("twitterUsername"),firstNameLowerCase: function() {
return this.get("firstName").toLowerCase()
}.property("firstName")}), r = [{firstName: "Jeremy",lastName: "Mack",twitterUsername: "mutewinter",jobTitle: "Developer"}, {firstName: "Ryann",lastName: "Pierce",twitterUsername: "ryannpierce",jobTitle: "Designer"}], s.exports = App.AboutRoute = App.FndRoute.extend({model: function() {
return r.map(function(e) {
return a.create(e)
})
},actions: {didTransition: function() {
return n.setTitle("About"), !0
}}})
}), require.register("routes/any", function(e, t, s) {
s.exports = App.AnyRoute = Ember.Route.extend({redirect: function(e) {
var t;
return t = e.id.split("-").get("firstObject"), this.get("store").find("itunesItemResult", t).then(function(e) {
return function(s) {
var r;
return r = s.get("actualResult"), r ? e.replaceWith(r.get("routeName"), r) : (App.Logger.error("Invalid ID for /any '" + t + "'"), e.replaceWith("home"))
}
}(this), function(e) {
return function() {
return App.Logger.error("Invalid ID for /any '" + t + "'"), e.replaceWith("home")
}
}(this))
}})
}), require.register("routes/application", function(e, t, s) {
var r;
r = t("config/environment"), s.exports = App.ApplicationRoute = Ember.Route.extend({model: function() {
var e;
return e = this.get("store"), [App.Search, App.ChartType, App.MediaType, App.Integration, App.Bookmarklet, App.Genre].invoke("loadAll", e), !0
},trackPageView: function() {
return Ember.run.scheduleOnce("afterRender", function() {
var e, t, s, r;
return "undefined" != typeof ga && null !== ga ? (e = Ember.get(window, "location.hash"), s = Ember.get(window, "location.pathname"), r = Ember.get(window, "location.search"), t = e ? e.substring(1) : s + r, ga("send", "pageview", {page: t,title: document.title})) : void 0
})
},actions: {didTransition: function() {
return r.get("analyticsEnabled") ? this.trackPageView() : void 0
},showMenu: function() {
return this.render("menu", {outlet: "menuModal",into: "application"})
},closeMenu: function() {
return this.disconnectOutlet({outlet: "menuModal",parentView: "application"})
},goHome: function() {
return this.transitionTo("home"), this.disconnectOutlet({outlet: "menuModal",parentView: "application"})
},goBack: function() {
return window.history.back()
},reloadPage: function() {
return window.location.reload()
},error: function(e, t, s) {
var r;
return r = "Routing error for " + s.routeName, "string" === Ember.typeOf(e) ? App.Logger.error("" + r + ": " + e) : (Ember.Logger.error(e.stack), App.Logger.error(r)), !0
}}})
}), require.register("routes/bookmarklet", function(e, t, s) {
var r;
r = t("config/environment"), s.exports = App.BookmarkletRoute = Ember.Route.extend({model: function(e) {
var t;
return t = this.get("store").getById("bookmarklet", e.bookmarklet_id), t || this.replaceWith("home"), t
},activate: function() {
var e;
return e = this.modelFor("bookmarklet"), r.setTitle(e.get("name"), {appName: !1})
}})
}), require.register("routes/chart", function(e, t, s) {
var r;
t("routes/fnd"), r = t("config/environment"), s.exports = App.ChartRoute = App.FndRoute.extend({model: function(e) {
var t, s, r, a, n, i, o, h, p, u, l, c;
return h = this.get("store"), o = null != (p = e.media_type_id) ? p.toLowerCase() : void 0, r = null != (u = e.chart_type_id) ? u.toLowerCase() : void 0, n = null != (l = e.genre_slug) ? l.toLowerCase() : void 0, i = h.getById("mediaType", o), s = null != (c = i.get("chartTypes")) ? c.findBy("id", r) : void 0, a = i.get("genres").findBy("slug", n), t = App.Chart.firstOrCreate(i, s, a), t.get("mediaType.id") !== o || t.get("chartType.id") !== r || t.get("genre.slug") !== n ? (App.Logger.dbg.debug("Chart URL Normalized: " + o + " " + r + " " + n), this.transitionTo("chart", t)) : t
},renderTemplate: function() {
return this._super.apply(this, arguments), this.render("charts/_edit", {controller: this.controllerFor("charts_edit"),outlet: "header",into: "chart"})
},setupController: function(e, t) {
return this._super.apply(this, arguments), this.controllerFor("charts_edit").set("chart", t)
},serialize: function(e) {
return {media_type_id: e.get("mediaType.id"),chart_type_id: e.get("chartType.id"),genre_slug: e.get("genre.slug")}
},actions: {didTransition: function() {
var e;
return e = this.modelFor("chart"), this.controllerFor("chart").fetchResults(), r.setTitle(e.get("title")), !0
}}})
}), require.register("routes/chart/edit", function(e, t, s) {
s.exports = App.ChartEditRoute = App.FndRoute.extend({renderTemplate: function() {
return this.render("chart.edit", {into: "chart"})
}})
}), require.register("routes/chart/index", function(e, t, s) {
s.exports = App.ChartIndexRoute = App.FndRoute.extend({model: function() {
return this.modelFor("chart")
}})
}), require.register("routes/charts", function(e, t, s) {
t("routes/fnd"), s.exports = App.ChartsRoute = App.FndRoute.extend({redirect: function() {
return this.transitionTo("chart", this.controllerFor("charts_edit").get("chart"))
}})
}), require.register("routes/charts/index", function(e, t, s) {
s.exports = App.ChartsIndexRoute = App.FndRoute.extend({redirect: function() {
return this.replaceWith("chart", this.controllerFor("charts_edit").get("chart"))
}})
}), require.register("routes/fnd", function(e, t, s) {
s.exports = App.FndRoute = Ember.Route.extend({searchScrollY: 0,scrollOnLoad: !0,activate: function() {
var e;
if (this.get("scrollOnLoad"))
return e = this.get("searchScrollY"), Ember.run.scheduleOnce("afterRender", function() {
return Ember.$(document).scrollTop(0), Ember.$(document).scrollTop(e)
})
},deactivate: function() {
return this.set("searchScrollY", Ember.$(document).scrollTop())
}})
}), require.register("routes/home", function(e, t, s) {
var r;
t("routes/fnd"), r = t("utils/normalize_term"), s.exports = App.HomeRoute = App.FndRoute.extend({shouldShowHeader: !1,model: function() {
return this.get("store").getById("search", "all")
},activate: function() {
var e;
return null != (e = this.controller) && e.set("searchTerm", ""), this.get("env").setDefaultTitle()
},actions: {search: function(e) {
return Ember.isEmpty(r(e)) ? void 0 : this.transitionTo("search", {queryParams: {term: e,mediaType: "all"}})
}}})
}), require.register("routes/integration", function(e, t, s) {
s.exports = App.IntegrationRoute = Ember.Route.extend({renderTemplate: function(e, t) {
return this.render(t.get("templateName"))
},activate: function() {
var e;
return e = this.modelFor("integration"), this.get("env").setTitle("" + e.get("title") + " Integration")
}})
}), require.register("routes/integrations", function(e, t, s) {
s.exports = App.IntegrationsRoute = App.FndRoute.extend({model: function() {
return this.get("store").all("integration")
},activate: function() {
return this.get("env").setTitle("Integrations")
}})
}), require.register("routes/itunes_item", function(e, t, s) {
var r;
t("routes/fnd"), t("models/itunes_item"), r = 50, s.exports = App.ItunesItemRoute = App.FndRoute.extend({model: function(e, t) {
var s, r, a, n;
return s = t.targetName.split(".")[0].classify(), r = App[s].dynamicSegmentName(), a = e[r].split("-")[0], e[r] = a, n = this._super(e, t), new Ember.RSVP.Promise(function(t, s) {
return n.then(function(r) {
var i;
return "no_result" === r.get("id") ? s("No item found for ID " + a) : (i = e[n.get("dynamicSegmentName")], i !== n.get("slug") && (e[n.get("dynamicSegmentName")] = n.get("slug")), t(r))
}, function(e) {
return s(e)
})
})
},serialize: function(e) {
var t;
return t = {}, t[e.get("dynamicSegmentName")] = e.get("slug"), t
},renderTemplate: function() {
return this.render("itunes_item/page", {controller: this.controllerFor("itunesItem")})
},setupController: function(e, t) {
return this.controllerFor("itunesItem").set("content", t), this.controllerFor("itunesItem").loadMoreIfLast(), this._super.apply(this, arguments)
}}), App.ItunesItemIndexRoute = App.FndRoute.extend({model: function(e, t) {
var s;
return s = t.targetName.split(".")[0], this.modelFor(s)
},activate: function() {
return this.set("searchScrollY", 0), this._super()
},renderTemplate: function(e) {
var t, s;
return this.render("itunes_item/_subnav", {controller: this.controllerFor("itunesItem"),into: "application",outlet: "header"}), s = "itunes_item/_header", t = "" + this.get("controller.model.templateName") + "/header", t in Ember.TEMPLATES && (s = t), this.render(e.get("headerTemplate"), {controller: this.controllerFor("itunesItem"),into: "itunes_item/page",outlet: "header"}), this.renderBody(this.controllerFor("itunesItem"))
},renderBody: function() {
var e, t;
return t = "itunes_item/body", e = this.get("controller.model.templateName"), e in Ember.TEMPLATES && (t = e), this.render(t, {controller: this.controllerFor("itunesItem"),into: "itunes_item/page",outlet: "body"})
},actions: {showReviews: function() {
var e;
return e = this.controllerFor("itunesItem"), e.set("isShowingReviews", !0), this.render("itunes_item/_reviews", {controller: e,into: "itunes_item/page",outlet: "body"})
},showDetails: function() {
var e;
return e = this.controllerFor("itunesItem"), e.set("isShowingReviews", !1), this.renderBody()
},didTransition: function() {
var e;
return e = this.controllerFor("itunes_item").get("content"), this.get("env").setTitle(e.get("pageTitle")), !0
}}}), App.ItunesItem.MODELS.forEach(function(e) {
return App["" + e + "Route"] = App.ItunesItemRoute, App["" + e + "IndexRoute"] = App.ItunesItemIndexRoute
})
}), require.register("routes/itunes_item/association", function(e, t, s) {
s.exports = App.ItunesItemAssociationRoute = App.FndRoute.extend({model: function(e, t) {
var s, r, a, n;
return n = t.targetName.split(".")[0], s = e.media_type_id, r = this.get("store").getById("mediaType", s), a = this.modelFor(n), r || null == a || (App.Logger.error("Invalid media type or parent for association '" + s + "'"), this.replaceWith(a.get("routeName"), a)), Ember.Object.create({parent: this.modelFor(n),mediaType: r})
},renderTemplate: function() {
return this.render("itunes_item/association", {controller: this.controllerFor("itunes_item_association"),into: "itunes_item/page",outlet: "body"})
},setupController: function(e, t) {
return this.controllerFor("itunes_item_association").set("content", t), this.controllerFor("itunes_item_association").loadInitalResults()
},actions: {didTransition: function() {
var e, t, s, r;
return e = this.controllerFor("itunes_item.association"), s = e.get("parent"), t = e.get("mediaType"), r = "" + t.get("pluralName") + " by " + s.get("name"), this.get("env").setTitle(r), !0
}}}), App.ItunesItem.MODELS.forEach(function(e) {
return App["" + e + "AssociationRoute"] = App.ItunesItemAssociationRoute
})
}), require.register("routes/missing", function(e, t, s) {
s.exports = App.MissingRoute = App.FndRoute.extend({afterModel: function(e) {
return App.Logger.error("Missing route " + (null != e ? e.missing : void 0))
},setupController: function(e) {
return e.set("url", window.location.href)
}})
}), require.register("routes/screenshots", function(e, t, s) {
s.exports = App.ItunesItemScreenshotsRoute = App.FndRoute.extend({scrollOnLoad: !1,model: function(e) {
return Ember.Object.create({type: e.type,number: parseInt(e.screenshot_number, 10)})
},renderTemplate: function() {
return this.render("itunes_item/screenshots_overlay", {into: "application",outlet: "modal",controller: this.controllerFor("itunesItemScreenshots")})
},setupController: function(e, t) {
return this.controllerFor("itunesItemScreenshots").set("content", t)
}}), App.ItunesItem.MODELS.forEach(function(e) {
var t;
return t = App[e], (null != t ? t.hasScreenshots : void 0) ? App["" + e + "ScreenshotsRoute"] = App.ItunesItemScreenshotsRoute : void 0
})
}), require.register("routes/search", function(e, t, s) {
var r, a, n, i, o;
a = "(?:id(\\d+)|i=(\\d+))", r = new RegExp(a, "gi"), n = t("config/environment"), i = t("utils/normalize_term"), o = function(e, t) {
return Ember.isEmpty(e) ? n.setTitle(t.get("pluralName")) : t.get("isAll") ? n.setTitle(e, {quoted: !0}) : n.setTitle('"' + e + '" in ' + t.get("pluralName"))
}, s.exports = App.SearchRoute = App.FndRoute.extend({shouldShowHeader: !1,transitionToId: function(e) {
var t, s, r;
for (r = new RegExp(a, "gi"); s = r.exec(e); )
t = s[1] || s[2];
return new Ember.RSVP.Promise(function(e) {
return function(s, r) {
return e.get("store").find("itunesItemResult", t).then(function(t) {
var s;
return s = t.get("actualResult"), s ? e.replaceWith(s.get("routeName"), s) : r("Invalid ID")
}, r("Invalid ID"))
}
}(this))
},model: function(e) {
return new Ember.RSVP.Promise(function(t) {
return function(s) {
var a, n, i, o;
return a = e.mediaType, i = null != a ? a.toLowerCase() : void 0, i !== a ? t.transitionTo("search", {queryParams: {mediaType: i,term: e.term}}) : (n = t.get("store").getById("search", a)) ? (o = e.term, r.test(o) ? t.transitionToId(o).then(Ember.K, function() {
return s(n)
}) : s(n)) : (App.Logger.error("Invalid media type " + a), t.transitionTo("search", {queryParams: {mediaType: "all",term: e.term}}))
}
}(this))
},renderTemplate: function(e, t) {
return this._super.apply(this, arguments), this.render("search/_header", {outlet: "header",into: "application",controller: this.controllerFor("search")}), t.get("multipleSearch") ? this.render("results/many", {outlet: "results",into: "search",controller: this.controllerFor("search_multiple")}) : this.render("results/single", {outlet: "results",into: "search",controller: e})
},actions: {search: function(e) {
return e = i(e), Ember.isEmpty(e) ? void 0 : this.transitionTo("search", {queryParams: {term: e}})
},didTransition: function() {
var e;
return e = this.modelFor("search"), e.get("multipleSearch") ? this.controllerFor("search_multiple").runSearch() : this.controllerFor("search").runSearch(), o(this.controllerFor("search").get("searchTerm"), e), !0
},queryParamsDidChange: function() {
return this.router.router.refresh(this).method("updateURL")
}}})
}), require.register("serializers/chart_result", function(e, t, s) {
var r;
r = 0, s.exports = App.ChartResultSerializer = DS.RESTSerializer.extend({extractArray: function(e, t, s, a, n) {
var i, o, h;
return h = {}, i = Ember.makeArray(s.feed.entry), o = i.mapProperty("id.attributes.im:id"), h.chartResults = [{id: "chart-results-" + (r += 1),results: o}], this._super(e, t, h, a, n)
},extractMeta: function(e, t, s) {
var r;
return r = Ember.get(s, "feed.entry.length"), null == r && (r = 0), e.metaForType(t, {resultCount: r})
}})
}), require.register("serializers/itunes_item", function(e, t, s) {
var r, a;
a = t("utils/itunes"), r = {album: "collectionId",artist: "artistId",_artist: "artistId",author: "artistId",softwareDeveloper: "artistId",tvShow: "artistId",podcaster: "artistId",tvSeason: "collectionId",studio: "artistId"}, s.exports = App.ItunesItemSerializer = DS.RESTSerializer.extend({normalize: function(e, t, s) {
return t.links = {}, e.eachRelationship(function(e, s) {
return s.options.alwaysLoad ? t.links[e] = !0 : void 0
}), this._super(e, t, s)
},keyForRelationship: function(e) {
return r[e] ? r[e] : e
},createItunesItemResult: function(e, t) {
return {id: e.id,actualResult: e.id,actualResultType: t}
},extractSingle: function(e, t, s, r, n) {
var i, o, h;
return (o = s.results[0]) ? (o.id = a.extractId(o), t === App.ItunesItemResult ? (h = a.typeForResult(o), i = {}, i.itunesItemResult = this.createItunesItemResult(o, h), i[h.pluralize()] = [o]) : (i = {}, i[t.typeKey] = o), this._super(e, t, i, r, n)) : {id: "no_result"}
},extractArray: function(e, t, s, r, n) {
var i, o;
return i = [], o = s.results.reduce(function(e) {
return function(s, r) {
var n, o;
return r.id = a.extractId(r), i.contains(r.id) ? s : (i.pushObject(r.id), o = a.typeForResult(r), null == o ? s : (t === App.ItunesItemResult && (n = e.createItunesItemResult(r, o), s.itunesItemResult.pushObject(n)), o in s || (s[o] = []), s[o].pushObject(r), s))
}
}(this), {itunesItemResult: []}), t.typeKey in o || (o[t.typeKey] = []), this._super(e, t, o, r, n)
},extractMeta: function(e, t, s) {
return s && s.resultCount ? (e.metaForType(t, {resultCount: s.resultCount}), delete s.resultCount) : void 0
}})
}), require.register("serializers/review", function(e, t, s) {
s.exports = App.ReviewSerializer = DS.RESTSerializer.extend({extractArray: function(e, t, s, r, a) {
var n, i;
return n = {reviews: []}, Ember.get(s, "feed.entry") && (i = s.feed.entry.slice(1, +s.feed.entry.length + 1 || 9e9), n = {reviews: i.map(function(e) {
var t;
return e.id = e.id.label, e.title = e.title.label, e.content = e.content.label, e.rating = e["im:rating"].label, e.version = null != (t = e["im:version"]) ? t.label : void 0, e.authorName = e.author.name.label, e.authorUri = e.author.uri.label, e.voteSum = e["im:voteSum"].label, e.voteCount = e["im:voteCount"].label, e
})}), this._super(e, t, n, r, a)
}})
}), require.register("serializers/rotten_tomatoes_listing", function(e, t, s) {
s.exports = App.RottenTomatoesListingSerializer = DS.RESTSerializer.extend({extractArray: function(e, t, s, r, a) {
var n, i;
return i = Ember.get(s, "movies"), n = {rottenTomatoesListings: []}, Ember.isEmpty(i) || (n.rottenTomatoesListings = i.map(function(e) {
return e.criticsRating = e.ratings.critics_rating, e.criticsScore = e.ratings.critics_score, e.url = e.links.alternate, e
})), this._super(e, t, n, r, a)
}})
}), require.register("serializers/youtube_result", function(e, t, s) {
s.exports = App.YoutubeResultSerializer = DS.RESTSerializer.extend({extractArray: function(e, t, s, r, a) {
var n, i;
return i = Ember.get(s, "feed.entry"), n = {youtubeResults: []}, Ember.isEmpty(i) || (n.youtubeResults = i.map(function(e) {
return {id: e.id.$t,title: e.title.$t,link: e.link[0].href,published: e.published.$t}
})), this._super(e, t, n, r, a)
}})
}), require.register("templates/_help", function(e, t, s) {
s.exports = Ember.TEMPLATES._help = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<p class="l-sp-above--lg">\n '), a.buffer.push(p((n = s["link-to"] || t && t["link-to"], i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t, t],types: ["STRING", "STRING"],data: a}, n ? n.call(t, "We've", "about", i) : h.call(t, "link-to", "We've", "about", i)))), a.buffer.push(' been notified.\n <span class="l-ds-ib">\n <a href="https://twitter.com/intent/tweet?text=@tryfnd+I+was+just+...+and+then+..."\n target="_blank">\n Tweet @tryfnd\n </a>\n if you need help.\n </span>\n</p>\n'), o
})
}), require.register("templates/_itunes_item", function(e, t, s) {
s.exports = Ember.TEMPLATES._itunes_item = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = this.escapeExpression, p = s.helperMissing;
return a.buffer.push('<a href="'), a.buffer.push(h(s.unbound.call(t, "fndUrlWithSlug", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}))), a.buffer.push('" class="pull-left">\n <img class="media-object ii-icon ii-icon--small '), a.buffer.push(h(s.unbound.call(t, "cssClass", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}))), a.buffer.push('"\n src="'), a.buffer.push(h(s.unbound.call(t, "imageUrl", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}))), a.buffer.push('"\n alt="'), a.buffer.push(h(s.unbound.call(t, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}))), a.buffer.push('" />\n</a>\n<div class="media-body cr-pointer">\n <div class="row">\n <div class="media-heading ii-media-heading col-xs-8 col-sm-10">\n <a href="'), a.buffer.push(h(s.unbound.call(t, "fndUrlWithSlug", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}))), a.buffer.push('">\n '), a.buffer.push(h((n = s["ii-name"] || t && t["ii-name"], i = {hash: {title: "name",subtitle: "subtitle","class": "ii-name"},hashTypes: {title: "ID",subtitle: "ID","class": "STRING"},hashContexts: {title: t,subtitle: t,"class": t},contexts: [],types: [],data: a}, n ? n.call(t, i) : p.call(t, "ii-name", i)))), a.buffer.push("\n </a>\n <div "), a.buffer.push(h(s.action.call(t, "goToItem", "", {hash: {on: "click"},hashTypes: {on: "STRING"},hashContexts: {on: t},contexts: [t, t],types: ["ID", "ID"],data: a}))), a.buffer.push(' class="text-muted ii-iimetadata">\n '), a.buffer.push(h((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}, n ? n.call(t, "iiMetadataTemplate", i) : p.call(t, "partial", "iiMetadataTemplate", i)))), a.buffer.push('\n </div>\n </div>\n <div class="col-xs-4 col-sm-2 ii-action-wrapper ii-action-wrapper--center">\n <div class="ii-action ii-action--center">\n '), a.buffer.push(h((n = s["itunes-button"] || t && t["itunes-button"], i = {hash: {url: "affiliateUrl",text: "actionText",badgeTemplate: "badgeTemplate",availability: "availability"},hashTypes: {url: "ID",text: "ID",badgeTemplate: "ID",availability: "ID"},hashContexts: {url: t,text: t,badgeTemplate: t,availability: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : p.call(t, "itunes-button", i)))), a.buffer.push("\n </div>\n </div>\n </div>\n</div>\n"), o
})
}), require.register("templates/_podcast_episode_item", function(e, t, s) {
s.exports = Ember.TEMPLATES._podcast_episode_item = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r = "";
return t.buffer.push("\n <a "), t.buffer.push(u(s["bind-attr"].call(e, {hash: {href: "episodePageUrl"},hashTypes: {href: "STRING"},hashContexts: {href: e},contexts: [],types: [],data: t}))), t.buffer.push('\n class="btn-podcast-site btn btn-default l-sp-left"\n target="_blank">\n Episode Site <i class="fa fa-external-link"></i>\n </a>\n '), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = this.escapeExpression, l = s.helperMissing, c = this;
return a.buffer.push('<div class="media-body l-sp-below">\n <div class="row">\n <div class="col-xs-12">\n <h2 class="media-heading">\n '), a.buffer.push(u((o = s["ii-name"] || t && t["ii-name"], h = {hash: {title: "name",subtitle: "subtitle","class": "ii-name",allowFullName: !0},hashTypes: {title: "ID",subtitle: "ID","class": "STRING",allowFullName: "BOOLEAN"},hashContexts: {title: t,subtitle: t,"class": t,allowFullName: t},contexts: [],types: [],data: a}, o ? o.call(t, h) : l.call(t, "ii-name", h)))), a.buffer.push('\n </h2>\n <span class="text-muted">\n Released '), i = s._triageMustache.call(t, "fromReleaseDate", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push(" ("), i = s._triageMustache.call(t, "formattedReleaseDate", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push(')\n </span>\n </div>\n </div>\n <div class="row">\n <div class="col-xs-12">\n <div class="row">\n <div class="col-sm-6">\n <audio '), a.buffer.push(u(s["bind-attr"].call(t, {hash: {src: "episodeUrl"},hashTypes: {src: "ID"},hashContexts: {src: t},contexts: [],types: [],data: a}))), a.buffer.push(' preload="none" controls="controls"></audio>\n </div>\n <div class="col-sm-6 podcast-buttons">\n '), a.buffer.push(u((o = s["itunes-button"] || t && t["itunes-button"], h = {hash: {url: "affiliateUrl",text: "actionText",availability: "availability",badgeTemplate: "badgeTemplate","class": "ii-action--compact"},hashTypes: {url: "ID",text: "ID",availability: "ID",badgeTemplate: "ID","class": "STRING"},hashContexts: {url: t,text: t,availability: t,badgeTemplate: t,"class": t},contexts: [],types: [],data: a}, o ? o.call(t, h) : l.call(t, "itunes-button", h)))), a.buffer.push("\n "), i = s["if"].call(t, "hasEpisodePageUrl", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push('\n </div>\n </div>\n </div>\n <div class="col-xs-12">\n '), a.buffer.push(u((o = s["itunes-description"] || t && t["itunes-description"], h = {hash: {description: "description",noHeader: !0,noDivider: !0},hashTypes: {description: "ID",noHeader: "BOOLEAN",noDivider: "BOOLEAN"},hashContexts: {description: t,noHeader: t,noDivider: t},contexts: [],types: [],data: a}, o ? o.call(t, h) : l.call(t, "itunes-description", h)))), a.buffer.push("\n </div>\n </div>\n</div>\n"), p
})
}), require.register("templates/about", function(e, t, s) {
s.exports = Ember.TEMPLATES.about = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push('\n <div class="media">\n <a class="pull-left" href="'), t.buffer.push(p(s.unbound.call(e, "twitterUrl", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('" target="_blank">\n <img class="media-object about-person-image"\n src="'), t.buffer.push(p(s.unbound.call(e, "photoUrl", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('"\n alt="'), t.buffer.push(p(s.unbound.call(e, "firstName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('">\n </a>\n <div class="media-body">\n <h3 class="media-heading">\n '), r = s._triageMustache.call(e, "firstName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push(" "), r = s._triageMustache.call(e, "lastName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('\n <span class="text-muted">'), r = s._triageMustache.call(e, "jobTitle", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('</span>\n </h3>\n <h4>\n <a href="'), t.buffer.push(p(s.unbound.call(e, "twitterUrl", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('" target="_blank">\n @'), r = s._triageMustache.call(e, "twitterUsername", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </a>\n </h4>\n </div>\n </div>\n "), a
}
function i(e, t) {
var r, a = "";
return t.buffer.push('\n <li>\n <div class="about-technology">\n <a href="'), t.buffer.push(p(s.unbound.call(e, "url", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('" target="_blank">\n <img src="'), t.buffer.push(p(s.unbound.call(e, "logoUrl", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('" alt="'), t.buffer.push(p(s.unbound.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('">\n </a>\n <div class="text-center about-technology-name">\n <a href="'), t.buffer.push(p(s.unbound.call(e, "url", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('" target="_blank">'), r = s._triageMustache.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("</a>\n </div>\n </div>\n </li>\n "), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var o, h = "", p = this.escapeExpression, u = this;
return a.buffer.push('<div class="pagebody">\n <h1 class="page-title">About</h1>\n\n <div class="about-row">\n <h2>The Creators</h2>\n\n '), o = s.each.call(t, {hash: {},hashTypes: {},hashContexts: {},inverse: u.noop,fn: u.program(1, n, a),contexts: [],types: [],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push('\n </div>\n\n <div class="about-row">\n <h2>Technologies</h2>\n <ul class="about-technologies list-inline l-sp-below">\n '), o = s.each.call(t, "technologies", {hash: {},hashTypes: {},hashContexts: {},inverse: u.noop,fn: u.program(3, i, a),contexts: [t],types: ["ID"],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push('\n </ul>\n </div>\n\n <div class="about-row">\n <h2>\n Contact\n </h2>\n Tweet\n <a href="https://twitter.com/tryfnd" target="_blank" title="twitter">\n @tryfnd</a>\n or fill out the\n <a href="https://getthatfeedback.wufoo.com/forms/z1wzmslb0y0nalt"\n target="_blank">\n contact form</a>\n to get in touch.\n </div>\n\n <div class="about-row">\n <h2>Miscellaneous</h2>\n <p>\n fnd makes use of the\n <a href="https://www.apple.com/itunes/affiliates/" target="_blank">\n iTunes Affiliate Program</a>.\n </p>\n <p>\n iTunes, App Store, iPhone, iPad, iBooks, and Mac are trademarks of Apple\n Inc. Apple and the Apple logo are trademarks of Apple Inc., registered in\n the U.S. and other countries. App Store is a service mark of Apple Inc.\n </p>\n </div>\n\n <div class="about-row">\n <h2>Attribution</h2>\n <p>Tomato designed by Okan Benn from the Noun Project.</p>\n </div>\n\n <div class="about-row">\n <h2>Privacy</h2>\n <p>\n See our\n <a href="https://www.iubenda.com/privacy-policy/149581"\n class="iubenda-white iubenda-embed"\n title="Privacy Policy"\n target="_blank">\n Privacy Policy</a>.\n </p>\n </div>\n</div>\n'), h
})
}), require.register("templates/album", function(e, t, s) {
s.exports = Ember.TEMPLATES.album = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "songs-and-music-videos",parent: "model",initialResults: 100,showTrackNumbers: !0},hashTypes: {mediaTypeId: "STRING",parent: "ID",initialResults: "INTEGER",showTrackNumbers: "BOOLEAN"},hashContexts: {mediaTypeId: t,parent: t,initialResults: t,showTrackNumbers: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_youtube_results", i) : h.call(t, "partial", "itunes_item/_youtube_results", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/album/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["album/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push("<div>\n Album by "), n = s._triageMustache.call(t, "artistName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n<div>\n "), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("templates/album/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["album/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o, h = "", p = s.helperMissing, u = this.escapeExpression;
return a.buffer.push('<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" by\n "), a.buffer.push(u((i = s["ii-creator"] || t && t["ii-creator"], o = {hash: {creatorKey: "artist",parent: "model"},hashTypes: {creatorKey: "STRING",parent: "ID"},hashContexts: {creatorKey: t,parent: t},contexts: [],types: [],data: a}, i ? i.call(t, o) : p.call(t, "ii-creator", o)))), a.buffer.push('\n</div>\n<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), h
})
}), require.register("templates/app", function(e, t, s) {
s.exports = Ember.TEMPLATES.app = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<hr class="page-divider">\n\n<div class="row">\n <div class="col-xs-12">\n '), a.buffer.push(p((n = s["app-screenshots"] || t && t["app-screenshots"], i = {hash: {iphoneScreenshots: "iphoneScreenshots",ipadScreenshots: "ipadScreenshots",macScreenshots: "macScreenshots",search: "search",model: "content"},hashTypes: {iphoneScreenshots: "ID",ipadScreenshots: "ID",macScreenshots: "ID",search: "ID",model: "ID"},hashContexts: {iphoneScreenshots: t,ipadScreenshots: t,macScreenshots: t,search: t,model: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "app-screenshots", i)))), a.buffer.push("\n </div>\n</div>\n\n"), a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_youtube_results", i) : h.call(t, "partial", "itunes_item/_youtube_results", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s["itunes-description"] || t && t["itunes-description"], i = {hash: {description: "description"},hashTypes: {description: "ID"},hashContexts: {description: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "itunes-description", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/app/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["app/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n, i = "";
return t.buffer.push("\n <div>\n "), r = s._triageMustache.call(e, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), t.buffer.push(l((a = s["device-icons"] || e && e["device-icons"], n = {hash: {isIphone: "isIphone",isIpad: "isIpad",isMac: "isMac"},hashTypes: {isIphone: "ID",isIpad: "ID",isMac: "ID"},hashContexts: {isIphone: e,isIpad: e,isMac: e},contexts: [],types: [],data: t}, a ? a.call(e, n) : u.call(e, "device-icons", n)))), t.buffer.push("\n </div>\n\n <div>\n "), t.buffer.push(l((a = s["star-rating"] || e && e["star-rating"], n = {hash: {value: "rating",ratings: "ratingCount",variation: "sm"},hashTypes: {value: "ID",ratings: "ID",variation: "STRING"},hashContexts: {value: e,ratings: e,variation: e},contexts: [],types: [],data: t}, a ? a.call(e, n) : u.call(e, "star-rating", n)))), t.buffer.push("\n </div>\n"), i
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = s.helperMissing, l = this.escapeExpression, c = this, d = "function", m = s.blockHelperMissing;
return h = {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [],types: [],data: a}, (o = s.group) ? i = o.call(t, h) : (o = t && t.group, i = typeof o === d ? o.call(t, h) : o), s.group || (i = m.call(t, "group", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [],types: [],data: a})), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n"), p
})
}), require.register("templates/app/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["app/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push("\n <a "), t.buffer.push(u(s["bind-attr"].call(e, {hash: {href: "sellerUrl"},hashTypes: {href: "ID"},hashContexts: {href: e},contexts: [],types: [],data: t}))), t.buffer.push(' class="ii-developerlink" target="_blank"\n rel="nofollow">\n App Website\n <i class="fa fa-external-link"></i>\n <div>\n <span class="text-muted">'), r = s._triageMustache.call(e, "sellerDomain", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("</span>\n </div>\n </a>\n"), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = this.escapeExpression, l = s.helperMissing, c = this;
return a.buffer.push('<div class="ii-metadata1-row">\n '), i = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push(" by\n "), a.buffer.push(u((o = s["ii-creator"] || t && t["ii-creator"], h = {hash: {creatorKey: "softwareDeveloper",parent: "model"},hashTypes: {creatorKey: "STRING",parent: "ID"},hashContexts: {creatorKey: t,parent: t},contexts: [],types: [],data: a}, o ? o.call(t, h) : l.call(t, "ii-creator", h)))), a.buffer.push('\n</div>\n\n<div class="ii-metadata1-row">\n '), i = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n</div>\n\n"), i = s["if"].call(t, "hasSellerUrl", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n"), p
})
}), require.register("templates/app/_metadata2", function(e, t, s) {
s.exports = Ember.TEMPLATES["app/_metadata2"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push('<div class="row">\n <div class="col-xs-12">\n <div>\n Version '), n = s._triageMustache.call(t, "version", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n </div>\n <span>\n First released "), n = s._triageMustache.call(t, "fromReleaseDate", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" ("), n = s._triageMustache.call(t, "formattedReleaseDate", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(")\n </span>\n </div>\n</div>\n"), i
})
}), require.register("templates/app/_metadata3", function(e, t, s) {
s.exports = Ember.TEMPLATES["app/_metadata3"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s["star-rating"] || t && t["star-rating"], i = {hash: {value: "rating",ratings: "ratingCount",showNone: !0},hashTypes: {value: "ID",ratings: "ID",showNone: "BOOLEAN"},hashContexts: {value: t,ratings: t,showNone: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "star-rating", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/application", function(e, t, s) {
s.exports = Ember.TEMPLATES.application = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(l((r = s["fnd-header"] || e && e["fnd-header"], a = {hash: {isMenuOpen: !1,logoClicked: "goHome",buttonClicked: "showMenu"},hashTypes: {isMenuOpen: "BOOLEAN",logoClicked: "STRING",buttonClicked: "STRING"},hashContexts: {isMenuOpen: e,logoClicked: e,buttonClicked: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : u.call(e, "fnd-header", a)))), t.buffer.push("\n "), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = s.helperMissing, l = this.escapeExpression, c = this;
return a.buffer.push('<div class="app-main">\n <div class="app-row--full container">\n '), i = s["if"].call(t, "shouldShowHeader", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push('\n </div>\n\n <div class="app-row--full container container--nopadding">\n '), a.buffer.push(l((o = s.outlet || t && t.outlet, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, o ? o.call(t, "header", h) : u.call(t, "outlet", "header", h)))), a.buffer.push('\n </div>\n\n <div class="app-row--full container">\n <div class="app-body row">\n <div class="col-xs-12">\n '), i = s._triageMustache.call(t, "outlet", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n </div>\n </div>\n </div>\n</div>\n\n"), a.buffer.push(l((o = s.outlet || t && t.outlet, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, o ? o.call(t, "modal", h) : u.call(t, "outlet", "modal", h)))), a.buffer.push("\n"), a.buffer.push(l((o = s.outlet || t && t.outlet, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, o ? o.call(t, "menuModal", h) : u.call(t, "outlet", "menuModal", h)))), a.buffer.push("\n\n"), a.buffer.push(l((o = s.partial || t && t.partial, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, o ? o.call(t, "footer", h) : u.call(t, "partial", "footer", h)))), a.buffer.push("\n"), p
})
}), require.register("templates/artist", function(e, t, s) {
s.exports = Ember.TEMPLATES.artist = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "albums",parent: "model"},hashTypes: {mediaTypeId: "STRING",parent: "ID"},hashContexts: {mediaTypeId: t,parent: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push('\n\n<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "songs",parent: "model",hideTrackNumbers: !0},hashTypes: {mediaTypeId: "STRING",parent: "ID",hideTrackNumbers: "BOOLEAN"},hashContexts: {mediaTypeId: t,parent: t,hideTrackNumbers: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push('\n\n<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "music-videos",parent: "model",hideTrackNumbers: !0},hashTypes: {mediaTypeId: "STRING",parent: "ID",hideTrackNumbers: "BOOLEAN"},hashContexts: {mediaTypeId: t,parent: t,hideTrackNumbers: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push('\n\n<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "movies",parent: "model",hideTrackNumbers: !0},hashTypes: {mediaTypeId: "STRING",parent: "ID",hideTrackNumbers: "BOOLEAN"},hashContexts: {mediaTypeId: t,parent: t,hideTrackNumbers: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push('\n\n<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "books",parent: "model",hideTrackNumbers: !0},hashTypes: {mediaTypeId: "STRING",parent: "ID",hideTrackNumbers: "BOOLEAN"},hashContexts: {mediaTypeId: t,parent: t,hideTrackNumbers: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push('\n\n<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "audiobooks",parent: "model",hideTrackNumbers: !0},hashTypes: {mediaTypeId: "STRING",parent: "ID",hideTrackNumbers: "BOOLEAN"},hashContexts: {mediaTypeId: t,parent: t,hideTrackNumbers: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/artist/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["artist/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push("<div>\n "), n = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n<div>\n "), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("templates/artist/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["artist/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n"), i
})
}), require.register("templates/audiobook", function(e, t, s) {
s.exports = Ember.TEMPLATES.audiobook = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r = "";
return t.buffer.push('\n <hr class="page-divider">\n <div class="row">\n <div class="col-xs-12"><h3>Preview</h3></div>\n <div class="col-xs-12">\n <audio '), t.buffer.push(u(s["bind-attr"].call(e, {hash: {src: "previewUrl"},hashTypes: {src: "ID"},hashContexts: {src: e},contexts: [],types: [],data: t}))), t.buffer.push(' preload="none" controls="controls"\n class="track-preview"></audio>\n </div>\n </div>\n'), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = this.escapeExpression, l = this, c = s.helperMissing;
return i = s["if"].call(t, "previewUrl", {hash: {},hashTypes: {},hashContexts: {},inverse: l.noop,fn: l.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n\n"), a.buffer.push(u((o = s["itunes-description"] || t && t["itunes-description"], h = {hash: {description: "description"},hashTypes: {description: "ID"},hashContexts: {description: t},contexts: [],types: [],data: a}, o ? o.call(t, h) : c.call(t, "itunes-description", h)))), a.buffer.push("\n\n"), a.buffer.push(u((o = s.partial || t && t.partial, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, o ? o.call(t, "itunes_item/_youtube_results", h) : c.call(t, "partial", "itunes_item/_youtube_results", h)))), a.buffer.push("\n"), p
})
}), require.register("templates/audiobook/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["audiobook/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push("<div>\n "), n = s._triageMustache.call(t, "mediaType.shortNameOrName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" by "), n = s._triageMustache.call(t, "authorName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("templates/audiobook/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["audiobook/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "book/metadata1", i) : h.call(t, "partial", "book/metadata1", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/author", function(e, t, s) {
s.exports = Ember.TEMPLATES.author = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "books",parent: "model"},hashTypes: {mediaTypeId: "STRING",parent: "ID"},hashContexts: {mediaTypeId: t,parent: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push('\n\n<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "audiobooks",parent: "model"},hashTypes: {mediaTypeId: "STRING",parent: "ID"},hashContexts: {mediaTypeId: t,parent: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/book", function(e, t, s) {
s.exports = Ember.TEMPLATES.book = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s["itunes-description"] || t && t["itunes-description"], i = {hash: {description: "description"},hashTypes: {description: "ID"},hashContexts: {description: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "itunes-description", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_youtube_results", i) : h.call(t, "partial", "itunes_item/_youtube_results", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/book/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["book/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o, h = "", p = s.helperMissing, u = this.escapeExpression;
return a.buffer.push("<div>\n "), n = s._triageMustache.call(t, "mediaType.shortNameOrName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" by "), n = s._triageMustache.call(t, "authorName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n<div>\n "), a.buffer.push(u((i = s["star-rating"] || t && t["star-rating"], o = {hash: {value: "rating",ratings: "ratingCount"},hashTypes: {value: "ID",ratings: "ID"},hashContexts: {value: t,ratings: t},contexts: [],types: [],data: a}, i ? i.call(t, o) : p.call(t, "star-rating", o)))), a.buffer.push("\n</div>\n"), h
})
}), require.register("templates/book/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["book/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o, h = "", p = s.helperMissing, u = this.escapeExpression;
return n = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\nby\n"), a.buffer.push(u((i = s["ii-creator"] || t && t["ii-creator"], o = {hash: {creatorKey: "author",parent: "model"},hashTypes: {creatorKey: "STRING",parent: "ID"},hashContexts: {creatorKey: t,parent: t},contexts: [],types: [],data: a}, i ? i.call(t, o) : p.call(t, "ii-creator", o)))), a.buffer.push("\n"), h
})
}), require.register("templates/book/_metadata3", function(e, t, s) {
s.exports = Ember.TEMPLATES["book/_metadata3"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s["star-rating"] || t && t["star-rating"], i = {hash: {value: "rating",ratings: "ratingCount",showNone: !0},hashTypes: {value: "ID",ratings: "ID",showNone: "BOOLEAN"},hashContexts: {value: t,ratings: t,showNone: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "star-rating", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/bookmarklet", function(e, t, s) {
s.exports = Ember.TEMPLATES.bookmarklet = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o, h = "", p = s.helperMissing, u = this.escapeExpression;
return a.buffer.push("<h2>\n Install the "), a.buffer.push(u((i = s["link-to"] || t && t["link-to"], o = {hash: {},hashTypes: {},hashContexts: {},contexts: [t, t, t],types: ["ID", "STRING", "ID"],data: a}, i ? i.call(t, "title", "integration", "integration", o) : p.call(t, "link-to", "title", "integration", "integration", o)))), a.buffer.push(' Bookmarklet\n</h2>\n\n<div class="row">\n <div class="col-md-12">\n <ol>\n <li>\n <p>\n <strong>Tap</strong> inside the field below. <strong>Tap</strong>\n again and <strong>hold</strong>. Tap <strong>Select All</strong>.\n Tap <strong>Copy</strong>.\n </p>\n <input class="form-control input-lg" value="'), a.buffer.push(u(s.unbound.call(t, "code", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}))), a.buffer.push('"></input>\n </li>\n <li><p>Tap the <strong>Share Icon</strong>.</p></li>\n <li><p>Tap <strong>Bookmark</strong>.</p></li>\n <li><p>Tap <strong>Save</strong>.</p></li>\n <li>\n <p>Open <strong>Bookmarks</strong> by tapping the bookmarks icon.</p>\n </li>\n <li>\n <p>Tap <strong>Edit</strong> then tap <strong>'), n = s._triageMustache.call(t, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("</strong>.</p>\n </li>\n <li>\n <p>\n <strong>Tap</strong> the second field, that starts with\n <strong>"), n = s._triageMustache.call(t, "env.url", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("</strong>. <strong>Tap</strong> again and\n <strong>hold</strong>. Tap <strong>Select All</strong>. Tap\n <strong>Paste</strong>.\n </p>\n </li>\n <li><p>Tap <strong>Bookmarks</strong> in the top left.</p></li>\n <li>\n <p>Tap <strong>Done</strong>. Tap <strong>Done</strong> again.</p>\n </li>\n <li>\n <strong>You're done!</strong> Go back into Bookmarks and give it a try.\n </li>\n </ol>\n <em class=\"text-muted\">\n Rejoice if you were succesful on the first try. You're smarter than 99.8%\n of Internet users.\n </em>\n </div>\n</div>\n"), h
})
}), require.register("templates/chart", function(e, t, s) {
s.exports = Ember.TEMPLATES.chart = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<div class="page-body">\n '), a.buffer.push(p((n = s.outlet || t && t.outlet, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "header", i) : h.call(t, "outlet", "header", i)))), a.buffer.push('\n\n <hr class="page-divider page-divider--nospace l-pad-v--sm"/>\n\n '), a.buffer.push(p((n = s["paginated-results"] || t && t["paginated-results"], i = {hash: {model: "fetcher",defaultSetsDesired: 1,showRank: !0},hashTypes: {model: "ID",defaultSetsDesired: "INTEGER",showRank: "BOOLEAN"},hashContexts: {model: t,defaultSetsDesired: t,showRank: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "paginated-results", i)))), a.buffer.push("\n</div>\n"), o
})
}), require.register("templates/charts", function(e, t, s) {
s.exports = Ember.TEMPLATES.charts = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.outlet || t && t.outlet, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "header", i) : h.call(t, "outlet", "header", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s.outlet || t && t.outlet, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "chart", i) : h.call(t, "outlet", "chart", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/charts/_edit", function(e, t, s) {
s.exports = Ember.TEMPLATES["charts/_edit"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r = "";
return t.buffer.push("\n "), t.buffer.push(u(s.view.call(e, "Ember.Select", {hash: {content: "chartTypes",optionValuePath: "content.id",optionLabelPath: "content.name",value: "chartTypeId"},hashTypes: {content: "ID",optionValuePath: "STRING",optionLabelPath: "STRING",value: "ID"},hashContexts: {content: e,optionValuePath: e,optionLabelPath: e,value: e},contexts: [e],types: ["ID"],data: t}))), t.buffer.push("\n "), r
}
function i(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s._triageMustache.call(e, "chartType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function o(e, t) {
var r = "";
return t.buffer.push('\n <div class="chart-select-row">\n <span>in</span>\n '), t.buffer.push(u(s.view.call(e, "Ember.Select", {hash: {content: "genres",optionValuePath: "content.id",optionLabelPath: "content.name",value: "genreId"},hashTypes: {content: "ID",optionValuePath: "STRING",optionLabelPath: "STRING",value: "ID"},hashContexts: {content: e,optionValuePath: e,optionLabelPath: e,value: e},contexts: [e],types: ["ID"],data: t}))), t.buffer.push("\n </div>\n "), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var h, p = "", u = this.escapeExpression, l = this;
return a.buffer.push('<div class="page-body">\n <div class="chart-select">\n <div class="chart-select-row">\n '), a.buffer.push(u(s.view.call(t, "Ember.Select", {hash: {content: "mediaTypes",optionValuePath: "content.id",optionLabelPath: "content.pluralName",value: "mediaTypeId"},hashTypes: {content: "ID",optionValuePath: "STRING",optionLabelPath: "STRING",value: "ID"},hashContexts: {content: t,optionValuePath: t,optionLabelPath: t,value: t},contexts: [t],types: ["ID"],data: a}))), a.buffer.push('\n </div>\n\n <div class="chart-select-row">\n that are\n\n '), h = s["if"].call(t, "hasMoreThanOneChartType", {hash: {},hashTypes: {},hashContexts: {},inverse: l.program(3, i, a),fn: l.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (h || 0 === h) && a.buffer.push(h), a.buffer.push("\n </div>\n\n "), h = s["if"].call(t, "hasGenres", {hash: {},hashTypes: {},hashContexts: {},inverse: l.noop,fn: l.program(5, o, a),contexts: [t],types: ["ID"],data: a}), (h || 0 === h) && a.buffer.push(h), a.buffer.push("\n </div>\n</div>\n"), p
})
}), require.register("templates/compilation", function(e, t, s) {
s.exports = Ember.TEMPLATES.compilation = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "album", i) : h.call(t, "partial", "album", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/components/app-screenshot", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/app-screenshot"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
t.buffer.push('\n <div class="app-screenshot app-screenshot-placeholder">\n </div>\n')
}
function i(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "shouldLink", {hash: {},hashTypes: {},hashContexts: {},inverse: d.program(7, p, t),fn: d.program(4, o, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n"), a
}
function o(e, t) {
var r, a, n, i = "";
return t.buffer.push("\n "), a = s["link-to"] || e && e["link-to"], n = {hash: {replace: !0},hashTypes: {replace: "BOOLEAN"},hashContexts: {replace: e},inverse: d.noop,fn: d.program(5, h, t),contexts: [e, e, e],types: ["ID", "ID", "ID"],data: t}, r = a ? a.call(e, "routeName", "type", "index", n) : m.call(e, "link-to", "routeName", "type", "index", n), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), i
}
function h(e, t) {
var r = "";
return t.buffer.push("\n <img "), t.buffer.push(c(s["bind-attr"].call(e, {hash: {src: "image.url",alt: "title","class": "imageClass"},hashTypes: {src: "ID",alt: "ID","class": "ID"},hashContexts: {src: e,alt: e,"class": e},contexts: [],types: [],data: t}))), t.buffer.push(" />\n "), r
}
function p(e, t) {
var r = "";
return t.buffer.push("\n <img "), t.buffer.push(c(s["bind-attr"].call(e, {hash: {src: "image.url",alt: "title","class": "imageClass"},hashTypes: {src: "ID",alt: "ID","class": "ID"},hashContexts: {src: e,alt: e,"class": e},contexts: [],types: [],data: t}))), t.buffer.push(" />\n "), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var u, l = "", c = this.escapeExpression, d = this, m = s.helperMissing;
return u = s["if"].call(t, "isLoading", {hash: {},hashTypes: {},hashContexts: {},inverse: d.program(3, i, a),fn: d.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (u || 0 === u) && a.buffer.push(u), a.buffer.push("\n"), l
})
}), require.register("templates/components/app-screenshots", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/app-screenshots"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "hasIphoneAndIpad", {hash: {},hashTypes: {},hashContexts: {},inverse: f.noop,fn: f.program(2, i, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('\n <div class="app-screenshots-wrapper">\n <div '), t.buffer.push(m(s["bind-attr"].call(e, {hash: {"class": ":app-screenshots cssClass"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},contexts: [],types: [],data: t}))), t.buffer.push(">\n "), r = s.each.call(e, "screenshotsWithIndex", {hash: {},hashTypes: {},hashContexts: {},inverse: f.noop,fn: f.program(10, l, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </div>\n </div>\n"), a
}
function i(e, t) {
var r, a = "";
return t.buffer.push('\n <h3 class="app-screenshots-header">\n '), r = s.each.call(e, "screenshotChoices", {hash: {},hashTypes: {},hashContexts: {},inverse: f.noop,fn: f.program(3, o, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </h3>\n "), a
}
function o(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "isSelected", {hash: {},hashTypes: {},hashContexts: {},inverse: f.program(6, p, t),fn: f.program(4, h, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), r = s.unless.call(e, "isLast", {hash: {},hashTypes: {},hashContexts: {},inverse: f.noop,fn: f.program(8, u, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function h(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s._triageMustache.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push(" Screenshots\n "), a
}
function p(e, t) {
var r, a = "";
return t.buffer.push("\n <a "), t.buffer.push(m(s.action.call(e, "switch", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push(' href="#">'), r = s._triageMustache.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push(" Screenshots</a>\n "), a
}
function u(e, t) {
t.buffer.push(" | ")
}
function l(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(m((r = s["app-screenshot"] || e && e["app-screenshot"], a = {hash: {screenshot: "screenshot",index: "index",type: "type",preferredSize: "small",model: "model"},hashTypes: {screenshot: "ID",index: "ID",type: "ID",preferredSize: "STRING",model: "ID"},hashContexts: {screenshot: e,index: e,type: e,preferredSize: e,model: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : g.call(e, "app-screenshot", a)))), t.buffer.push("\n "), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var c, d = "", m = this.escapeExpression, f = this, g = s.helperMissing;
return c = s["if"].call(t, "hasScreenshots", {hash: {},hashTypes: {},hashContexts: {},inverse: f.noop,fn: f.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (c || 0 === c) && a.buffer.push(c), a.buffer.push("\n"), d
})
}), require.register("templates/components/did-you-mean", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/did-you-mean"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o, h = "", p = s.helperMissing, u = this.escapeExpression;
return a.buffer.push("Did you mean &ldquo;<strong>"), i = s["query-params"] || t && t["query-params"], o = {hash: {term: "term"},hashTypes: {term: "ID"},hashContexts: {term: t},contexts: [],types: [],data: a}, n = i ? i.call(t, o) : p.call(t, "query-params", o), a.buffer.push(u((i = s["link-to"] || t && t["link-to"], o = {hash: {classNameBindings: "linkClass"},hashTypes: {classNameBindings: "STRING"},hashContexts: {classNameBindings: t},contexts: [t, t, t],types: ["ID", "STRING", "sexpr"],data: a}, i ? i.call(t, "term", "search", n, o) : p.call(t, "link-to", "term", "search", n, o)))), a.buffer.push("</strong>&rdquo;?\n"), h
})
}), require.register("templates/components/fnd-header", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/fnd-header"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push('\n <a href="https://twitter.com/tryfnd" target="_blank" title="twitter"\n class="header-twitter-icon">\n '), t.buffer.push(d((r = s.partial || e && e.partial, a = {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["STRING"],data: t}, r ? r.call(e, "image/twitter", a) : c.call(e, "partial", "image/twitter", a)))), t.buffer.push("\n </a>\n "), n
}
function i(e, t) {
var r, a, n = "";
return t.buffer.push("\n <a "), t.buffer.push(d(s.action.call(e, "headerButtonClicked", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["STRING"],data: t}))), t.buffer.push(' title="close"\n class="navbar-btn header-icon-btn"\n href="#">\n '), t.buffer.push(d((r = s.partial || e && e.partial, a = {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["STRING"],data: t}, r ? r.call(e, "svg/close", a) : c.call(e, "partial", "svg/close", a)))), t.buffer.push("\n </a>\n "), n
}
function o(e, t) {
var r, a, n = "";
return t.buffer.push('\n <a href="#" '), t.buffer.push(d(s.action.call(e, "headerButtonClicked", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["STRING"],data: t}))), t.buffer.push(' title="menu"\n class="navbar-btn header-icon-btn">\n '), t.buffer.push(d((r = s.partial || e && e.partial, a = {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["STRING"],data: t}, r ? r.call(e, "svg/menu", a) : c.call(e, "partial", "svg/menu", a)))), t.buffer.push("\n </a>\n "), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var h, p, u, l = "", c = s.helperMissing, d = this.escapeExpression, m = this;
return a.buffer.push("<div "), a.buffer.push(d(s["bind-attr"].call(t, {hash: {"class": ":header-wrapper noMargin:header--nomargin :row"},hashTypes: {"class": "STRING"},hashContexts: {"class": t},contexts: [],types: [],data: a}))), a.buffer.push(">\n <div "), a.buffer.push(d(s["bind-attr"].call(t, {hash: {"class": ":header isTransparent:header--transparent isUnderline:header--underline :col-xs-12"},hashTypes: {"class": "STRING"},hashContexts: {"class": t},contexts: [],types: [],data: a}))), a.buffer.push('>\n <div class="header-left navbar-form">\n '), h = s["if"].call(t, "isMenuOpen", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (h || 0 === h) && a.buffer.push(h), a.buffer.push('\n </div>\n\n <div class="header-center">\n <a href="#/" '), a.buffer.push(d(s.action.call(t, "logoClicked", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}))), a.buffer.push(' class="header-logo btn-block">\n <span class="logo logo--small" alt="logo for fnd">\n '), a.buffer.push(d((p = s.partial || t && t.partial, u = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, p ? p.call(t, "svg/logo", u) : c.call(t, "partial", "svg/logo", u)))), a.buffer.push('\n </span>\n </a>\n </div>\n\n <div class="header-right">\n '), h = s["if"].call(t, "isMenuOpen", {hash: {},hashTypes: {},hashContexts: {},inverse: m.program(5, o, a),fn: m.program(3, i, a),contexts: [t],types: ["ID"],data: a}), (h || 0 === h) && a.buffer.push(h), a.buffer.push("\n </div>\n </div>\n</div>\n"), l
})
}), require.register("templates/components/fnd-search", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/fnd-search"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n = "", i = this.escapeExpression;
return a.buffer.push('<input class="form-control fnd-search-input"\n '), a.buffer.push(i(s["bind-attr"].call(t, {hash: {placeholder: "placeholder"},hashTypes: {placeholder: "ID"},hashContexts: {placeholder: t},contexts: [],types: [],data: a}))), a.buffer.push('\n title="Search fnd"\n type="text">\n<span class="input-group-btn">\n <button href="#" class="btn btn-search fnd-search-btn" type="submit">\n Search\n </button>\n</span>\n'), n
})
}), require.register("templates/components/ii-creator", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/ii-creator"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(u((r = s["link-to"] || e && e["link-to"], a = {hash: {},hashTypes: {},hashContexts: {},contexts: [e, e, e],types: ["ID", "ID", "ID"],data: t}, r ? r.call(e, "creator.name", "creator.routeName", "creator", a) : p.call(e, "link-to", "creator.name", "creator.routeName", "creator", a)))), t.buffer.push("\n"), n
}
function i(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s._triageMustache.call(e, "creatorName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n"), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var o, h = "", p = s.helperMissing, u = this.escapeExpression, l = this;
return o = s["if"].call(t, "creator.isLoaded", {hash: {},hashTypes: {},hashContexts: {},inverse: l.program(3, i, a),fn: l.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push("\n"), h
})
}), require.register("templates/components/ii-list", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/ii-list"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push('\n <div class="text-muted l-sp-above">\n Loading '), r = s._triageMustache.call(e, "pluralLowerCaseName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("...\n </div>\n "), a
}
function i(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "fetcher.hasResults", {hash: {},hashTypes: {},hashContexts: {},inverse: f.program(8, u, t),fn: f.program(4, o, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function o(e, t) {
var r, a, n, i = "";
return t.buffer.push('\n <h2 class="beta">'), t.buffer.push(m((a = s.pluralize || e && e.pluralize, n = {hash: {},hashTypes: {},hashContexts: {},contexts: [e, e],types: ["ID", "ID"],data: t}, a ? a.call(e, "fetcher.results", "name", n) : d.call(e, "pluralize", "fetcher.results", "name", n)))), t.buffer.push('</h2>\n <ul class="ii-list media-list">\n '), t.buffer.push(m((a = s["ii-set"] || e && e["ii-set"], n = {hash: {set: "fetcher.firstResultSet",showTrackNumbers: "showTrackNumbers"},hashTypes: {set: "ID",showTrackNumbers: "ID"},hashContexts: {set: e,showTrackNumbers: e},contexts: [],types: [],data: t}, a ? a.call(e, n) : d.call(e, "ii-set", n)))), t.buffer.push("\n </ul>\n "), r = s["if"].call(e, "mayHaveMoreResults", {hash: {},hashTypes: {},hashContexts: {},inverse: f.noop,fn: f.program(5, h, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), i
}
function h(e, t) {
var r, a, n, i = "";
return t.buffer.push('\n <div class="row">\n <div class="col-xs-12">\n '), a = s["link-to"] || e && e["link-to"], n = {hash: {"class": "search-more"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},inverse: f.noop,fn: f.program(6, p, t),contexts: [e, e],types: ["ID", "ID"],data: t}, r = a ? a.call(e, "routeName", "routeModel", n) : d.call(e, "link-to", "routeName", "routeModel", n), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </div>\n </div>\n "), i
}
function p(e, t) {
var r, a, n = "";
return t.buffer.push("\n More "), t.buffer.push(m((r = s.pluralize || e && e.pluralize, a = {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}, r ? r.call(e, "name", a) : d.call(e, "pluralize", "name", a)))), t.buffer.push(' <i class="fa fa-angle-right"></i>\n '), n
}
function u(e, t) {
var r, a = "";
return t.buffer.push('\n <div class="text-muted l-sp-above">\n No '), r = s._triageMustache.call(e, "pluralLowerCaseName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push(" found for "), r = s._triageMustache.call(e, "parent.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push(".\n </div>\n "), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var l, c = "", d = s.helperMissing, m = this.escapeExpression, f = this;
return a.buffer.push('<div class="row">\n <div class="col-xs-12">\n '), l = s["if"].call(t, "fetcher.isFetching", {hash: {},hashTypes: {},hashContexts: {},inverse: f.program(3, i, a),fn: f.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (l || 0 === l) && a.buffer.push(l), a.buffer.push("\n </div>\n</div>\n"), c
})
}), require.register("templates/components/ii-set", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/ii-set"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
t.buffer.push("\n <li><hr></li>\n")
}
function i(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["with"].call(e, "item", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.programWithDepth(4, o, t, e),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n"), a
}
function o(e, t, r) {
var a, n, i, o = "";
return t.buffer.push('\n <li class="ii-row media">\n '), a = s["if"].call(e, "controller.showTrackNumbers", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(5, h, t),contexts: [e],types: ["ID"],data: t}), (a || 0 === a) && t.buffer.push(a), t.buffer.push("\n "), a = s["if"].call(e, "controller.showRank", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.programWithDepth(10, l, t, r),contexts: [e],types: ["ID"],data: t}), (a || 0 === a) && t.buffer.push(a), t.buffer.push("\n "), t.buffer.push(g((n = s.partial || e && e.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}, n ? n.call(e, "itemTemplate", i) : f.call(e, "partial", "itemTemplate", i)))), t.buffer.push("\n </li>\n "), o
}
function h(e, t) {
var r, a = "";
return t.buffer.push('\n <span class="ii-number text-muted pull-left">\n '), r = s["if"].call(e, "hasMoreThanOneDisc", {hash: {},hashTypes: {},hashContexts: {},inverse: m.program(8, u, t),fn: m.program(6, p, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </span>\n "), a
}
function p(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s._triageMustache.call(e, "discNumber", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("-"), r = s._triageMustache.call(e, "trackNumber", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function u(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s._triageMustache.call(e, "trackNumber", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function l(e, t, r) {
var a, n = "";
return t.buffer.push('\n <span class="ii-number text-muted pull-left">\n '), a = s._triageMustache.call(e, "position", {hash: {},hashTypes: {},hashContexts: {},contexts: [r],types: ["ID"],data: t}), (a || 0 === a) && t.buffer.push(a), t.buffer.push("\n </span>\n "), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var c, d = "", m = this, f = s.helperMissing, g = this.escapeExpression;
return c = s["if"].call(t, "needsDivider", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (c || 0 === c) && a.buffer.push(c), a.buffer.push("\n"), c = s.each.call(t, "set.contentWithIndex", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(3, i, a),contexts: [t],types: ["ID"],data: a}), (c || 0 === c) && a.buffer.push(c), a.buffer.push("\n"), d
})
}), require.register("templates/components/ii-sets", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/ii-sets"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(p((r = s["ii-set"] || e && e["ii-set"], a = {hash: {set: "",showRank: "controller.showRank"},hashTypes: {set: "ID",showRank: "ID"},hashContexts: {set: e,showRank: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : h.call(e, "ii-set", a)))), t.buffer.push("\n "), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o = "", h = s.helperMissing, p = this.escapeExpression, u = this;
return a.buffer.push('<ul class="ii-list media-list">\n '), i = s.each.call(t, "sets", {hash: {},hashTypes: {},hashContexts: {},inverse: u.noop,fn: u.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n</ul>\n"), o
})
}), require.register("templates/components/image-set", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/image-set"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
t.buffer.push('\n <div class="imageset imageset-placeholder">\n </div>\n')
}
function i(e, t) {
var r = "";
return t.buffer.push("\n <img "), t.buffer.push(p(s["bind-attr"].call(e, {hash: {src: "image.url",alt: "title","class": "imageClass"},hashTypes: {src: "ID",alt: "ID","class": "ID"},hashContexts: {src: e,alt: e,"class": e},contexts: [],types: [],data: t}))), t.buffer.push(" />\n"), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var o, h = "", p = this.escapeExpression, u = this;
return o = s["if"].call(t, "isLoading", {hash: {},hashTypes: {},hashContexts: {},inverse: u.program(3, i, a),fn: u.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push("\n"), h
})
}), require.register("templates/components/itunes-button", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/itunes-button"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o, h = "", p = this.escapeExpression, u = s.helperMissing;
return a.buffer.push("<a "), a.buffer.push(p(s["bind-attr"].call(t, {hash: {href: "url","class": ":btn :btn-itunes availablityClass"},hashTypes: {href: "ID","class": "STRING"},hashContexts: {href: t,"class": t},contexts: [],types: [],data: a}))), a.buffer.push(">"), n = s._triageMustache.call(t, "text", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push('\n<div class="ii-action-badge">\n'), a.buffer.push(p((i = s.partial || t && t.partial, o = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}, i ? i.call(t, "badgeTemplate", o) : u.call(t, "partial", "badgeTemplate", o)))), a.buffer.push("\n</div>\n</a>\n"), h
})
}), require.register("templates/components/itunes-description", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/itunes-description"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
t.buffer.push('\n <hr class="page-divider">\n')
}
function i(e, t) {
t.buffer.push("\n <h3>Description</h3>\n ")
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var o, h = "", p = this, u = this.escapeExpression;
return o = s.unless.call(t, "noDivider", {hash: {},hashTypes: {},hashContexts: {},inverse: p.noop,fn: p.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push('\n<div class="row">\n <div class="col-xs-12">\n '), o = s.unless.call(t, "noHeader", {hash: {},hashTypes: {},hashContexts: {},inverse: p.noop,fn: p.program(3, i, a),contexts: [t],types: ["ID"],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push('\n <div class="itunes-description-text">'), a.buffer.push(u(s._triageMustache.call(t, "description", {hash: {unescaped: "true"},hashTypes: {unescaped: "STRING"},hashContexts: {unescaped: t},contexts: [t],types: ["ID"],data: a}))), a.buffer.push("</div>\n </div>\n</div>\n"), h
})
}), require.register("templates/components/itunes-reviews", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/itunes-reviews"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push('\n <div class="itunes-reviews-btn-wrapper text-center">\n '), t.buffer.push(m((r = s["loading-button"] || e && e["loading-button"], a = {hash: {text: "Loading Reviews...",padding: !0},hashTypes: {text: "STRING",padding: "BOOLEAN"},hashContexts: {text: e,padding: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : d.call(e, "loading-button", a)))), t.buffer.push("\n </div>\n "), n
}
function i(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "hasReviews", {hash: {},hashTypes: {},hashContexts: {},inverse: f.program(8, u, t),fn: f.program(4, o, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function o(e, t) {
var r, a = "";
return t.buffer.push("\n <h1>Reviews</h1>\n "), r = s.each.call(e, "reviewsByHelpful", {hash: {},hashTypes: {},hashContexts: {},inverse: f.noop,fn: f.program(5, h, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function h(e, t) {
var r, a, n, i = "";
return t.buffer.push("\n <h4>"), r = s._triageMustache.call(e, "title", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("</h4>\n <span>\n "), t.buffer.push(m((a = s["star-rating"] || e && e["star-rating"], n = {hash: {value: "rating",noRatings: !0},hashTypes: {value: "ID",noRatings: "BOOLEAN"},hashContexts: {value: e,noRatings: e},contexts: [],types: [],data: t}, a ? a.call(e, n) : d.call(e, "star-rating", n)))), t.buffer.push(" &mdash;\n "), r = s["if"].call(e, "version", {hash: {},hashTypes: {},hashContexts: {},inverse: f.noop,fn: f.program(6, p, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('\n <span class="text-muted">by '), r = s._triageMustache.call(e, "authorName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('</span>\n </span>\n <p class="ii-review-content">'), r = s._triageMustache.call(e, "content", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('</p>\n <p class="text-muted">'), r = s._triageMustache.call(e, "voteText", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("</p>\n "), i
}
function p(e, t) {
var r, a = "";
return t.buffer.push("Version "), r = s._triageMustache.call(e, "version", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), a
}
function u(e, t) {
var r, a = "";
return t.buffer.push('\n <div class="itunes-reviews-btn-wrapper text-center text-muted">\n No Reviews for &ldquo;'), r = s._triageMustache.call(e, "model.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("&rdquo;\n </div>\n "), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var l, c = "", d = s.helperMissing, m = this.escapeExpression, f = this;
return a.buffer.push('<div class="row">\n <div class="col-xs-12">\n '), l = s["if"].call(t, "reviews.isPending", {hash: {},hashTypes: {},hashContexts: {},inverse: f.program(3, i, a),fn: f.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (l || 0 === l) && a.buffer.push(l), a.buffer.push("\n </div>\n</div>\n"), c
})
}), require.register("templates/components/loading-button", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/loading-button"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push('<a href="#" class="btn btn-lg btn-link" disabled="disabled">\n <span class="text-muted">\n '), n = s._triageMustache.call(t, "text", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n "), n = s._triageMustache.call(t, "yield", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n </span>\n</a>\n"), i
})
}), require.register("templates/components/major-searches", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/major-searches"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push('\n <ul class="search-menu search-menu--major nav nav-tabs">\n '), r = s.each.call(e, "all", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(2, i, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n <li "), t.buffer.push(c(s["bind-attr"].call(e, {hash: {"class": ":search-menu-extra-link isExtraActive:active :dropdown"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},contexts: [],types: [],data: t}))), t.buffer.push('>\n <a class="dropdown-toggle" data-toggle="dropdown" href="#">\n <i class="fa fa-angle-double-down"></i>\n </a>\n <ul class="dropdown-menu dropdown-menu-right">\n '), r = s.each.call(e, "extra", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(4, o, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </ul>\n </li>\n </ul>\n"), a
}
function i(e, t) {
var r, a, n, i = "";
return t.buffer.push("\n <li "), t.buffer.push(c(s["bind-attr"].call(e, {hash: {"class": "isActive:active isExtra:search-menu-extra-search"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},contexts: [],types: [],data: t}))), t.buffer.push(">\n "), a = s["query-params"] || e && e["query-params"], n = {hash: {mediaType: "queryParams.mediaType"},hashTypes: {mediaType: "ID"},hashContexts: {mediaType: e},contexts: [],types: [],data: t}, r = a ? a.call(e, n) : d.call(e, "query-params", n), t.buffer.push(c((a = s["link-to"] || e && e["link-to"], n = {hash: {},hashTypes: {},hashContexts: {},contexts: [e, e, e],types: ["ID", "STRING", "sexpr"],data: t}, a ? a.call(e, "name", "search", r, n) : d.call(e, "link-to", "name", "search", r, n)))), t.buffer.push("\n </li>\n "), i
}
function o(e, t) {
var r, a, n, i = "";
return t.buffer.push("\n <li "), t.buffer.push(c(s["bind-attr"].call(e, {hash: {"class": "isActive:active"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},contexts: [],types: [],data: t}))), t.buffer.push(">\n "), a = s["query-params"] || e && e["query-params"], n = {hash: {mediaType: "queryParams.mediaType"},hashTypes: {mediaType: "ID"},hashContexts: {mediaType: e},contexts: [],types: [],data: t}, r = a ? a.call(e, n) : d.call(e, "query-params", n), t.buffer.push(c((a = s["link-to"] || e && e["link-to"], n = {hash: {},hashTypes: {},hashContexts: {},contexts: [e, e, e],types: ["ID", "STRING", "sexpr"],data: t}, a ? a.call(e, "name", "search", r, n) : d.call(e, "link-to", "name", "search", r, n)))), t.buffer.push("\n </li>\n "), i
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var h, p, u, l = "", c = this.escapeExpression, d = s.helperMissing, m = this, f = "function", g = s.blockHelperMissing;
return u = {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(1, n, a),contexts: [],types: [],data: a}, (p = s.group) ? h = p.call(t, u) : (p = t && t.group, h = typeof p === f ? p.call(t, u) : p), s.group || (h = g.call(t, "group", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(1, n, a),contexts: [],types: [],data: a})), (h || 0 === h) && a.buffer.push(h), a.buffer.push("\n"), l
})
}), require.register("templates/components/minor-searches", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/minor-searches"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "model.length", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(2, i, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n"), a
}
function i(e, t) {
var r, a = "";
return t.buffer.push('\n <div class="row">\n <div class="col-xs-12">\n <div class="btn-group l-sp-below">\n '), r = s.each.call(e, "model", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(3, o, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </div>\n </div>\n </div>\n "), a
}
function o(e, t) {
var r, a, n, i = "";
return t.buffer.push("\n "), a = s["query-params"] || e && e["query-params"], n = {hash: {mediaType: "queryParams.mediaType"},hashTypes: {mediaType: "ID"},hashContexts: {mediaType: e},contexts: [],types: [],data: t}, r = a ? a.call(e, n) : c.call(e, "query-params", n), t.buffer.push(d((a = s["link-to"] || e && e["link-to"], n = {hash: {"class": "btn btn-default"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},contexts: [e, e, e],types: ["ID", "STRING", "sexpr"],data: t}, a ? a.call(e, "name", "search", r, n) : c.call(e, "link-to", "name", "search", r, n)))), t.buffer.push("\n "), i
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var h, p, u, l = "", c = s.helperMissing, d = this.escapeExpression, m = this, f = "function", g = s.blockHelperMissing;
return u = {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(1, n, a),contexts: [],types: [],data: a}, (p = s.group) ? h = p.call(t, u) : (p = t && t.group, h = typeof p === f ? p.call(t, u) : p), s.group || (h = g.call(t, "group", {hash: {},hashTypes: {},hashContexts: {},inverse: m.noop,fn: m.program(1, n, a),contexts: [],types: [],data: a})), (h || 0 === h) && a.buffer.push(h), a.buffer.push("\n\n"), l
})
}), require.register("templates/components/nav-link", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/nav-link"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(u((r = s["link-to"] || e && e["link-to"], a = {hash: {queryParams: "queryParams"},hashTypes: {queryParams: "ID"},hashContexts: {queryParams: e},contexts: [e, e, e],types: ["ID", "ID", "ID"],data: t}, r ? r.call(e, "text", "routeName", "model", a) : p.call(e, "link-to", "text", "routeName", "model", a)))), t.buffer.push("\n"), n
}
function i(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(u((r = s["link-to"] || e && e["link-to"], a = {hash: {queryParams: "queryParams"},hashTypes: {queryParams: "ID"},hashContexts: {queryParams: e},contexts: [e, e],types: ["ID", "ID"],data: t}, r ? r.call(e, "text", "routeName", a) : p.call(e, "link-to", "text", "routeName", a)))), t.buffer.push("\n"), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var o, h = "", p = s.helperMissing, u = this.escapeExpression, l = this;
return o = s["if"].call(t, "model", {hash: {},hashTypes: {},hashContexts: {},inverse: l.program(3, i, a),fn: l.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push("\n"), h
})
}), require.register("templates/components/no-results", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/no-results"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
t.buffer.push("\n <p>Loading suggestions...</p>\n ")
}
function i(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "didYouMean.suggestion", {hash: {},hashTypes: {},hashContexts: {},inverse: g.program(6, h, t),fn: g.program(4, o, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function o(e, t) {
var r, a, n = "";
return t.buffer.push("\n <p>\n <strong>"), t.buffer.push(f((r = s["did-you-mean"] || e && e["did-you-mean"], a = {hash: {term: "didYouMean.suggestion"},hashTypes: {term: "ID"},hashContexts: {term: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : m.call(e, "did-you-mean", a)))), t.buffer.push("</strong>\n </p>\n "), n
}
function h(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s.unless.call(e, "search.isAll", {hash: {},hashTypes: {},hashContexts: {},inverse: g.noop,fn: g.program(7, p, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function p(e, t) {
var r, a, n, i = "";
return t.buffer.push("\n <p>\n Try\n "), a = s["query-params"] || e && e["query-params"], n = {hash: {mediaType: "all"},hashTypes: {mediaType: "STRING"},hashContexts: {mediaType: e},contexts: [],types: [],data: t}, r = a ? a.call(e, n) : m.call(e, "query-params", n), a = s["link-to"] || e && e["link-to"], n = {hash: {},hashTypes: {},hashContexts: {},inverse: g.noop,fn: g.program(8, u, t),contexts: [e, e],types: ["STRING", "sexpr"],data: t}, r = a ? a.call(e, "search", r, n) : m.call(e, "link-to", "search", r, n), (r || 0 === r) && t.buffer.push(r), t.buffer.push(".\n </p>\n "), i
}
function u(e, t) {
var r, a = "";
return t.buffer.push("searching All for\n <strong>&ldquo;"), r = s._triageMustache.call(e, "searchTerm", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("&rdquo;</strong>"), a
}
function l(e, t) {
var r, a = "";
return t.buffer.push("\n <li>\n <a "), t.buffer.push(f(s["bind-attr"].call(e, {hash: {href: "url"},hashTypes: {href: "ID"},hashContexts: {href: e},contexts: [],types: [],data: t}))), t.buffer.push(' class="btn btn-link" target="_blank">\n Search '), r = s._triageMustache.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </a>\n </li>\n "), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var c, d = "", m = s.helperMissing, f = this.escapeExpression, g = this;
return a.buffer.push('<div class="results-state--none text-muted">\n <p>No results in '), c = s._triageMustache.call(t, "search.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (c || 0 === c) && a.buffer.push(c), a.buffer.push(" for &ldquo;"), c = s._triageMustache.call(t, "searchTerm", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (c || 0 === c) && a.buffer.push(c), a.buffer.push("&rdquo;.</p>\n "), c = s["if"].call(t, "didYouMean.isPending", {hash: {},hashTypes: {},hashContexts: {},inverse: g.program(3, i, a),fn: g.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (c || 0 === c) && a.buffer.push(c), a.buffer.push('\n <p>Try one of the other guys:</p>\n <ul class="list-inline">\n '), c = s.each.call(t, "alternateSearches", {hash: {},hashTypes: {},hashContexts: {},inverse: g.noop,fn: g.program(10, l, a),contexts: [t],types: ["ID"],data: a}), (c || 0 === c) && a.buffer.push(c), a.buffer.push("\n </ul>\n</div>\n"), d
})
}), require.register("templates/components/paginated-results", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/paginated-results"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(b((r = s["loading-button"] || e && e["loading-button"], a = {hash: {text: "Loading...",padding: "isLoadingInitial"},hashTypes: {text: "STRING",padding: "ID"},hashContexts: {text: e,padding: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : g.call(e, "loading-button", a)))), t.buffer.push("\n "), n
}
function i(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "canLoadMoreResults", {hash: {},hashTypes: {},hashContexts: {},inverse: y.program(6, h, t),fn: y.program(4, o, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function o(e, t) {
var r = "";
return t.buffer.push("\n <a "), t.buffer.push(b(s.action.call(e, "loadMoreResults", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push(' class="btn btn-default btn-lg"\n href="#">\n More\n </a>\n '), r
}
function h(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s.unless.call(e, "mayHaveMoreResults", {hash: {},hashTypes: {},hashContexts: {},inverse: y.noop,fn: y.program(7, p, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function p(e, t) {
var r, a = "";
return t.buffer.push('\n <p class="text-muted">\n That\'s everything.\n </p>\n <p class="text-muted">\n '), r = s["if"].call(e, "oneResult", {hash: {},hashTypes: {},hashContexts: {},inverse: y.program(10, l, t),fn: y.program(8, u, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </p>\n "), a
}
function u(e, t) {
t.buffer.push("\n I hope that's it, because that's the only one.\n ")
}
function l(e, t) {
var r, a, n, i = "";
return t.buffer.push("\n "), r = s._triageMustache.call(e, "numResultsShown", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push(" "), t.buffer.push(b((a = s.pluralize || e && e.pluralize, n = {hash: {},hashTypes: {},hashContexts: {},contexts: [e, e],types: ["ID", "STRING"],data: t}, a ? a.call(e, "numResultsShown", "result", n) : g.call(e, "pluralize", "numResultsShown", "result", n)))), t.buffer.push(".\n "), i
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var c, d, m, f = "", g = s.helperMissing, b = this.escapeExpression, y = this;
return a.buffer.push(b((d = s["ii-sets"] || t && t["ii-sets"], m = {hash: {sets: "shownResultSets",showRank: "showRank"},hashTypes: {sets: "ID",showRank: "ID"},hashContexts: {sets: t,showRank: t},contexts: [],types: [],data: a}, d ? d.call(t, m) : g.call(t, "ii-sets", m)))), a.buffer.push('\n\n<div class="row text-center">\n <div class="col-xs-12 results-footer">\n '), c = s["if"].call(t, "isLoading", {hash: {},hashTypes: {},hashContexts: {},inverse: y.program(3, i, a),fn: y.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (c || 0 === c) && a.buffer.push(c), a.buffer.push("\n </div>\n</div>\n"), f
})
}), require.register("templates/components/paginated-search", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/paginated-search"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push('\n <div class="row">\n <div class="col-xs-12">\n '), t.buffer.push(u((r = s["no-results"] || e && e["no-results"], a = {hash: {model: "model",search: "model.search",didYouMean: "model.didYouMean",searchTerm: "searchTerm",alternateSearches: "model.alternateSearches"},hashTypes: {model: "ID",search: "ID",didYouMean: "ID",searchTerm: "ID",alternateSearches: "ID"},hashContexts: {model: e,search: e,didYouMean: e,searchTerm: e,alternateSearches: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : p.call(e, "no-results", a)))), t.buffer.push("\n </div>\n </div>\n"), n
}
function i(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(u((r = s["paginated-results"] || e && e["paginated-results"], a = {hash: {model: "model",defaultSetsDesired: 2},hashTypes: {model: "ID",defaultSetsDesired: "INTEGER"},hashContexts: {model: e,defaultSetsDesired: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : p.call(e, "paginated-results", a)))), t.buffer.push("\n"), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var o, h = "", p = s.helperMissing, u = this.escapeExpression, l = this;
return o = s["if"].call(t, "foundNoResults", {hash: {},hashTypes: {},hashContexts: {},inverse: l.program(3, i, a),fn: l.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push("\n"), h
})
}), require.register("templates/components/previous-next", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/previous-next"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r = "";
return t.buffer.push('\n <a href="'), t.buffer.push(l(s.unbound.call(e, "fndUrlWithSlug", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('" class="btn btn-link">\n <i class="fa fa-angle-up subnav-up"></i>\n <img class="ii-icon ii-icon--xs '), t.buffer.push(l(s.unbound.call(e, "cssClass", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('"\n src="'), t.buffer.push(l(s.unbound.call(e, "imageUrl", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('"\n alt="'), t.buffer.push(l(s.unbound.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('" />\n Prev\n </a>\n'), r
}
function i(e, t) {
t.buffer.push('\n <span class="subnav-text text-muted">Loading...</span>\n')
}
function o(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["with"].call(e, "nextItem", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(6, h, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n"), a
}
function h(e, t) {
var r = "";
return t.buffer.push('\n <a href="'), t.buffer.push(l(s.unbound.call(e, "fndUrlWithSlug", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('" class="btn btn-link">\n <img class="ii-icon ii-icon--xs '), t.buffer.push(l(s.unbound.call(e, "cssClass", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('"\n src="'), t.buffer.push(l(s.unbound.call(e, "imageUrl", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('"\n alt="'), t.buffer.push(l(s.unbound.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('" />\n Next <i class="fa fa-angle-down subnav-down"></i>\n </a>\n '), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var p, u = "", l = this.escapeExpression, c = this;
return p = s["with"].call(t, "previousItem", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (p || 0 === p) && a.buffer.push(p), a.buffer.push("\n\n"), p = s["if"].call(t, "isLoading", {hash: {},hashTypes: {},hashContexts: {},inverse: c.program(5, o, a),fn: c.program(3, i, a),contexts: [t],types: ["ID"],data: a}), (p || 0 === p) && a.buffer.push(p), a.buffer.push("\n"), u
})
}), require.register("templates/components/youtube-videos", function(e, t, s) {
s.exports = Ember.TEMPLATES["components/youtube-videos"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
t.buffer.push('\n <span class="text-muted">Loading videos...</span>\n ')
}
function i(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "videos.length", {hash: {},hashTypes: {},hashContexts: {},inverse: d.program(7, p, t),fn: d.program(4, o, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function o(e, t) {
var r, a = "";
return t.buffer.push('\n <div class="youtube-results-wrapper">\n <div class="youtube-results">\n '), r = s.each.call(e, "videos", {hash: {},hashTypes: {},hashContexts: {},inverse: d.noop,fn: d.program(5, h, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </div> <!--youtube-results-wrapper-->\n </div> <!--youtube-results-->\n "), a
}
function h(e, t) {
var r, a = "";
return t.buffer.push('\n <div class="youtube-result">\n <iframe type="text/html" '), t.buffer.push(c(s["bind-attr"].call(e, {hash: {src: "embedUrl"},hashTypes: {src: "ID"},hashContexts: {src: e},contexts: [],types: [],data: t}))), t.buffer.push('\n frameborder="0" allowfullscreen="true">\n </iframe>\n <a '), t.buffer.push(c(s["bind-attr"].call(e, {hash: {href: "shortUrl"},hashTypes: {href: "ID"},hashContexts: {href: e},contexts: [],types: [],data: t}))), t.buffer.push(' class="youtube-result-url"\n target="_blank">'), r = s._triageMustache.call(e, "shortUrl", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("</a>\n </div>\n "), a
}
function p(e, t) {
t.buffer.push('\n <span class="text-muted">No videos found.</span>\n ')
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var u, l = "", c = this.escapeExpression, d = this;
return a.buffer.push('<div class="row">\n <div class="col-xs-12">\n <h3>YouTube</h3>\n '), u = s["if"].call(t, "videos.isPending", {hash: {},hashTypes: {},hashContexts: {},inverse: d.program(3, i, a),fn: d.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (u || 0 === u) && a.buffer.push(u), a.buffer.push("\n </div>\n</div>\n"), l
})
}), require.register("templates/devices", function(e, t, s) {
s.exports = Ember.TEMPLATES.devices = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push('<div class="text-muted">\n '), n = s._triageMustache.call(t, "devicesText", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("templates/error", function(e, t, s) {
s.exports = Ember.TEMPLATES.error = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<div class="pagebody text-center">\n <div class="l-sp-above--lg l-pad-v">\n <h1>You found a bug.</h1>\n <p>Sorry about that.</p>\n </div>\n\n <div class="l-sp-above--lg">\n '), a.buffer.push(p((n = s["link-to"] || t && t["link-to"], i = {hash: {"class": "btn btn-primary btn-responsive--lg"},hashTypes: {"class": "STRING"},hashContexts: {"class": t},contexts: [t, t],types: ["STRING", "STRING"],data: a}, n ? n.call(t, "Go home", "home", i) : h.call(t, "link-to", "Go home", "home", i)))), a.buffer.push("\n <a "), a.buffer.push(p(s.action.call(t, "reloadPage", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}))), a.buffer.push(' href="#"\n class="btn btn-primary btn-responsive--lg l-sp-left">\n Try again\n </a>\n </div>\n\n '), a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "help", i) : h.call(t, "partial", "help", i)))), a.buffer.push("\n</div>\n"), o
})
}), require.register("templates/footer", function(e, t, s) {
s.exports = Ember.TEMPLATES.footer = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "", o = this.escapeExpression;
return a.buffer.push('<footer class="app-footer text-center">\n <a '), a.buffer.push(o(s.action.call(t, "changeSaying", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}))), a.buffer.push(' href="#">\n '), n = s._triageMustache.call(t, "saying", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n </a>\n</footer>\n"), i
})
}), require.register("templates/home", function(e, t, s) {
s.exports = Ember.TEMPLATES.home = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
t.buffer.push('\n <span class="text-faded">or</span> browse the Charts\n ')
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = this.escapeExpression, l = s.helperMissing, c = this;
return a.buffer.push('<div class="home-main">\n <a href="#" '), a.buffer.push(u(s.action.call(t, "showMenu", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}))), a.buffer.push(' class="home-menu-icon">\n <img src="/images/menu.svg" alt="menu">\n </a>\n <div class="text-center">\n <span class="logo--large" alt="logo for fnd">\n '), a.buffer.push(u((o = s.partial || t && t.partial, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, o ? o.call(t, "svg/logo", h) : l.call(t, "partial", "svg/logo", h)))), a.buffer.push('\n </span>\n <h2 class="home-subhead">\n '), i = s._triageMustache.call(t, "env.appSubtitle", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push('\n </h2>\n </div>\n <div class="home-search">\n '), a.buffer.push(u((o = s["fnd-search"] || t && t["fnd-search"], h = {hash: {value: "searchTerm",action: "search",placeholder: "placeholderText",autoFocus: !0},hashTypes: {value: "ID",action: "STRING",placeholder: "ID",autoFocus: "BOOLEAN"},hashContexts: {value: t,action: t,placeholder: t,autoFocus: t},contexts: [],types: [],data: a}, o ? o.call(t, h) : l.call(t, "fnd-search", h)))), a.buffer.push('\n\n <div class="home-secondary">\n '), o = s["link-to"] || t && t["link-to"], h = {hash: {"class": "btn btn-link-clear"},hashTypes: {"class": "STRING"},hashContexts: {"class": t},inverse: c.noop,fn: c.program(1, n, a),contexts: [t],types: ["STRING"],data: a}, i = o ? o.call(t, "charts", h) : l.call(t, "link-to", "charts", h), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n </div>\n </div>\n</div>\n"), p
})
}), require.register("templates/image/twitter", function(e, t, s) {
s.exports = Ember.TEMPLATES["image/twitter"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAR0AAADoCAMAAADlnMBXAAADAFBMVEUAAAD///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8HPQsIAAAA/3RSTlMA+wQB/gP9/AL6BQbvEev55wcQ7Pgb4Q8WSd9g8ifzCDAOzyL3l600yo7ty0T1FIJ+qF0pv8fB5tgMGTYyPnJr8EsJ3SYhiQp5fR/R4/FqkjsYN+rXvJVnzRX0WbWMT7PgtqG3QuLU2nO6NUUg03+HtN6IcRrD3AuEdOiiF3pkudL21saKUkwtQ4WPOMxUo4szHKs/xT0kI1ESDWOsV6mNRkETsO5Odl5clk3bJWgvfLKAyKab6XCZK+TJLoFKxHW9mNmvb22+KmWcaa4oquVQX56TlDmDbKWRLDwdblXVZmGaVh5HWFqnSJAxYkCGu8K4sZ86d1vAU9B7eM6dpKDUHE58AAASAklEQVR4XuTXTUhUUQDF8XO/79NwZJSwUlKjwiIxtCaksoSkKBQjTBFaRBsrCSFzJRFBFEFt7NuQMIOgJLcGtYyW0boWFdGyRYvAxYl5RtgDn844MDP43w7DY36cx72DIkwZg3Ttm+70P7vVW0GS+thwT9v9ra3hJ0oahVVUlEa9+NRxeegKo60ZHB/91g0AZhUCeQkgea2rPsEwJ5zVTKetE/YvUUvTzRIA0iO7fFHCGg+0T50un3cRVjNSmkiEWiduHw+/kI2NAYqPxyig+cIQSSuc5uJZJ0hytq0xCx8lgXdVUMW3m33jLk1juXQhUNnEPUD6DG1GGgbrikvHG+DMAMkIzVJAle/vAlJlYONPrmcDJIooCdS+IrXQzCQbkImGRsAs1wZfjpJ2LwyKJu+R7ErbMON0QJa9BKRals2pWbKSw4CKQVSFNpzHKTK0yc7nTS1glrwpyP7tpHOOGyARl0fBpCQe7CQDzWyzghxFzC9WxgPJzs+kdbRcOxIzHYmZRyhBgeQVzqXoLFeSIFu+LvJ2KSMB1HSUk86RFByNgfRoFZyGLJi36ggZcIXpgAcOQnlEUl4C2Dg1KUjhSNJyWx98zHR6yPI+mMLAKd1COq68gDwMmMhqFIDaG5cW3BQEZ2Kncz7BBHsNPPJeCS7WU2jmIkd+WMDjTShVs/8qSfvvGZapZOx0uhgw4CSg8o/TnGLAHKUFf5ZCAsrPj0a9frtbRC6Ygm2x06mqpiYDPodX+cY5W82AuSvgrocoNUhXtW7id8jh9H8Dm0PsgfWLYh6xCTLfODsomMsS7K0D0H29aaAiQhOmNZ/EnfxQe2hJUlt2QuYVZzrEyTHP2PePY0+5yP/8gJvjTiODH3QM02R/Hq89EofK/rB3pk9WlGcUP+/+do+MI9uw6IwgAnEJIIIioCIY2SSgohEX3HCDQgIuiEYlLqCoBZrEJBpDTDRuSSz3JRrLaFxLjZqocU0qxjIa8yGVVOXTidGBy2XmXrrv9O22+3L+glu/Oc+Zp5/3ebspmLRcRwQJ22VwDxgHX+03vb7RzJa8PTM8BoPuYMDkZZ2o1Fpq8qRq5aLQYxfqEkr+NSM8CtiTAdOV4B8gq9r5HbpNnaa/mw0eg1dThxPwU0BVpXNeWa07ukzwhHiZLnXnLLgJpqqft+tLW242NzF9PAZTetMyVTluuyNkdT+vod6cKPunjUcBYyiYqiw5CWHVQY7EuRSdmPJYSJVuXU3LAM77kJ2nPuXeeZ6CnfHcCpMiHoMHLXXacJ6D7HysOLrM0XIyLbvA8xS8T7Gw5qZsHUfOglGb22biaZeUVdl1grpLsiMAk1pd/Y0ubTjPwKjyg/o+Tw7nzLAsdvp3/bu05b2ATMk5TSUDp6KA9lJItenYZ9yxo9pIu6o8lO+nqDQaOX67dPCEODfVutIBVxwC2TEr9AAOWnjbApJDuAzl3nmVoiLgGWciTMM6P3wxTetYy4v3QbiBDPq9dO9xJK3Ylj8tP7kymE9X2X/NayBV/a3zmzStI8hXgHajAOCAtcuO3oWkFpaOC1rLo1ZhOF2V8uQedc9mhfYB6VlHk9u8g8/Vc80fR32T3LDDYMnXIMvhhGfTVuX8tXpns8RAuvTg6GebYPqt3eOYx1tIkhvHPo6zEG5e8s3U1Wv0xJ71DR+F76RGRzP481XTnr+ymRvI6FKdPACPMnmcvz01qynggvH1bAwNxjNFiY3rdcKWh8hYdKYzfQg1t4CH+9WxuiTeSLdNdoFwVneKkAE9OgWsxw6Oessh/+FBkKpemXwcLTOWY9vozgbwmCKoI5yZTT4EytTHOv2zh2PJnyBEXDrlJ9KyLnQOp8gezo+6gAOPdbtTR7Ief3dgHcJZwe+dtXe0rnBUrHDkwdQRn01WXo/E08dgR1JnC8dyKozqks45K6gj73vctS7p9AmxH13WcJZXWB9QMNGNbQXb3kvYPgaj6DKGs7Ti0qSP1agG5NzRSaVz6a+TLZwzKsKBwVCKWMuKdmSYXDp77DQky9ix5DQojwqSOIYi5vP/Yf0BqYrQ7Thy32q7yBJHUMTeBR56Z0J8QiyjyxLOx1WPXgw+iV33zjK4fFAi8SOxc3a9oKC4rHoRePQptYNx0vnFI1QCzxYeR2fmnYCHDtvybOZk2ppW7Wd8H93lo4DBGeWOFpyxrgQnwgpG3FX7f64HvOkWnQP6ZkPHag5t2rJzJN6rsfKdI0+7FlBG1V5Y/XpRZxI5HBElOD0eZK0SlrxwPWpvnz0WrcyCjmDbS1AeUfTt2s0tNDn22Jqv8hpMsZl4Z/hOETsSiVco2C3/DL7+nNrughusYhZ0vg6EUX/h6u4Fo3DkgsXTazGQwXimLsvJkeFAoam7g10nyJVXT0RsAxkMS987lgtaodI8FLAByeGz5gCQXsWg84LOgM59rfBx7K0T6K40uf8JC8M4gAy+JzKg0+vI6HSgMCaRdt4Jkk9cPgEAZKQS8+izfep0NA9eBx/rIFsk1J5bkldOfRDRMsijR0sGdPbvE8s77TNpEztpJMnh04YZAH4LFlIwp9Cm7504dBBiask8CVUY3/3o0ZuwJUIKj9F9memULpIkJ/2Fg5rn37+2vYNQ10FtcGNWdOKZJ0j8MN+S5OQPZw0bh42I1OauXUqRSe7EmyQ8VIf6t0KQJGcuWTzpQNnhFrkpJIn36bL5nxXLPB+XkqcuhHofdsPIS9/sWVoQ/hxTiNcy6HeabyrRid/zJE8o6DBmy92vL771T9e1lgqstRd1Br2yQtwnHs06SjsRbMC/7V4zTvz95U99sHDtDm+Nu5s2bTp9x8WkgxCXMGCdpa0TgdDcKNvWMo8py/KU7eLSUVDvlmqr/pA+k9PMQo6DfVw6kJjA9Lt6bXX6dB5DbDoI8TYFiy/BC6Fq2xYJGoHOKHjEloeZQdEAdG6DQXxJnNkrAzyZX9CP+K64EBMEXeHpvB2VjgJMGZ7dWHQ8lh9E9s6Z5UfhTbi96Hg0P4mYOxIf7Xo6oKQquWcSKQoNx62KTOcYcsnqTafAIU7qXWQ8lj+bAx+ZTkCOGdhaAtSEX64oYt8T/zFL4tcMhCVbDp8oO+Z3aML5V9JpFlOOYxGZzr4UHXPyw65Y/wMAgG+HP4+0LKQEX4ePeSfTBprkoUumru7zBdefzysoHsERkNH3hV35mLztomuWXnDZ+NbVd1AXs7IGQka+4tL1iJOceR8LKc1rYRBJHnPaqDcfcXZcKNXFhLP7gVFzR0He0XW+aKtZRFmefQAUosngtIrz0q2zL4kfUzQWnTdgotP5d2PRcXwGEhHlMVqzgaTJ2RG9U9qgaRhZ7jIn1uLX1Y1UWo4PAyoGnZcbiY7gvTCILI/pvakbyDu/gEQcPP+ha6BQPiSOdyDxZOOUluVDPSvFztbSEjwx9urOfLqGobMYEnEk8VLD0NFcD4M4UvCN0hBaNveDRyyFOLVBctlxLhTiSaG1ufi5XPPHVkKMYMCCqzQ1jSmFnr0awTyWM2v5KGiIWxoheQRvhEdsKcizaRsglK+HRHxJXEpX/NTpfSdqvDd/V8Frq7SKG18eb60sejAL/goSNSnEewU3jyaHwaA2GfyWQbEL6yIPhdrkMejFQiez4D8gUaskXmOxo2cNDGpWiCPothZWJUl8hQHJIm811S6lcE1R8Wjy7zDojjwwt6B4HC8GFLolAz+mmHgEn4RENyURji0iHs150+HRfTxYQqGLZ51rEoADGOBZastiyfJmSCSD51ukKOL6fxLyBjfPY6ALd8qXkEJMf5jaFWnudR08ksODM0ihCzhQTih8Zp9cmPTR3A0GCUqFwLQhxSgvx+GAQqKSwKJ7SO10/ulcUMrkJO0z/njmO39Kr5RJXEYC/xpqSed08aft8WUMMPqKvZhjQJbb7AMP1I3PuKPmt5HUzubSOlckax2vyviEAPoMvGEF8yjNITslbR1lpJTG+M9kjAnbmwDg6f3G5tE6DyTb67TfeRA6adAL/U+9enIOrRNMSZKOgjz50D1PWD7rqt1m77jqzQmzF1713PLzzurrSG61DkIsrfShTZtL63gkKINHKIJgw2dqtRWi9AHSnElwZxgkKo+z6Ipyg3hRROs04K2kgF9LtNcpvTK3GNvbRybfJocYWQjzCJ4KiaTl8dX9qZl3OT7RBIXEFWI5RQHo/AUSyUuhR/73uwUfT945pZslBdkTTF4Kam9a5lkBX4FEfSTxaL47QsuWHvCoG557KAryjqbk5f8fzDbHkfwpFOqnMM93JzTd0zCooyR2ZpDbSP4vJOopBQzOafQIfgNQqKsMFrXR5bPVOb2u1im9blnnsa5GQKLuCvEMXe7wCO4KKNRfEiNzh0fTPgKDFKQMLskbHsFlCJGKlM8bnoDHQymkhmcprWVe5Nh8PgyQHp5bmJuuWWtOgkR6UgZHkSJPpxCpKsT4FgY6F3D2BBTSxtNjLrXLQ+jsA4O0FQLT+KW3jyb/V925xUZRf3H8+7vPTFthuZSy7Cr0Jr1QQgUkBBqIQhMvAQEBsVxaCEG0ovFaxUpAMRKwBpSgCRrUWMQgAor/f5QoEnlQefBBEtEX44sxMYqamBj1mO0snYfGaIKd3+nndV9++cw5Z3a/Z3Z3HSTSxygsYv8As6ATkPCBioDJlpzjPHR+QqDgBwl82kZ8/YR0DAjgCxUBYxu4+hF0dQUMPGIM8OtOIhKWX8ouvoOEX6QCTv5IRI6XIE20ChEABn7+17OGiKxgE25oR+cgwQFpgJKxvxcEkRUsHpoTtAkGTDARgMyzR6eOTP491nm+lysFNigpAaDs/EdfT89e7j3SuQAEYIUyUXyiktHjG5t77xlO2uNHTwN+KCNlrEju9idnYgYGbIkCHMr5k3N9KyS4oiJgJVHoS87WMsZyjMITlWStTzmcC+c3b4VDIXUyliOBN44RCW9yGvjOnMBAPugxMgxpeoarHCWB7fd7zAsFrQYk24GTv+CxcLSjDsBwrZuyF30GqZboMcAwdXNFV73PEN4RnYAKeLqJDpd7XeCEZB+HUeBGIIHM4bu9uqGQ3p6FCMxQxgBl75f7DZa1oIkViBiWDfIr6/26IUfUAWZylDSA+va0Jgqt36iLWgDDTQ2qHllC3pfpIV22ByZg1FAGQFPzWkHkhF83TtOZJjZdFRipANyy/2wpJS3ls6s+Bws5KpB9ZnDtstVziMj/8koLGt4IZRikxfEZ7j1UV2kLagSHnRXVjkGkBr9fAqUGOlEqMPKiF5Tk9++YNomYqCEdUnU3INObKcbIIsaYAP00zbr1+7uyfUock22wIPpgXjr3qj1zq0a0Dqyd1qb8wl0tC9o6S4snYrMnt4JGnUtrHOdP07Brtmx7dPdTNUtr5vfULD31R+1t09bfkHP9808IS2wIidbegcAgJeZm/+4iibhiGOE0LW4GohTzYHWkmoaNKrgIQ1HAOWu1JnZYQXRqBAKT7i5h3lkiYYk3OiTatgiI0o+FD0zk/humguj/4wAZeMkjeuMUi6+b6skP+HpzLBWiDYt51k98qre+9LmSkcCE916J/fBzc/YLIFKet1LP9fmxxActiOiTK5OB49lPob8cJze1GwFjmGw1J7RkiazQPN7fhB3vJm5Y+Il6G8h7g2nhiEb2zEvcsPGDdbWOyDnts2xo/VcjAGnACyUVsPfJ8riAPJWNeHks4lnMD2OAzK52R2RTFqSdIKIP76wCIBWYEkQA9h7ppFhQmmpKH749AIwEV5LN1cIF5SkJ0qKgZlJb80sDWopxAWUaa8ppkDcR2vXpX9G+bDQAaRSGBHGBZw7s2Dp40bLtKxp66IWDMwEYqTCEUPEEGP/qzTf+54a0i82I5T2NzwMwSUcNOUEV2+t2jipebXupirQtBtZ6yWfNVQAgZYAhSXJZr9tX90wpXdK31bR1RTGUa6g5mC/eAhSGNqq4MG6a3XK8c0USzrt/FUPrgpUkyM9tOd61bjNSKJoUCS7W/8zZH782NVudTJD+xN7qfqy1rvhCkovkZqyt6/75plh4CmY8LNfRR8k355uP/nlm68hh9I/Y3JqGNxds2Pf05qIPmUI3+SIwSUMEY6o2nhzXtemdKe33Vb6erS+NmTM8O2P5D21TTs3/pXvVwqsqMskMkyYAe/4CXAp3zpI2i3QAAAAASUVORK5CYII="\n alt="twitter">\n')
})
}), require.register("templates/integrations", function(e, t, s) {
s.exports = Ember.TEMPLATES.integrations = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n, h = "";
return t.buffer.push('\n <li class="media">\n '), a = s["link-to"] || e && e["link-to"], n = {hash: {"class": "pull-left"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},inverse: c.noop,fn: c.program(2, i, t),contexts: [e, e],types: ["STRING", "ID"],data: t}, r = a ? a.call(e, "integration", "", n) : l.call(e, "link-to", "integration", "", n), (r || 0 === r) && t.buffer.push(r), t.buffer.push('\n <div class="media-body">\n '), a = s["link-to"] || e && e["link-to"], n = {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(4, o, t),contexts: [e, e],types: ["STRING", "ID"],data: t}, r = a ? a.call(e, "integration", "", n) : l.call(e, "link-to", "integration", "", n), (r || 0 === r) && t.buffer.push(r), t.buffer.push('\n <h4 class="text-muted integration-subtitle omega">\n '), r = s._triageMustache.call(e, "subtitle", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </h4>\n </div>\n </li>\n "), h
}
function i(e, t) {
var r, a, n = "";
return t.buffer.push('\n <div class="Integrate-image media-object" title="'), t.buffer.push(u(s.unbound.call(e, "title", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('">\n '), t.buffer.push(u((r = s.partial || e && e.partial, a = {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}, r ? r.call(e, "imagePartial", a) : l.call(e, "partial", "imagePartial", a)))), t.buffer.push("\n </div>\n "), n
}
function o(e, t) {
var r, a = "";
return t.buffer.push('\n <h3 class="media-heading">\n '), r = s._triageMustache.call(e, "title", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </h3>\n "), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var h, p = "", u = this.escapeExpression, l = s.helperMissing, c = this;
return a.buffer.push('<div class="pagebody">\n <h1 class="page-title">Integrate fnd into your workflow</h1>\n\n <ul class="integrations list-unstyled">\n '), h = s.each.call(t, {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [],types: [],data: a}), (h || 0 === h) && a.buffer.push(h), a.buffer.push("\n </ul>\n</div>\n"), p
})
}), require.register("templates/integrations/_header", function(e, t, s) {
s.exports = Ember.TEMPLATES["integrations/_header"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
t.buffer.push('\n <i class="fa fa-angle-left subnav-angle"></i>\n <span class="subnav-text">Integrations</span>\n ')
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = this, l = s.helperMissing, c = this.escapeExpression;
return a.buffer.push('<div class="subnav">\n <div class="subnav-left col-xs-12">\n '), o = s["link-to"] || t && t["link-to"], h = {hash: {"class": "btn btn-link",active: !1},hashTypes: {"class": "STRING",active: "BOOLEAN"},hashContexts: {"class": t,active: t},inverse: u.noop,fn: u.program(1, n, a),contexts: [t],types: ["STRING"],data: a}, i = o ? o.call(t, "integrations", h) : l.call(t, "link-to", "integrations", h), (i || 0 === i) && a.buffer.push(i), a.buffer.push('\n </div>\n</div>\n\n<div class="media">\n <div class="media-object pull-left integration-image--lg"\n title="'), a.buffer.push(c(s.unbound.call(t, "title", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}))), a.buffer.push('">\n '), a.buffer.push(c((o = s.partial || t && t.partial, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}, o ? o.call(t, "imagePartial", h) : l.call(t, "partial", "imagePartial", h)))), a.buffer.push('\n </div>\n <div class="media-body">\n <h1 class="media-heading">\n '), i = s._triageMustache.call(t, "title", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push('\n </h1>\n <h3 class="text-muted integration-subtitle">\n '), i = s._triageMustache.call(t, "subtitle", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n </h3>\n </div>\n</div>\n"), p
})
}), require.register("templates/integrations/alfred", function(e, t, s) {
s.exports = Ember.TEMPLATES["integrations/alfred"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "integrations/_header", i) : h.call(t, "partial", "integrations/_header", i)))), a.buffer.push('\n\n<div class="row">\n <div class="col-md-12 l-sp-above">\n <em class="text-muted">\n Note: This workflow requires the phenomenal Mac App,\n <a href="http://www.alfredapp.com/" target="_blank">Alfred</a>.\n </em>\n </div>\n</div>\n\n<div class="row">\n <div class="col-md-12 l-sp-above">\n <h2>Download & Install</h2>\n <p>\n Download the workflow and double click. Afterward, open Alfred type\n <code>fnd angry birds</code> and hit enter. You\'ve just found some great\n avian obesity awareness games.\n </p>\n <a href="/downloads/fnd_workflow.alfredworkflow"\n class="btn btn-primary btn-lg">\n Download fnd Workflow <i class="fa fa-arrow-down"></i>\n </a>\n </div>\n <div class="col-md-12 l-sp-above text-muted">\n Not an Alfred Powerpack owner?\n <a href="alfred://customsearch/Search%20fnd%20for%20%27%7Bquery%7D%27/fnd/utf8/noplus/https://fnd.io/#/search?term={query}&mediaType=all">\n Click here\n </a>\n to install the fnd custom Web Search for Alfred. <em>Note: This link works\n best in Safari</em>.\n </div>\n</div>\n'), o
})
}), require.register("templates/integrations/bookmarklets", function(e, t, s) {
s.exports = Ember.TEMPLATES["integrations/bookmarklets"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s.unless.call(e, "hidden", {hash: {},hashTypes: {},hashContexts: {},inverse: f.noop,fn: f.program(2, i, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n"), a
}
function i(e, t) {
var r, a = "";
return t.buffer.push('\n <div class="row bookmarklet-'), t.buffer.push(m(s.unbound.call(e, "id", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('">\n <div class="col-md-6">\n <h2>'), r = s._triageMustache.call(e, "title", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('</h2>\n <p class="text-muted">\n '), r = s._triageMustache.call(e, "description", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </p>\n "), r = s["if"].call(e, "controller.device.isIos", {hash: {},hashTypes: {},hashContexts: {},inverse: f.program(5, h, t),fn: f.program(3, o, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </div>\n </div>\n "), a
}
function o(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(m((r = s["link-to"] || e && e["link-to"], a = {hash: {"class": "btn btn-primary btn-lg bookmarklet-ios bookmarklet-link"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},contexts: [e, e, e],types: ["ID", "STRING", "ID"],data: t}, r ? r.call(e, "installText", "bookmarklet", "", a) : d.call(e, "link-to", "installText", "bookmarklet", "", a)))), t.buffer.push("\n "), n
}
function h(e, t) {
var r, a = "";
return t.buffer.push('\n <a href="'), t.buffer.push(m(s.unbound.call(e, "code", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('"\n class="btn btn-primary btn-lg bookmarklet-link"\n title="'), t.buffer.push(m(s.unbound.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('">\n '), r = s.unbound.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('\n </a>\n <p class="bookmarklet-explanation">\n Drag the button above into your bookmarks bar.\n </p>\n '), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var p, u, l, c = "", d = s.helperMissing, m = this.escapeExpression, f = this;
return a.buffer.push(m((u = s.partial || t && t.partial, l = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, u ? u.call(t, "integrations/_header", l) : d.call(t, "partial", "integrations/_header", l)))), a.buffer.push("\n\n"), p = s.each.call(t, "bookmarklets", {hash: {},hashTypes: {},hashContexts: {},inverse: f.noop,fn: f.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (p || 0 === p) && a.buffer.push(p), a.buffer.push("\n"), c
})
}), require.register("templates/integrations/launch-center-pro", function(e, t, s) {
s.exports = Ember.TEMPLATES["integrations/launch-center-pro"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "integrations/_header", i) : h.call(t, "partial", "integrations/_header", i)))), a.buffer.push('\n\n<div class="row">\n <div class="col-md-12 l-sp-above">\n <em class="text-muted">\n Note: These actions require the fabulous iPhone / iPad app,\n <a href="http://contrast.co/launch-center-pro/" target="_blank">\n Launch Center Pro</a>.\n </em>\n </div>\n</div>\n\n<div class="row">\n <div class="col-md-12">\n <h2>Search All</h2>\n <p>Tap the button below to add the action to Launch Center Pro.</p>\n <a '), a.buffer.push(p(s["bind-attr"].call(t, {hash: {href: "controller.launchCenterProAllSearch"},hashTypes: {href: "ID"},hashContexts: {href: t},contexts: [],types: [],data: a}))), a.buffer.push('\n class="integration-btn btn btn-primary btn-lg"\n >Add &ldquo;Search fnd&rdquo; to Launch Center Pro</a>\n </div>\n</div>\n\n<div class="row">\n <div class="col-md-12">\n <h2>Search by Category</h2>\n <p>\n Pre-select the type of media (e.g. Apps) you want to search.\n </p>\n <p>Tap the button below to add the action to Launch Center Pro.</p>\n <a '), a.buffer.push(p(s["bind-attr"].call(t, {hash: {href: "controller.launchCenterProMediaSearch"},hashTypes: {href: "ID"},hashContexts: {href: t},contexts: [],types: [],data: a}))), a.buffer.push('\n class="integration-btn btn btn-primary btn-lg"\n >Add &ldquo;Search fnd by Category&rdquo; to Launch Center Pro</a>\n </div>\n</div>\n'), o
})
}), require.register("templates/ios_universal_app", function(e, t, s) {
s.exports = Ember.TEMPLATES.ios_universal_app = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "app", i) : h.call(t, "partial", "app", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/ipad_app", function(e, t, s) {
s.exports = Ember.TEMPLATES.ipad_app = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "app", i) : h.call(t, "partial", "app", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/iphone_app", function(e, t, s) {
s.exports = Ember.TEMPLATES.iphone_app = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "app", i) : h.call(t, "partial", "app", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/itunes_item/_app_header", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_app_header"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_header", i) : h.call(t, "partial", "itunes_item/_header", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/review_toggle", i) : h.call(t, "partial", "itunes_item/review_toggle", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/itunes_item/_header", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_header"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r = "";
return t.buffer.push('\n <div class="dev-json">\n <a '), t.buffer.push(u(s["bind-attr"].call(e, {hash: {href: "lookupURL"},hashTypes: {href: "ID"},hashContexts: {href: e},contexts: [],types: [],data: t}))), t.buffer.push(' class="btn btn-default btn-xs" target="_blank">\n JSON <i class="fa fa-external-link"></i>\n </a>\n </div>\n'), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = this.escapeExpression, l = s.helperMissing, c = this;
return a.buffer.push('<div class="row ii-header">\n <div class="ii-title col-xs-12">\n <div class="media">\n <div class="pull-left">\n <div '), a.buffer.push(u(s["bind-attr"].call(t, {hash: {"class": ":ii-icon-wrapper :media-object cssClass"},hashTypes: {"class": "STRING"},hashContexts: {"class": t},contexts: [],types: [],data: a}))), a.buffer.push(">\n <img "), a.buffer.push(u(s["bind-attr"].call(t, {hash: {"class": ":ii-icon cssClass",src: "imageUrl",alt: "name"},hashTypes: {"class": "STRING",src: "ID",alt: "ID"},hashContexts: {"class": t,src: t,alt: t},contexts: [],types: [],data: a}))), a.buffer.push(' />\n <div class="text-muted text-center ii-metadata3">\n '), a.buffer.push(u((o = s.partial || t && t.partial, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}, o ? o.call(t, "metadata3Template", h) : l.call(t, "partial", "metadata3Template", h)))), a.buffer.push('\n </div>\n </div>\n </div>\n <div class="media-body">\n <div class="row">\n <h1 class="page-title media-heading col-xs-8 col-sm-10 beta">\n '), a.buffer.push(u((o = s["ii-name"] || t && t["ii-name"], h = {hash: {title: "name",subtitle: "subtitle","class": "ii-name",allowFullName: !0},hashTypes: {title: "ID",subtitle: "ID","class": "STRING",allowFullName: "BOOLEAN"},hashContexts: {title: t,subtitle: t,"class": t,allowFullName: t},contexts: [],types: [],data: a}, o ? o.call(t, h) : l.call(t, "ii-name", h)))), a.buffer.push('\n </h1>\n <div class="col-xs-4 col-sm-2 ii-action-wrapper">\n <div class="ii-action ii-action--sm">\n '), a.buffer.push(u((o = s["itunes-button"] || t && t["itunes-button"], h = {hash: {url: "affiliateUrl",text: "actionText",availability: "availability",badgeTemplate: "badgeTemplate"},hashTypes: {url: "ID",text: "ID",availability: "ID",badgeTemplate: "ID"},hashContexts: {url: t,text: t,availability: t,badgeTemplate: t},contexts: [],types: [],data: a}, o ? o.call(t, h) : l.call(t, "itunes-button", h)))), a.buffer.push('\n </div>\n </div>\n </div>\n <div class="row">\n <div class="col-xs-12 text-muted">\n '), a.buffer.push(u((o = s.partial || t && t.partial, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}, o ? o.call(t, "metadata1Template", h) : l.call(t, "partial", "metadata1Template", h)))), a.buffer.push('\n </div>\n </div>\n </div> <!-- media-body -->\n </div>\n </div>\n</div>\n\n<div class="text-muted">\n '), a.buffer.push(u((o = s.partial || t && t.partial, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}, o ? o.call(t, "metadata2Template", h) : l.call(t, "partial", "metadata2Template", h)))), a.buffer.push("\n</div>\n\n"), i = s["if"].call(t, "env.isDevelopment", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n"), p
})
}), require.register("templates/itunes_item/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push('<div class="text-muted">\n '), n = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("templates/itunes_item/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n = "";
return n
})
}), require.register("templates/itunes_item/_metadata2", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_metadata2"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push('\n <div class="row">\n <div class="col-xs-12">\n '), t.buffer.push(p((r = s.partial || e && e.partial, a = {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["STRING"],data: t}, r ? r.call(e, "itunes_item/release_date", a) : h.call(e, "partial", "itunes_item/release_date", a)))), t.buffer.push("\n </div>\n </div>\n"), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o = "", h = s.helperMissing, p = this.escapeExpression, u = this;
return i = s["if"].call(t, "releaseDate", {hash: {},hashTypes: {},hashContexts: {},inverse: u.noop,fn: u.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n"), o
})
}), require.register("templates/itunes_item/_metadata3", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_metadata3"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n = "";
return n
})
}), require.register("templates/itunes_item/_release_date", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_release_date"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push('<span class="text-muted">\n Released '), n = s._triageMustache.call(t, "fromReleaseDate", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" ("), n = s._triageMustache.call(t, "formattedReleaseDate", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(")\n</span>\n"), i
})
}), require.register("templates/itunes_item/_review_header", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_review_header"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_header", i) : h.call(t, "partial", "itunes_item/_header", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/review_toggle", i) : h.call(t, "partial", "itunes_item/review_toggle", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/itunes_item/_review_toggle", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_review_toggle"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r = "";
return t.buffer.push('\n <div class="row">\n <div class="col-xs-12">\n <div class="btn-group l-sp-above">\n <a '), t.buffer.push(u(s["bind-attr"].call(e, {hash: {"class": "isShowingReviews::active :btn :btn-default"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},contexts: [],types: [],data: t}))), t.buffer.push("\n "), t.buffer.push(u(s.action.call(e, "showDetails", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('\n href="#">\n Details\n </a>\n <a '), t.buffer.push(u(s["bind-attr"].call(e, {hash: {"class": "isShowingReviews:active :btn :btn-default"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},contexts: [],types: [],data: t}))), t.buffer.push("\n "), t.buffer.push(u(s.action.call(e, "showReviews", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('\n href="#">\n Reviews\n </a>\n </div>\n </div>\n </div>\n'), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = this.escapeExpression, l = this, c = "function", d = s.blockHelperMissing;
return h = {hash: {},hashTypes: {},hashContexts: {},inverse: l.noop,fn: l.program(1, n, a),contexts: [],types: [],data: a}, (o = s.group) ? i = o.call(t, h) : (o = t && t.group, i = typeof o === c ? o.call(t, h) : o), s.group || (i = d.call(t, "group", {hash: {},hashTypes: {},hashContexts: {},inverse: l.noop,fn: l.program(1, n, a),contexts: [],types: [],data: a})), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n"), p
})
}), require.register("templates/itunes_item/_reviews", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_reviews"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s["itunes-reviews"] || t && t["itunes-reviews"], i = {hash: {model: ""},hashTypes: {model: "ID"},hashContexts: {model: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "itunes-reviews", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/itunes_item/_subnav", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_subnav"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n, o = "";
return t.buffer.push("\n "), a = s["link-to"] || e && e["link-to"], n = {hash: {"class": "btn btn-link"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},inverse: c.noop,fn: c.program(2, i, t),contexts: [e, e],types: ["ID", "ID"],data: t}, r = a ? a.call(e, "backRouteName", "backModel", n) : d.call(e, "link-to", "backRouteName", "backModel", n), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), o
}
function i(e, t) {
var r, a = "";
return t.buffer.push('\n <i class="fa fa-angle-left subnav-angle"></i>\n <span class="subnav-text">'), r = s._triageMustache.call(e, "backText", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("</span>\n "), a
}
function o(e, t) {
var r, a, n, o = "";
return t.buffer.push("\n "), a = s["link-to"] || e && e["link-to"], n = {hash: {"class": "btn btn-link"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},inverse: c.noop,fn: c.program(2, i, t),contexts: [e],types: ["ID"],data: t}, r = a ? a.call(e, "backRouteName", n) : d.call(e, "link-to", "backRouteName", n), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), o
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var h, p, u, l = "", c = this, d = s.helperMissing, m = this.escapeExpression;
return a.buffer.push('<div class="subnav-wrapper">\n <div class="subnav">\n <div class="subnav-left col-xs-4">\n '), h = s["if"].call(t, "backModel", {hash: {},hashTypes: {},hashContexts: {},inverse: c.program(4, o, a),fn: c.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (h || 0 === h) && a.buffer.push(h), a.buffer.push('\n </div>\n\n <div class="subnav-right col-xs-8">\n '), a.buffer.push(m((p = s["previous-next"] || t && t["previous-next"], u = {hash: {items: "searchResults",current: "content",isLoading: "isLastAndLoading"},hashTypes: {items: "ID",current: "ID",isLoading: "ID"},hashContexts: {items: t,current: t,isLoading: t},contexts: [],types: [],data: a}, p ? p.call(t, u) : d.call(t, "previous-next", u)))), a.buffer.push("\n </div>\n </div>\n</div>\n"), l
})
}), require.register("templates/itunes_item/_youtube_results", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/_youtube_results"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<hr class="page-divider">\n'), a.buffer.push(p((n = s["youtube-videos"] || t && t["youtube-videos"], i = {hash: {videos: "youtubeResults"},hashTypes: {videos: "ID"},hashContexts: {videos: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "youtube-videos", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/itunes_item/association", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/association"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n, o = "";
return t.buffer.push("\n "), a = s["link-to"] || e && e["link-to"], n = {hash: {"class": "btn btn-link",active: !1},hashTypes: {"class": "STRING",active: "BOOLEAN"},hashContexts: {"class": e,active: e},inverse: c.noop,fn: c.program(2, i, t),contexts: [e, e],types: ["ID", "ID"],data: t}, r = a ? a.call(e, "routeName", "", n) : d.call(e, "link-to", "routeName", "", n), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), o
}
function i(e, t) {
var r, a = "";
return t.buffer.push('\n <i class="fa fa-angle-left subnav-angle"></i>\n <img class="ii-icon ii-icon--xs '), t.buffer.push(l(s.unbound.call(e, "cssClass", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('"\n src="'), t.buffer.push(l(s.unbound.call(e, "imageUrl", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('"\n alt="'), t.buffer.push(l(s.unbound.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}))), t.buffer.push('" />\n <span class="subnav-text">'), r = s._triageMustache.call(e, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("</span>\n "), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var o, h, p, u = "", l = this.escapeExpression, c = this, d = s.helperMissing;
return a.buffer.push('<div class="subnav">\n <div class="subnav-left col-xs-12">\n '), o = s["with"].call(t, "parent", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push('\n </div>\n</div>\n\n<h2 class="beta">'), a.buffer.push(l((h = s.pluralize || t && t.pluralize, p = {hash: {},hashTypes: {},hashContexts: {},contexts: [t, t],types: ["ID", "ID"],data: a}, h ? h.call(t, "fetcher.results", "name", p) : d.call(t, "pluralize", "fetcher.results", "name", p)))), a.buffer.push("</h2>\n\n"), a.buffer.push(l((h = s["paginated-results"] || t && t["paginated-results"], p = {hash: {model: "fetcher",defaultSetsDesired: 2},hashTypes: {model: "ID",defaultSetsDesired: "INTEGER"},hashContexts: {model: t,defaultSetsDesired: t},contexts: [],types: [],data: a}, h ? h.call(t, p) : d.call(t, "paginated-results", p)))), a.buffer.push("\n"), u
})
}), require.register("templates/itunes_item/itunes_item", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/itunes_item"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_youtube_results", i) : h.call(t, "partial", "itunes_item/_youtube_results", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s["itunes-description"] || t && t["itunes-description"], i = {hash: {description: "description"},hashTypes: {description: "ID"},hashContexts: {description: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "itunes-description", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/itunes_item/page", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/page"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.outlet || t && t.outlet, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "header", i) : h.call(t, "outlet", "header", i)))), a.buffer.push("\n"), a.buffer.push(p((n = s.outlet || t && t.outlet, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "body", i) : h.call(t, "outlet", "body", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/itunes_item/screenshots_overlay", function(e, t, s) {
s.exports = Ember.TEMPLATES["itunes_item/screenshots_overlay"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(l((r = s["app-screenshot"] || e && e["app-screenshot"], a = {hash: {screenshot: "",layoutName: "full",tagName: "div",shouldLink: !1},hashTypes: {screenshot: "ID",layoutName: "STRING",tagName: "STRING",shouldLink: "BOOLEAN"},hashContexts: {screenshot: e,layoutName: e,tagName: e,shouldLink: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : u.call(e, "app-screenshot", a)))), t.buffer.push("\n "), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = s.helperMissing, l = this.escapeExpression, c = this;
return a.buffer.push('<div class="overlay overlay--screenshot overlay--whitebg">\n <div class="app-screenshots-overlay">\n <div class="subnav">\n <div class="subnav-center col-xs-8 col-xs-offset-1 col-sm-8 col-sm-offset-2">\n <div class="subnav-title">\n '), i = s._triageMustache.call(t, "name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push(' Screenshots\n </div>\n </div>\n <div class="subnav-right col-xs-3 col-sm-2">\n '), a.buffer.push(l((o = s["link-to"] || t && t["link-to"], h = {hash: {active: !1,"class": "btn btn-link subnav-done",replace: !0},hashTypes: {active: "BOOLEAN","class": "STRING",replace: "BOOLEAN"},hashContexts: {active: t,"class": t,replace: t},contexts: [t, t, t],types: ["STRING", "ID", "ID"],data: a}, o ? o.call(t, "Done", "itunesItem.routeName", "itunesItem", h) : u.call(t, "link-to", "Done", "itunesItem.routeName", "itunesItem", h)))), a.buffer.push('\n </div>\n </div>\n\n <div class="app-screenshots-wrapper">\n <div class="app-screenshots app-screenshots--full">\n '), i = s.each.call(t, "screenshots", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n </div>\n </div>\n </div>\n</div>\n"), p
})
}), require.register("templates/mac_app", function(e, t, s) {
s.exports = Ember.TEMPLATES.mac_app = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "app", i) : h.call(t, "partial", "app", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/menu", function(e, t, s) {
s.exports = Ember.TEMPLATES.menu = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = this.escapeExpression, p = s.helperMissing;
return a.buffer.push("<div "), a.buffer.push(h(s["bind-attr"].call(t, {hash: {"class": "isHome:overlay--full :overlay :overlay--noscroll :overlay--primarybg isHome::container isHome::container--nopadding"},hashTypes: {"class": "STRING"},hashContexts: {"class": t},contexts: [],types: [],data: a}))), a.buffer.push(">\n "), a.buffer.push(h((n = s["fnd-header"] || t && t["fnd-header"], i = {hash: {isMenuOpen: !0,logoClicked: "goHome",buttonClicked: "closeMenu",isTransparent: !0},hashTypes: {isMenuOpen: "BOOLEAN",logoClicked: "STRING",buttonClicked: "STRING",isTransparent: "BOOLEAN"},hashContexts: {isMenuOpen: t,logoClicked: t,buttonClicked: t,isTransparent: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : p.call(t, "fnd-header", i)))), a.buffer.push('\n\n <ul class="main-menu">\n <li '), a.buffer.push(h(s.action.call(t, "closeMenu", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}))), a.buffer.push(">"), a.buffer.push(h((n = s["link-to"] || t && t["link-to"], i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t, t],types: ["STRING", "STRING"],data: a}, n ? n.call(t, "Home", "home", i) : p.call(t, "link-to", "Home", "home", i)))), a.buffer.push("</li>\n <li "), a.buffer.push(h(s.action.call(t, "closeMenu", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}))), a.buffer.push(">"), a.buffer.push(h((n = s["link-to"] || t && t["link-to"], i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t, t],types: ["STRING", "STRING"],data: a}, n ? n.call(t, "Charts", "charts", i) : p.call(t, "link-to", "Charts", "charts", i)))), a.buffer.push("</li>\n <li "), a.buffer.push(h(s.action.call(t, "closeMenu", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}))), a.buffer.push(">"), a.buffer.push(h((n = s["link-to"] || t && t["link-to"], i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t, t],types: ["STRING", "STRING"],data: a}, n ? n.call(t, "Integrations", "integrations", i) : p.call(t, "link-to", "Integrations", "integrations", i)))), a.buffer.push("</li>\n <li "), a.buffer.push(h(s.action.call(t, "closeMenu", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}))), a.buffer.push(">"), a.buffer.push(h((n = s["link-to"] || t && t["link-to"], i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t, t],types: ["STRING", "STRING"],data: a}, n ? n.call(t, "About", "about", i) : p.call(t, "link-to", "About", "about", i)))), a.buffer.push("</li>\n </ul>\n</div>\n"), o
})
}), require.register("templates/missing", function(e, t, s) {
s.exports = Ember.TEMPLATES.missing = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o, h = "", p = s.helperMissing, u = this.escapeExpression;
return a.buffer.push('<div class="pagebody text-center">\n <div class="l-sp-above--lg l-pad-v">\n <h1>No page found.</h1>\n <p>Sorry about that.</p>\n </div>\n\n <div>\n <p>You were looking for:</p>\n <p>\n <code class="text-wrap">'), n = s._triageMustache.call(t, "url", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push('</code>\n </p>\n </div>\n\n <div class="l-sp-above--lg">\n '), a.buffer.push(u((i = s["link-to"] || t && t["link-to"], o = {hash: {"class": "btn btn-primary btn-responsive--lg"},hashTypes: {"class": "STRING"},hashContexts: {"class": t},contexts: [t, t],types: ["STRING", "STRING"],data: a}, i ? i.call(t, "Go home", "home", o) : p.call(t, "link-to", "Go home", "home", o)))), a.buffer.push("\n </div>\n\n "), a.buffer.push(u((i = s.partial || t && t.partial, o = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, i ? i.call(t, "help", o) : p.call(t, "partial", "help", o)))), a.buffer.push("\n</div>\n"), h
})
}), require.register("templates/movie", function(e, t, s) {
s.exports = Ember.TEMPLATES.movie = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s["itunes-description"] || t && t["itunes-description"], i = {hash: {description: "description"},hashTypes: {description: "ID"},hashContexts: {description: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "itunes-description", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_youtube_results", i) : h.call(t, "partial", "itunes_item/_youtube_results", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/movie/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["movie/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push("<div>\n "), n = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" by "), n = s._triageMustache.call(t, "artistName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n<div>\n "), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("templates/movie/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["movie/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o, h = "", p = s.helperMissing, u = this.escapeExpression;
return a.buffer.push('<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" by\n "), a.buffer.push(u((i = s["ii-creator"] || t && t["ii-creator"], o = {hash: {creatorKey: "studio",parent: "model"},hashTypes: {creatorKey: "STRING",parent: "ID"},hashContexts: {creatorKey: t,parent: t},contexts: [],types: [],data: a}, i ? i.call(t, o) : p.call(t, "ii-creator", o)))), a.buffer.push('\n</div>\n\n<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push('\n</div>\n\n<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "trackTimeFormatted", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), h
})
}), require.register("templates/movie/_metadata3", function(e, t, s) {
s.exports = Ember.TEMPLATES["movie/_metadata3"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r = "";
return t.buffer.push("\n <a "), t.buffer.push(h(s["bind-attr"].call(e, {hash: {href: "previewUrl",download: "downloadFileName",title: "downloadFileName"},hashTypes: {href: "ID",download: "ID",title: "ID"},hashContexts: {href: e,download: e,title: e},contexts: [],types: [],data: t}))), t.buffer.push(">\n Download Trailer\n </a>\n"), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o = "", h = this.escapeExpression, p = this;
return i = s["if"].call(t, "previewUrl", {hash: {},hashTypes: {},hashContexts: {},inverse: p.noop,fn: p.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n"), o
})
}), require.register("templates/music_video", function(e, t, s) {
s.exports = Ember.TEMPLATES.music_video = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_youtube_results", i) : h.call(t, "partial", "itunes_item/_youtube_results", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/music_video/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["music_video/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "song/ii_metadata", i) : h.call(t, "partial", "song/ii_metadata", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/music_video/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["music_video/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "song/metadata1", i) : h.call(t, "partial", "song/metadata1", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/music_video/_metadata3", function(e, t, s) {
s.exports = Ember.TEMPLATES["music_video/_metadata3"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r = "";
return t.buffer.push("\n <a "), t.buffer.push(h(s["bind-attr"].call(e, {hash: {href: "previewUrl",download: "downloadFileName",title: "downloadFileName"},hashTypes: {href: "ID",download: "ID",title: "ID"},hashContexts: {href: e,download: e,title: e},contexts: [],types: [],data: t}))), t.buffer.push(">\n Download Preview\n </a>\n"), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o = "", h = this.escapeExpression, p = this;
return i = s["if"].call(t, "previewUrl", {hash: {},hashTypes: {},hashContexts: {},inverse: p.noop,fn: p.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n"), o
})
}), require.register("templates/podcast", function(e, t, s) {
s.exports = Ember.TEMPLATES.podcast = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<hr class="page-divider"/>\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "podcast-episodes",parent: "model"},hashTypes: {mediaTypeId: "STRING",parent: "ID"},hashContexts: {mediaTypeId: t,parent: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push('\n\n<hr class="page-divider"/>\n\n'), a.buffer.push(p((n = s["youtube-videos"] || t && t["youtube-videos"], i = {hash: {videos: "youtubeResults"},hashTypes: {videos: "ID"},hashContexts: {videos: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "youtube-videos", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/podcast/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["podcast/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push("<div>\n "), n = s._triageMustache.call(t, "mediaType.shortNameOrName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" by "), n = s._triageMustache.call(t, "podcasterName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n<div>\n "), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("templates/podcast/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["podcast/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o, h = "", p = s.helperMissing, u = this.escapeExpression;
return a.buffer.push('<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" by\n "), a.buffer.push(u((i = s["ii-creator"] || t && t["ii-creator"], o = {hash: {creatorKey: "podcaster",parent: "model"},hashTypes: {creatorKey: "STRING",parent: "ID"},hashContexts: {creatorKey: t,parent: t},contexts: [],types: [],data: a}, i ? i.call(t, o) : p.call(t, "ii-creator", o)))), a.buffer.push('\n</div>\n<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), h
})
}), require.register("templates/podcast/_metadata2", function(e, t, s) {
s.exports = Ember.TEMPLATES["podcast/_metadata2"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push('\n <div class="row">\n <div class="col-xs-12">\n Latest Episode\n '), t.buffer.push(p((r = s.partial || e && e.partial, a = {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["STRING"],data: t}, r ? r.call(e, "itunes_item/release_date", a) : h.call(e, "partial", "itunes_item/release_date", a)))), t.buffer.push("\n </div>\n </div>\n"), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o = "", h = s.helperMissing, p = this.escapeExpression, u = this;
return i = s["if"].call(t, "releaseDate", {hash: {},hashTypes: {},hashContexts: {},inverse: u.noop,fn: u.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n"), o
})
}), require.register("templates/podcaster", function(e, t, s) {
s.exports = Ember.TEMPLATES.podcaster = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "podcasts",parent: "model"},hashTypes: {mediaTypeId: "STRING",parent: "ID"},hashContexts: {mediaTypeId: t,parent: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/results/many", function(e, t, s) {
s.exports = Ember.TEMPLATES["results/many"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push('\n <div class="results results--many">\n '), r = s["if"].call(e, "noResults", {hash: {},hashTypes: {},hashContexts: {},inverse: E.program(4, o, t),fn: E.program(2, i, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </div>\n"), a
}
function i(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(I((r = s["no-results"] || e && e["no-results"], a = {hash: {model: "fetcher",search: "model",didYouMean: "didYouMean",searchTerm: "searchTerm",alternateSearches: "alternateSearches"},hashTypes: {model: "ID",search: "ID",didYouMean: "ID",searchTerm: "ID",alternateSearches: "ID"},hashContexts: {model: e,search: e,didYouMean: e,searchTerm: e,alternateSearches: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : T.call(e, "no-results", a)))), t.buffer.push("\n "), n
}
function o(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "allDoneSearching", {hash: {},hashTypes: {},hashContexts: {},inverse: E.program(17, g, t),fn: E.program(5, h, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function h(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s.each.call(e, "fetchers", {hash: {},hashTypes: {},hashContexts: {},inverse: E.noop,fn: E.program(6, p, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function p(e, t) {
var r, a = "";
return t.buffer.push("\n "), r = s["if"].call(e, "isSearchingFirst", {hash: {},hashTypes: {},hashContexts: {},inverse: E.program(9, l, t),fn: E.program(7, u, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n\n "), r = s["if"].call(e, "hasResults", {hash: {},hashTypes: {},hashContexts: {},inverse: E.noop,fn: E.program(14, m, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n\n <hr "), t.buffer.push(I(s["bind-attr"].call(e, {hash: {"class": ":page-divider hasResults::page-divider--sm"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},contexts: [],types: [],data: t}))), t.buffer.push("/>\n "), a
}
function u(e, t) {
var r, a = "";
return t.buffer.push('\n <p class="text-muted">Loading '), r = s._triageMustache.call(e, "model.pluralSearchName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("...</p>\n "), a
}
function l(e, t) {
var r, a = "";
return t.buffer.push('\n <div class="row">\n <div class="col-xs-12">\n '), r = s["if"].call(e, "hasResults", {hash: {},hashTypes: {},hashContexts: {},inverse: E.programWithDepth(12, d, t, e),fn: E.program(10, c, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </div>\n </div>\n "), a
}
function c(e, t) {
var r, a, n, i = "";
return t.buffer.push('\n <h2 class="results-heading gamma">'), r = s._triageMustache.call(e, "model.pluralSearchName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('</h2>\n <ul class="ii-list media-list">\n '), t.buffer.push(I((a = s["ii-set"] || e && e["ii-set"], n = {hash: {set: "firstResultSet"},hashTypes: {set: "ID"},hashContexts: {set: e},contexts: [],types: [],data: t}, a ? a.call(e, n) : T.call(e, "ii-set", n)))), t.buffer.push("\n </ul>\n "), i
}
function d(e, t, r) {
var a, n = "";
return t.buffer.push('\n <p class="text-muted l-sp-above--sm">\n No results in '), a = s._triageMustache.call(e, "model.pluralSearchName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (a || 0 === a) && t.buffer.push(a), t.buffer.push(" for\n &ldquo;"), a = s._triageMustache.call(e, "searchTerm", {hash: {},hashTypes: {},hashContexts: {},contexts: [r],types: ["ID"],data: t}), (a || 0 === a) && t.buffer.push(a), t.buffer.push("&rdquo;.\n </p>\n "), n
}
function m(e, t) {
var r, a, n, i = "";
return t.buffer.push('\n <div class="row">\n <div class="col-xs-12">\n '), a = s["query-params"] || e && e["query-params"], n = {hash: {mediaType: "model.mediaType.id"},hashTypes: {mediaType: "ID"},hashContexts: {mediaType: e},contexts: [],types: [],data: t}, r = a ? a.call(e, n) : T.call(e, "query-params", n), a = s["link-to"] || e && e["link-to"], n = {hash: {"class": "search-more"},hashTypes: {"class": "STRING"},hashContexts: {"class": e},inverse: E.noop,fn: E.program(15, f, t),contexts: [e, e],types: ["STRING", "sexpr"],data: t}, r = a ? a.call(e, "search", r, n) : T.call(e, "link-to", "search", r, n), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </div>\n </div>\n "), i
}
function f(e, t) {
var r, a = "";
return t.buffer.push("\n More "), r = s._triageMustache.call(e, "model.pluralSearchName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('\n <i class="fa fa-angle-right"></i>\n '), a
}
function g(e, t) {
var r, a, n, i = "";
return t.buffer.push('\n <div class="row">\n <div class="col-xs-12 text-center">\n '), a = s["loading-button"] || e && e["loading-button"], n = {hash: {text: "",padding: !0},hashTypes: {text: "STRING",padding: "BOOLEAN"},hashContexts: {text: e,padding: e},inverse: E.noop,fn: E.program(18, b, t),contexts: [],types: [],data: t}, r = a ? a.call(e, n) : T.call(e, "loading-button", n), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n </div>\n </div>\n "), i
}
function b(e, t) {
var r, a = "";
return t.buffer.push("\n Loading "), r = s._triageMustache.call(e, "firstSearchingFetcher.model.pluralSearchName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("...\n "), a
}
function y(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(I((r = s.partial || e && e.partial, a = {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["STRING"],data: t}, r ? r.call(e, "search/no_term", a) : T.call(e, "partial", "search/no_term", a)))), t.buffer.push("\n"), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var v, x = "", T = s.helperMissing, I = this.escapeExpression, E = this;
return v = s["if"].call(t, "hasSearchTerm", {hash: {},hashTypes: {},hashContexts: {},inverse: E.program(20, y, a),fn: E.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (v || 0 === v) && a.buffer.push(v), a.buffer.push("\n"), x
})
}), require.register("templates/results/single", function(e, t, s) {
s.exports = Ember.TEMPLATES["results/single"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(u((r = s["paginated-search"] || e && e["paginated-search"], a = {hash: {model: "fetcher",searchTerm: "searchTerm",search: "search"},hashTypes: {model: "ID",searchTerm: "ID",search: "STRING"},hashContexts: {model: e,searchTerm: e,search: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : p.call(e, "paginated-search", a)))), t.buffer.push("\n"), n
}
function i(e, t) {
var r, a, n = "";
return t.buffer.push("\n "), t.buffer.push(u((r = s.partial || e && e.partial, a = {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["STRING"],data: t}, r ? r.call(e, "search/no_term", a) : p.call(e, "partial", "search/no_term", a)))), t.buffer.push("\n"), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var o, h = "", p = s.helperMissing, u = this.escapeExpression, l = this;
return o = s["if"].call(t, "hasSearchTerm", {hash: {},hashTypes: {},hashContexts: {},inverse: l.program(3, i, a),fn: l.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push("\n"), h
})
}), require.register("templates/search", function(e, t, s) {
s.exports = Ember.TEMPLATES.search = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s["minor-searches"] || t && t["minor-searches"], i = {hash: {model: "minorSearchTypes"},hashTypes: {model: "ID"},hashContexts: {model: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "minor-searches", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s.outlet || t && t.outlet, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "results", i) : h.call(t, "outlet", "results", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/search/_header", function(e, t, s) {
s.exports = Ember.TEMPLATES["search/_header"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push('\n <span class="text-faded">Searched for </span>\n &ldquo;'), r = s._triageMustache.call(e, "searchTerm", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push('&rdquo;\n <span class="text-faded">in '), r = s._triageMustache.call(e, "pluralName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push(".</span>\n "), r = s["if"].call(e, "fetcher.didYouMean.suggestion", {hash: {tagName: "span"},hashTypes: {tagName: "STRING"},hashContexts: {tagName: e},inverse: d.noop,fn: d.program(2, i, t),contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
function i(e, t) {
var r, a, n = "";
return t.buffer.push('\n <span class="text-wraptogether">\n '), t.buffer.push(c((r = s["did-you-mean"] || e && e["did-you-mean"], a = {hash: {term: "fetcher.didYouMean.suggestion",tagName: "span",linkClass: "text-white text-underline"},hashTypes: {term: "ID",tagName: "STRING",linkClass: "STRING"},hashContexts: {term: e,tagName: e,linkClass: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : l.call(e, "did-you-mean", a)))), t.buffer.push("\n </span>\n "), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var o, h, p, u = "", l = s.helperMissing, c = this.escapeExpression, d = this;
return a.buffer.push('<div class="fnd-search-header text-white">\n '), a.buffer.push(c((h = s["fnd-header"] || t && t["fnd-header"], p = {hash: {isMenuOpen: !1,logoClicked: "goHome",buttonClicked: "showMenu",isTransparent: !0,isUnderline: !0,noMargin: !0},hashTypes: {isMenuOpen: "BOOLEAN",logoClicked: "STRING",buttonClicked: "STRING",isTransparent: "BOOLEAN",isUnderline: "BOOLEAN",noMargin: "BOOLEAN"},hashContexts: {isMenuOpen: t,logoClicked: t,buttonClicked: t,isTransparent: t,isUnderline: t,noMargin: t},contexts: [],types: [],data: a}, h ? h.call(t, p) : l.call(t, "fnd-header", p)))), a.buffer.push('\n\n <div class="fnd-search-header-item">\n '), a.buffer.push(c((h = s["fnd-search"] || t && t["fnd-search"], p = {hash: {value: "controller.newSearchTerm",action: "search",placeholder: "model.placeholderText","class": "fnd-search--regular"},hashTypes: {value: "ID",action: "STRING",placeholder: "ID","class": "STRING"},hashContexts: {value: t,action: t,placeholder: t,"class": t},contexts: [],types: [],data: a}, h ? h.call(t, p) : l.call(t, "fnd-search", p)))), a.buffer.push('\n </div>\n\n <div class="l-sp-below fnd-search-header-item">\n '), o = s["if"].call(t, "searchTerm", {hash: {},hashTypes: {},hashContexts: {},inverse: d.noop,fn: d.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (o || 0 === o) && a.buffer.push(o), a.buffer.push('\n </div>\n\n <div class="l-sp-below fnd-search-header-item">\n '), a.buffer.push(c((h = s["major-searches"] || t && t["major-searches"], p = {hash: {all: "majorSearchTypes",extra: "extraMajorSearchTypes",isExtraActive: "isExtraActive"},hashTypes: {all: "ID",extra: "ID",isExtraActive: "ID"},hashContexts: {all: t,extra: t,isExtraActive: t},contexts: [],types: [],data: a}, h ? h.call(t, p) : l.call(t, "major-searches", p)))), a.buffer.push("\n </div>\n</div>\n"), u
})
}), require.register("templates/search/_no_term", function(e, t, s) {
s.exports = Ember.TEMPLATES["search/_no_term"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<div class="l-pad-v--100 text-center text-muted">\n &ldquo;To receive, you must first give.&rdquo;\n <p>\n <em>&mdash; Lazy Developer</em>\n </p>\n</div>\n')
})
}), require.register("templates/software_developer", function(e, t, s) {
s.exports = Ember.TEMPLATES.software_developer = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "apps",parent: "model"},hashTypes: {mediaTypeId: "STRING",parent: "ID"},hashContexts: {mediaTypeId: t,parent: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/song", function(e, t, s) {
s.exports = Ember.TEMPLATES.song = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r = "";
return t.buffer.push('\n <hr class="page-divider">\n <div class="row">\n <div class="col-xs-12"><h3>Preview</h3></div>\n <div class="col-xs-12">\n <audio '), t.buffer.push(u(s["bind-attr"].call(e, {hash: {src: "previewUrl"},hashTypes: {src: "ID"},hashContexts: {src: e},contexts: [],types: [],data: t}))), t.buffer.push(' preload="none" controls="controls"\n class="track-preview"></audio>\n </div>\n </div>\n'), r
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = this.escapeExpression, l = this, c = s.helperMissing;
return i = s["if"].call(t, "previewUrl", {hash: {},hashTypes: {},hashContexts: {},inverse: l.noop,fn: l.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n\n"), a.buffer.push(u((o = s.partial || t && t.partial, h = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, o ? o.call(t, "itunes_item/_youtube_results", h) : c.call(t, "partial", "itunes_item/_youtube_results", h)))), a.buffer.push("\n"), p
})
}), require.register("templates/song/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["song/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push("on "), r = s._triageMustache.call(e, "albumName", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o = "", h = this;
return a.buffer.push("<div>\n "), i = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n "), i = s["if"].call(t, "albumName", {hash: {},hashTypes: {},hashContexts: {},inverse: h.noop,fn: h.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n by "), i = s._triageMustache.call(t, "artistName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n</div>\n<div>\n "), i = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n</div>\n"), o
})
}), require.register("templates/song/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["song/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a, n = "";
return t.buffer.push("\n on\n "), t.buffer.push(l((r = s["ii-creator"] || e && e["ii-creator"], a = {hash: {creatorKey: "album",parent: "model"},hashTypes: {creatorKey: "STRING",parent: "ID"},hashContexts: {creatorKey: e,parent: e},contexts: [],types: [],data: t}, r ? r.call(e, a) : u.call(e, "ii-creator", a)))), t.buffer.push("\n "), n
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = s.helperMissing, l = this.escapeExpression, c = this;
return a.buffer.push('<div class="ii-metadata1-row">\n '), i = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n "), i = s["if"].call(t, "album", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n by\n "), a.buffer.push(l((o = s["ii-creator"] || t && t["ii-creator"], h = {hash: {creatorKey: "artist",parent: "model"},hashTypes: {creatorKey: "STRING",parent: "ID"},hashContexts: {creatorKey: t,parent: t},contexts: [],types: [],data: a}, o ? o.call(t, h) : u.call(t, "ii-creator", h)))), a.buffer.push('\n</div>\n<div class="ii-metadata1-row">\n '), i = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n</div>\n"), p
})
}), require.register("templates/studio", function(e, t, s) {
s.exports = Ember.TEMPLATES.studio = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "movies",parent: "model"},hashTypes: {mediaTypeId: "STRING",parent: "ID"},hashContexts: {mediaTypeId: t,parent: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/svg/badges/book", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/badges/book"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<?xml version="1.0" encoding="utf-8"?>\n<!-- Generator: Adobe Illustrator 16.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n width="45px" height="15px" viewBox="0 0 45 15" enable-background="new 0 0 45 15" xml:space="preserve">\n <g>\n <path fill="#FFFFFF" d="M44.664,13.223c0,0.795-0.642,1.439-1.436,1.439L1.773,14.667c-0.794,0-1.44-0.644-1.44-1.438V1.771\n c0-0.793,0.646-1.438,1.44-1.438l41.455-0.005c0.794,0,1.437,0.645,1.437,1.438L44.664,13.223L44.664,13.223z"/>\n <path fill="#A6A6A6" d="M43.229,14.994L1.773,15C0.796,15,0,14.206,0,13.229V1.772C0,0.795,0.796,0,1.773,0l41.455-0.005\n C44.204-0.005,45,0.79,45,1.767v11.456C45,14.201,44.204,14.994,43.229,14.994L43.229,14.994z"/>\n <path fill="#010101" d="M44.664,13.223c0,0.795-0.642,1.439-1.436,1.439L1.773,14.667c-0.794,0-1.44-0.644-1.44-1.438V1.771\n c0-0.793,0.646-1.438,1.44-1.438l41.455-0.005c0.794,0,1.437,0.645,1.437,1.438L44.664,13.223L44.664,13.223z"/>\n <g>\n <path fill="#FFFFFF" d="M8.761,3.915c0,0.212-0.069,0.385-0.209,0.517C8.413,4.563,8.233,4.629,8.013,4.629\n c-0.197,0-0.365-0.068-0.5-0.204C7.379,4.29,7.31,4.12,7.31,3.915c0-0.206,0.07-0.374,0.208-0.506\n c0.14-0.132,0.312-0.198,0.517-0.198c0.205,0,0.378,0.066,0.517,0.198C8.691,3.541,8.761,3.709,8.761,3.915z M8.629,10.852H7.442\n V5.508h1.187V10.852z"/>\n <path fill="#FFFFFF" d="M15.229,8.723c0,0.602-0.224,1.098-0.669,1.492c-0.514,0.461-1.392,0.691-2.637,0.691\n c-0.571,0-1.091-0.029-1.56-0.088V3.541c0.497-0.103,1.11-0.154,1.84-0.154c0.905,0,1.591,0.165,2.055,0.494\n c0.463,0.329,0.695,0.783,0.695,1.361c0,0.352-0.107,0.672-0.321,0.96c-0.214,0.289-0.514,0.503-0.898,0.643v0.033\n c0.417,0.103,0.763,0.3,1.033,0.593C15.076,7.814,15.229,8.23,15.229,8.723z M13.768,5.365c0-0.726-0.48-1.088-1.441-1.088\n c-0.335,0-0.594,0.022-0.776,0.066V6.52h0.732c0.458,0,0.821-0.106,1.087-0.319C13.635,5.988,13.768,5.71,13.768,5.365z\n M13.988,8.695c0-0.438-0.171-0.772-0.514-1c-0.307-0.205-0.715-0.308-1.225-0.308h-0.701V9.97\n c0.146,0.029,0.387,0.046,0.723,0.046c0.502,0,0.899-0.102,1.191-0.299C13.813,9.492,13.988,9.15,13.988,8.695z"/>\n <path fill="#FFFFFF" d="M21.512,8.136c0,0.821-0.235,1.495-0.704,2.022c-0.491,0.543-1.143,0.814-1.955,0.814\n c-0.783,0-1.407-0.263-1.872-0.781c-0.466-0.521-0.698-1.176-0.698-1.969c0-0.829,0.24-1.507,0.721-2.035\n c0.479-0.528,1.125-0.792,1.937-0.792c0.783,0,1.414,0.26,1.89,0.78C21.285,6.685,21.512,7.337,21.512,8.136z M20.281,8.163\n c0-0.489-0.105-0.91-0.318-1.26c-0.249-0.424-0.604-0.636-1.065-0.636c-0.476,0-0.838,0.212-1.087,0.636\n c-0.212,0.351-0.318,0.778-0.318,1.283c0,0.489,0.105,0.91,0.318,1.26c0.257,0.426,0.614,0.639,1.076,0.639\n c0.454,0,0.809-0.216,1.065-0.646C20.171,9.076,20.281,8.652,20.281,8.163z"/>\n <path fill="#FFFFFF" d="M27.695,8.136c0,0.821-0.235,1.495-0.704,2.022c-0.491,0.543-1.143,0.814-1.955,0.814\n c-0.783,0-1.407-0.263-1.872-0.781c-0.465-0.521-0.698-1.176-0.698-1.969c0-0.829,0.24-1.507,0.721-2.035\n c0.479-0.528,1.125-0.792,1.937-0.792c0.783,0,1.414,0.26,1.89,0.78C27.467,6.685,27.695,7.337,27.695,8.136z M26.463,8.163\n c0-0.489-0.106-0.91-0.318-1.26c-0.249-0.424-0.604-0.636-1.065-0.636c-0.476,0-0.838,0.212-1.087,0.636\n c-0.213,0.351-0.317,0.778-0.317,1.283c0,0.489,0.104,0.91,0.317,1.26c0.257,0.426,0.614,0.639,1.076,0.639\n c0.454,0,0.809-0.216,1.065-0.646C26.354,9.076,26.463,8.652,26.463,8.163z"/>\n <path fill="#FFFFFF" d="M33.692,10.852h-1.45L30.626,8.41l-0.45,0.551v1.891h-1.187V3.057h1.187v4.837h0.022\n c0.146-0.235,0.289-0.44,0.428-0.616l1.373-1.77h1.417L31.45,7.707L33.692,10.852z"/>\n <path fill="#FFFFFF" d="M37.799,9.312c0,0.498-0.185,0.896-0.549,1.195c-0.366,0.303-0.872,0.451-1.517,0.451\n c-0.607,0-1.124-0.121-1.55-0.361l0.254-0.881c0.408,0.249,0.846,0.374,1.308,0.374c0.606,0,0.911-0.224,0.911-0.671\n c0-0.195-0.065-0.359-0.198-0.488c-0.132-0.127-0.365-0.256-0.702-0.38c-0.952-0.353-1.428-0.865-1.428-1.539\n c0-0.462,0.176-0.847,0.527-1.154c0.352-0.308,0.814-0.462,1.395-0.462c0.525,0,0.977,0.106,1.351,0.319l-0.254,0.846\n c-0.344-0.205-0.706-0.308-1.086-0.308c-0.249,0-0.443,0.059-0.583,0.176c-0.14,0.118-0.209,0.268-0.209,0.451\n c0,0.184,0.073,0.334,0.22,0.451c0.125,0.11,0.367,0.231,0.727,0.363C37.337,8.048,37.799,8.586,37.799,9.312z"/>\n </g>\n </g>\n</svg>\n')
})
}), require.register("templates/svg/badges/ios_app", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/badges/ios_app"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<?xml version="1.0" encoding="utf-8"?>\n<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n width="60px" height="15px" viewBox="0 0 60 15" enable-background="new 0 0 60 15" xml:space="preserve">\n <g>\n <path fill="#FFFFFF" d="M59.664,13.229c0,0.795-0.643,1.438-1.438,1.438H1.774c-0.796,0-1.44-0.643-1.44-1.438V1.771\n c0-0.793,0.645-1.438,1.44-1.438h56.453c0.795,0,1.438,0.645,1.438,1.438V13.229z"/>\n <path fill="#A6A6A6" d="M58.227,15H1.774C0.797,15,0,14.206,0,13.229V1.772C0,0.795,0.797,0,1.774,0h56.453\n C59.203,0,60,0.795,60,1.772v11.457C60,14.206,59.203,15,58.227,15L58.227,15z"/>\n <path fill="#010101" d="M59.664,13.229c0,0.795-0.643,1.438-1.438,1.438H1.774c-0.796,0-1.44-0.643-1.44-1.438V1.771\n c0-0.793,0.645-1.438,1.44-1.438h56.453c0.795,0,1.438,0.645,1.438,1.438V13.229z"/>\n <g>\n <path fill="#FFFFFF" d="M14.083,10.852h-1.258l-0.689-2.166H9.739l-0.656,2.166H7.858l2.374-7.373h1.466L14.083,10.852z\n M11.928,7.778l-0.624-1.925c-0.065-0.197-0.189-0.66-0.371-1.39H10.91c-0.073,0.314-0.189,0.777-0.35,1.39L9.947,7.778H11.928z"\n />\n <path fill="#FFFFFF" d="M20.177,8.128c0,0.904-0.246,1.619-0.737,2.146c-0.44,0.467-0.986,0.699-1.64,0.699\n c-0.704,0-1.21-0.252-1.518-0.755v2.79H15.1V7.283c0-0.568-0.015-1.151-0.044-1.748h1.039l0.065,0.842h0.022\n c0.394-0.634,0.991-0.952,1.794-0.952c0.627,0,1.15,0.248,1.57,0.744C19.967,6.666,20.177,7.318,20.177,8.128z M18.973,8.172\n c0-0.518-0.116-0.944-0.35-1.28c-0.256-0.35-0.598-0.525-1.028-0.525c-0.292,0-0.557,0.097-0.793,0.29\n c-0.237,0.193-0.393,0.447-0.465,0.76c-0.037,0.146-0.055,0.266-0.055,0.361v0.886c0,0.387,0.118,0.713,0.355,0.979\n c0.236,0.269,0.545,0.4,0.924,0.4c0.445,0,0.792-0.172,1.04-0.516C18.849,9.186,18.973,8.732,18.973,8.172z"/>\n <path fill="#FFFFFF" d="M26.292,8.128c0,0.904-0.246,1.619-0.737,2.146c-0.44,0.467-0.986,0.699-1.64,0.699\n c-0.704,0-1.21-0.252-1.518-0.755v2.79h-1.182V7.283c0-0.568-0.015-1.151-0.044-1.748h1.039l0.065,0.842h0.022\n c0.394-0.634,0.991-0.952,1.794-0.952c0.627,0,1.15,0.248,1.57,0.744C26.082,6.666,26.292,7.318,26.292,8.128z M25.088,8.172\n c0-0.518-0.116-0.944-0.35-1.28c-0.256-0.35-0.598-0.525-1.028-0.525c-0.292,0-0.557,0.097-0.793,0.29\n c-0.237,0.193-0.393,0.447-0.465,0.76c-0.037,0.146-0.055,0.266-0.055,0.361v0.886c0,0.387,0.118,0.713,0.355,0.979\n c0.236,0.269,0.545,0.4,0.924,0.4c0.445,0,0.792-0.172,1.04-0.516C24.964,9.186,25.088,8.732,25.088,8.172z"/>\n <path fill="#FFFFFF" d="M33.129,8.784c0,0.628-0.219,1.138-0.654,1.532c-0.48,0.43-1.149,0.645-2.009,0.645\n c-0.793,0-1.43-0.152-1.91-0.459l0.273-0.984c0.518,0.308,1.087,0.459,1.707,0.459c0.444,0,0.791-0.1,1.039-0.301\n c0.248-0.199,0.372-0.469,0.372-0.804c0-0.3-0.104-0.552-0.307-0.755c-0.205-0.204-0.543-0.394-1.019-0.569\n c-1.291-0.481-1.936-1.185-1.936-2.112c0-0.605,0.228-1.101,0.684-1.488c0.455-0.386,1.059-0.58,1.812-0.58\n c0.67,0,1.229,0.117,1.674,0.35l-0.297,0.963c-0.418-0.226-0.891-0.339-1.416-0.339c-0.418,0-0.744,0.102-0.979,0.306\n c-0.197,0.183-0.297,0.405-0.297,0.667c0,0.292,0.113,0.533,0.34,0.722c0.196,0.175,0.555,0.365,1.072,0.569\n c0.634,0.255,1.101,0.554,1.398,0.897C32.979,7.847,33.129,8.273,33.129,8.784z"/>\n <path fill="#FFFFFF" d="M37.046,6.421h-1.303v2.583c0,0.656,0.229,0.984,0.688,0.984c0.213,0,0.387-0.02,0.525-0.055l0.033,0.896\n c-0.234,0.088-0.54,0.131-0.92,0.131c-0.467,0-0.832-0.142-1.094-0.426c-0.264-0.285-0.395-0.763-0.395-1.435V6.42h-0.775V5.535\n h0.775V4.562l1.159-0.35v1.324h1.303v0.885H37.046z"/>\n <path fill="#FFFFFF" d="M42.909,8.15c0,0.815-0.233,1.486-0.7,2.012c-0.488,0.541-1.139,0.811-1.947,0.811\n c-0.781,0-1.402-0.26-1.865-0.777s-0.694-1.17-0.694-1.957c0-0.824,0.239-1.499,0.717-2.024c0.478-0.525,1.121-0.788,1.931-0.788\n c0.78,0,1.408,0.259,1.883,0.777C42.684,6.706,42.909,7.355,42.909,8.15z M41.684,8.178c0-0.488-0.104-0.906-0.316-1.255\n c-0.248-0.422-0.602-0.633-1.061-0.633c-0.476,0-0.836,0.211-1.084,0.633c-0.211,0.349-0.316,0.774-0.316,1.276\n c0,0.486,0.105,0.904,0.316,1.254c0.256,0.422,0.612,0.633,1.071,0.633c0.452,0,0.806-0.215,1.062-0.643\n C41.574,9.086,41.684,8.664,41.684,8.178z"/>\n <path fill="#FFFFFF" d="M46.749,6.575c-0.117-0.022-0.241-0.033-0.372-0.033c-0.416,0-0.736,0.157-0.963,0.471\n c-0.197,0.277-0.295,0.627-0.295,1.049v2.789h-1.182V7.209c0-0.613-0.012-1.17-0.033-1.674h1.027l0.045,1.018h0.032\n c0.124-0.35,0.32-0.631,0.591-0.842c0.262-0.19,0.547-0.285,0.854-0.285c0.109,0,0.208,0.007,0.296,0.022V6.575z"/>\n <path fill="#FFFFFF" d="M52.033,7.942c0,0.212-0.016,0.39-0.045,0.537h-3.545c0.016,0.525,0.188,0.927,0.516,1.203\n c0.299,0.248,0.686,0.371,1.159,0.371c0.524,0,1.003-0.083,1.434-0.251l0.187,0.82c-0.504,0.22-1.098,0.329-1.783,0.329\n c-0.824,0-1.471-0.243-1.941-0.729c-0.471-0.484-0.705-1.137-0.705-1.953c0-0.803,0.219-1.47,0.655-2.001\n c0.46-0.569,1.08-0.853,1.86-0.853c0.766,0,1.346,0.284,1.738,0.853C51.876,6.721,52.033,7.278,52.033,7.942z M50.906,7.636\n c0.007-0.35-0.069-0.653-0.229-0.908c-0.204-0.328-0.519-0.492-0.94-0.492c-0.387,0-0.7,0.161-0.94,0.481\n c-0.196,0.255-0.313,0.562-0.351,0.919H50.906z"/>\n </g>\n </g>\n</svg>\n')
})
}), require.register("templates/svg/badges/itunes_item", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/badges/itunes_item"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<?xml version="1.0" encoding="utf-8"?>\n<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n width="44px" height="15px" viewBox="0 0 44 15" enable-background="new 0 0 44 15" xml:space="preserve">\n <g>\n <path fill="#FFFFFF" d="M43.664,13.225c0,0.795-0.643,1.438-1.438,1.438H1.774c-0.795,0-1.44-0.643-1.44-1.438V1.771\n c0-0.793,0.645-1.438,1.44-1.438h40.453c0.795,0,1.438,0.645,1.438,1.438L43.664,13.225L43.664,13.225z"/>\n <path fill="#A6A6A6" d="M42.227,14.996H1.774C0.796,14.996,0,14.202,0,13.225V1.772C0,0.795,0.796,0,1.774,0h40.453\n C43.203,0,44,0.795,44,1.772v11.453C44,14.202,43.203,14.996,42.227,14.996L42.227,14.996z"/>\n <path d="M43.664,13.225c0,0.795-0.643,1.438-1.438,1.438H1.774c-0.795,0-1.44-0.643-1.44-1.438V1.771\n c0-0.793,0.645-1.438,1.44-1.438h40.453c0.795,0,1.438,0.645,1.438,1.438L43.664,13.225L43.664,13.225z"/>\n <g>\n <path fill="#FFFFFF" d="M8.762,3.946c0,0.213-0.07,0.385-0.209,0.517c-0.14,0.132-0.319,0.198-0.539,0.198\n c-0.198,0-0.365-0.068-0.501-0.204C7.377,4.322,7.31,4.151,7.31,3.946c0-0.205,0.069-0.374,0.209-0.506\n C7.657,3.308,7.83,3.242,8.035,3.242S8.413,3.308,8.553,3.44C8.691,3.572,8.762,3.741,8.762,3.946z M8.629,10.887H7.441V5.541\n h1.188V10.887z"/>\n <path fill="#FFFFFF" d="M15.043,4.474h-2.134v6.413h-1.188V4.474H9.608V3.473h5.435V4.474z"/>\n <path fill="#FFFFFF" d="M19.971,10.887h-1.045l-0.066-0.812h-0.021c-0.374,0.624-0.939,0.935-1.694,0.935\n c-0.528,0-0.95-0.164-1.265-0.493c-0.374-0.404-0.562-1.014-0.562-1.826V5.541h1.188v2.948c0,1.026,0.352,1.54,1.056,1.54\n c0.528,0,0.895-0.258,1.1-0.771c0.052-0.133,0.077-0.282,0.077-0.45V5.541h1.188v3.807C19.927,9.854,19.941,10.367,19.971,10.887z\n "/>\n <path fill="#FFFFFF" d="M26.24,10.887h-1.188V7.818c0-0.946-0.358-1.419-1.077-1.419c-0.353,0-0.639,0.13-0.857,0.39\n c-0.221,0.261-0.33,0.567-0.33,0.918v3.179h-1.188V7.07c0-0.469-0.015-0.979-0.044-1.529H22.6l0.057,0.825h0.031\n c0.141-0.257,0.346-0.469,0.617-0.638c0.321-0.198,0.682-0.297,1.077-0.297c0.499,0,0.913,0.162,1.243,0.484\n c0.41,0.396,0.616,0.986,0.616,1.771L26.24,10.887L26.24,10.887z"/>\n <path fill="#FFFFFF" d="M32.29,7.961c0,0.212-0.017,0.393-0.045,0.539h-3.563c0.016,0.527,0.188,0.932,0.518,1.211\n c0.301,0.248,0.689,0.373,1.166,0.373c0.527,0,1.009-0.084,1.441-0.253l0.187,0.825c-0.507,0.22-1.104,0.33-1.793,0.33\n c-0.828,0-1.479-0.244-1.952-0.731s-0.709-1.142-0.709-1.964c0-0.807,0.22-1.478,0.659-2.013c0.462-0.572,1.086-0.858,1.87-0.858\n c0.771,0,1.354,0.286,1.748,0.858C32.132,6.733,32.29,7.294,32.29,7.961z M31.156,7.653c0.008-0.352-0.069-0.656-0.23-0.913\n c-0.205-0.33-0.521-0.495-0.945-0.495c-0.39,0-0.705,0.162-0.946,0.484c-0.197,0.257-0.315,0.565-0.353,0.924H31.156z"/>\n <path fill="#FFFFFF" d="M36.898,9.348c0,0.498-0.184,0.898-0.551,1.199c-0.365,0.301-0.873,0.45-1.518,0.45\n c-0.609,0-1.126-0.121-1.551-0.362l0.253-0.881c0.409,0.25,0.847,0.375,1.309,0.375c0.608,0,0.913-0.225,0.913-0.672\n c0-0.197-0.066-0.361-0.197-0.489c-0.133-0.128-0.367-0.255-0.705-0.38c-0.953-0.352-1.43-0.865-1.43-1.54\n c0-0.462,0.176-0.847,0.528-1.155c0.352-0.308,0.817-0.462,1.396-0.462c0.528,0,0.979,0.106,1.354,0.319l-0.253,0.847\n c-0.346-0.205-0.709-0.308-1.09-0.308c-0.25,0-0.443,0.059-0.584,0.176c-0.139,0.117-0.209,0.268-0.209,0.451\n c0,0.184,0.074,0.334,0.222,0.451c0.124,0.11,0.366,0.231,0.726,0.363C36.438,8.082,36.898,8.621,36.898,9.348z"/>\n </g>\n </g>\n</svg>\n')
})
}), require.register("templates/svg/badges/mac_app", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/badges/mac_app"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<?xml version="1.0" encoding="utf-8"?>\n<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->\n<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">\n<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"\n width="80px" height="15px" viewBox="0 0 80 15" enable-background="new 0 0 80 15" xml:space="preserve">\n <g>\n <path fill="#FFFFFF" d="M79.664,13.225c0,0.795-0.643,1.438-1.438,1.438H1.774c-0.795,0-1.44-0.643-1.44-1.438V1.771\n c0-0.793,0.645-1.438,1.44-1.438h76.453c0.795,0,1.438,0.645,1.438,1.438L79.664,13.225L79.664,13.225z"/>\n <path fill="#A6A6A6" d="M78.227,14.996H1.774C0.796,14.996,0,14.202,0,13.225V1.772C0,0.795,0.796,0,1.774,0h76.453\n C79.203,0,80,0.795,80,1.772v11.453C80,14.202,79.203,14.996,78.227,14.996L78.227,14.996z"/>\n <path fill="#010101" d="M79.664,13.225c0,0.795-0.643,1.438-1.438,1.438H1.774c-0.795,0-1.44-0.643-1.44-1.438V1.771\n c0-0.793,0.645-1.438,1.44-1.438h76.453c0.795,0,1.438,0.645,1.438,1.438L79.664,13.225L79.664,13.225z"/>\n <g>\n <path fill="#FFFFFF" d="M15.492,10.852h-1.149L14.19,7.767c-0.072-1.393-0.105-2.429-0.098-3.107h-0.033\n c-0.233,0.868-0.521,1.798-0.864,2.79l-1.149,3.338H11.15l-1.051-3.283C9.786,6.513,9.531,5.565,9.333,4.66H9.311\n C9.273,5.768,9.229,6.822,9.179,7.821l-0.175,3.031H7.898L8.39,3.477h1.521l1.062,3.195c0.262,0.788,0.492,1.635,0.688,2.539\n h0.033c0.233-0.941,0.481-1.787,0.744-2.539l1.104-3.195h1.521L15.492,10.852z"/>\n <path fill="#FFFFFF" d="M20.678,10.852h-1.061l-0.088-0.611h-0.033c-0.364,0.488-0.883,0.732-1.554,0.732\n c-0.503,0-0.908-0.16-1.214-0.48c-0.277-0.292-0.416-0.653-0.416-1.083c0-0.649,0.271-1.146,0.815-1.488\n c0.543-0.343,1.307-0.511,2.292-0.503v-0.1c0-0.7-0.368-1.05-1.105-1.05c-0.525,0-0.988,0.131-1.39,0.394l-0.24-0.777\n c0.496-0.307,1.104-0.459,1.827-0.459c1.393,0,2.09,0.733,2.09,2.199v1.958C20.602,10.115,20.627,10.539,20.678,10.852z\n M19.452,9.025V8.204c-1.306-0.022-1.958,0.336-1.958,1.071c0,0.277,0.076,0.485,0.229,0.625c0.153,0.139,0.345,0.207,0.576,0.207\n c0.262,0,0.503-0.082,0.724-0.246c0.222-0.164,0.357-0.373,0.408-0.629C19.445,9.174,19.452,9.105,19.452,9.025z"/>\n <path fill="#FFFFFF" d="M25.646,5.677l-0.23,0.897c-0.299-0.146-0.642-0.219-1.028-0.219c-0.518,0-0.928,0.173-1.23,0.52\n c-0.303,0.346-0.454,0.786-0.454,1.318c0,0.562,0.158,1.006,0.476,1.334c0.317,0.328,0.721,0.492,1.209,0.492\n c0.365,0,0.723-0.072,1.072-0.219l0.164,0.887c-0.387,0.183-0.875,0.272-1.466,0.272c-0.81,0-1.455-0.246-1.937-0.737\n c-0.482-0.492-0.723-1.15-0.723-1.976s0.259-1.5,0.777-2.03c0.518-0.529,1.214-0.793,2.09-0.793\n C24.861,5.425,25.288,5.509,25.646,5.677z"/>\n <path fill="#FFFFFF" d="M34.388,10.852h-1.259L32.44,8.686h-2.396l-0.656,2.166h-1.226l2.374-7.374h1.466L34.388,10.852z\n M32.232,7.777l-0.624-1.925c-0.065-0.197-0.189-0.66-0.372-1.39h-0.021c-0.073,0.313-0.19,0.777-0.351,1.39l-0.612,1.925H32.232z\n "/>\n <path fill="#FFFFFF" d="M40.48,8.127c0,0.905-0.245,1.62-0.736,2.145c-0.44,0.469-0.987,0.701-1.64,0.701\n c-0.704,0-1.211-0.252-1.519-0.756v2.791h-1.182V7.283c0-0.568-0.015-1.151-0.044-1.748h1.039l0.066,0.842h0.021\n c0.394-0.634,0.992-0.952,1.794-0.952c0.628,0,1.151,0.248,1.57,0.744C40.271,6.666,40.48,7.318,40.48,8.127z M39.277,8.172\n c0-0.518-0.117-0.945-0.35-1.281c-0.256-0.35-0.599-0.525-1.029-0.525c-0.291,0-0.556,0.097-0.793,0.29\n c-0.237,0.193-0.393,0.447-0.465,0.76c-0.037,0.146-0.055,0.266-0.055,0.361v0.887c0,0.387,0.118,0.713,0.355,0.979\n c0.237,0.268,0.545,0.4,0.925,0.4c0.444,0,0.791-0.172,1.039-0.516C39.152,9.186,39.277,8.732,39.277,8.172z"/>\n <path fill="#FFFFFF" d="M46.598,8.127c0,0.905-0.246,1.62-0.736,2.145c-0.44,0.469-0.987,0.701-1.641,0.701\n c-0.703,0-1.211-0.252-1.519-0.756v2.791H41.52V7.283c0-0.568-0.015-1.151-0.043-1.748h1.039l0.065,0.842h0.021\n c0.395-0.634,0.992-0.952,1.795-0.952c0.627,0,1.15,0.248,1.569,0.744C46.389,6.666,46.598,7.318,46.598,8.127z M45.395,8.172\n c0-0.518-0.117-0.945-0.351-1.281c-0.256-0.35-0.599-0.525-1.028-0.525c-0.291,0-0.557,0.097-0.793,0.29\n c-0.238,0.193-0.394,0.447-0.466,0.76c-0.036,0.146-0.055,0.266-0.055,0.361v0.887c0,0.387,0.118,0.713,0.354,0.979\n c0.237,0.268,0.545,0.4,0.926,0.4c0.443,0,0.791-0.172,1.039-0.516C45.27,9.186,45.395,8.732,45.395,8.172z"/>\n <path fill="#FFFFFF" d="M53.436,8.784c0,0.628-0.218,1.138-0.653,1.532c-0.48,0.43-1.15,0.645-2.009,0.645\n c-0.793,0-1.431-0.152-1.91-0.459l0.273-0.984c0.518,0.308,1.086,0.459,1.706,0.459c0.445,0,0.791-0.1,1.039-0.301\n s0.372-0.469,0.372-0.805c0-0.299-0.102-0.551-0.306-0.754c-0.205-0.205-0.544-0.395-1.019-0.569\n c-1.291-0.481-1.937-1.186-1.937-2.112c0-0.605,0.228-1.101,0.684-1.488c0.456-0.387,1.06-0.58,1.812-0.58\n c0.671,0,1.229,0.117,1.674,0.35l-0.296,0.963c-0.418-0.226-0.89-0.339-1.417-0.339c-0.417,0-0.743,0.103-0.979,0.307\n c-0.197,0.182-0.296,0.405-0.296,0.667c0,0.292,0.112,0.532,0.339,0.722c0.197,0.175,0.555,0.365,1.072,0.569\n c0.635,0.255,1.102,0.554,1.4,0.897C53.286,7.847,53.436,8.273,53.436,8.784z"/>\n <path fill="#FFFFFF" d="M57.354,6.421h-1.303v2.582c0,0.657,0.229,0.985,0.689,0.985c0.211,0,0.386-0.02,0.523-0.055l0.033,0.896\n c-0.232,0.088-0.54,0.131-0.919,0.131c-0.467,0-0.832-0.142-1.095-0.426c-0.262-0.285-0.395-0.763-0.395-1.435V6.421h-0.775V5.535\n h0.775V4.561l1.16-0.351v1.324h1.303v0.887H57.354z"/>\n <path fill="#FFFFFF" d="M63.217,8.148c0,0.817-0.232,1.488-0.699,2.014c-0.488,0.541-1.139,0.811-1.947,0.811\n c-0.78,0-1.402-0.26-1.865-0.777c-0.464-0.518-0.695-1.17-0.695-1.957c0-0.824,0.239-1.499,0.717-2.024\n c0.479-0.525,1.123-0.788,1.933-0.788c0.78,0,1.407,0.259,1.882,0.777C62.991,6.705,63.217,7.354,63.217,8.148z M61.992,8.177\n c0-0.487-0.105-0.905-0.317-1.254C61.427,6.5,61.072,6.29,60.613,6.29c-0.475,0-0.836,0.211-1.084,0.633\n c-0.211,0.349-0.316,0.774-0.316,1.277c0,0.485,0.105,0.905,0.316,1.254c0.256,0.422,0.613,0.633,1.072,0.633\n c0.453,0,0.807-0.215,1.062-0.644C61.883,9.086,61.992,8.664,61.992,8.177z"/>\n <path fill="#FFFFFF" d="M67.057,6.574c-0.115-0.022-0.24-0.033-0.371-0.033c-0.416,0-0.736,0.157-0.963,0.471\n c-0.197,0.277-0.296,0.627-0.296,1.05v2.789h-1.182V7.208c0-0.613-0.011-1.17-0.033-1.674h1.028l0.044,1.018h0.032\n c0.125-0.35,0.32-0.631,0.592-0.843c0.263-0.189,0.547-0.284,0.854-0.284c0.109,0,0.209,0.007,0.295,0.022V6.574z"/>\n <path fill="#FFFFFF" d="M72.342,7.942c0,0.21-0.015,0.39-0.043,0.537h-3.545c0.014,0.524,0.186,0.927,0.514,1.203\n c0.299,0.248,0.687,0.371,1.16,0.371c0.525,0,1.004-0.083,1.434-0.251l0.187,0.82c-0.503,0.22-1.098,0.329-1.782,0.329\n c-0.824,0-1.473-0.243-1.942-0.729c-0.472-0.484-0.706-1.137-0.706-1.953c0-0.803,0.219-1.47,0.656-2.002\n c0.459-0.569,1.08-0.854,1.859-0.854c0.768,0,1.346,0.285,1.74,0.854C72.186,6.72,72.342,7.278,72.342,7.942z M71.215,7.635\n c0.008-0.35-0.068-0.653-0.229-0.908c-0.204-0.328-0.519-0.492-0.94-0.492c-0.387,0-0.7,0.161-0.94,0.481\n c-0.197,0.255-0.313,0.562-0.351,0.919H71.215z"/>\n </g>\n </g>\n</svg>\n')
})
}), require.register("templates/svg/close", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/close"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg width="22px" height="22px" viewBox="0 0 22 22" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">\n <title>Close</title>\n <defs></defs>\n <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">\n <g id="Close" sketch:type="MSArtboardGroup" transform="translate(-53.000000, -53.000000)" stroke-linecap="round" stroke="#FFFFFF" stroke-opacity="0.747070312" stroke-width="3">\n <g sketch:type="MSLayerGroup" transform="translate(54.000000, 54.000000)">\n <path d="M0.460567236,19.5394325 L19.5,0.5" id="Line" sketch:type="MSShapeGroup"></path>\n <path d="M0.460567236,19.5394325 L19.5,0.5" id="Line-copy" sketch:type="MSShapeGroup" transform="translate(10.000000, 10.000000) scale(-1, 1) translate(-10.000000, -10.000000) "></path>\n </g>\n </g>\n </g>\n</svg>\n')
})
}), require.register("templates/svg/integrations/alfred", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/integrations/alfred"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg width="56px" height="42px" viewBox="0 0 56 42" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">\n <title>alfred-icon</title>\n <description>Created with Sketch (http://www.bohemiancoding.com/sketch)</description>\n <defs></defs>\n <g id="Integration" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">\n <g id="Web-1-1" sketch:type="MSArtboardGroup" transform="translate(-115.000000, -335.000000)" fill="#3AB64C">\n <path d="M123.4,351.8 C123.4,351.8 123.4,334.999998 143,335 C162.6,335.000002 162.6,351.8 162.6,351.8 L162.6,365.8 C162.6,365.8 171,365.8 171,371.4 C171,377 154.2,377 154.2,377 L134.6,377 C134.6,377 115,377 115,371.4 C115,365.8 123.4,365.8 123.4,365.8 L123.4,351.8 Z" id="alfred-icon" sketch:type="MSShapeGroup"></path>\n </g>\n </g>\n</svg>\n')
})
}), require.register("templates/svg/integrations/bookmarklets", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/integrations/bookmarklets"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg width="56px" height="81px" viewBox="0 0 56 81" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">\n <title>bookmarklet-icon</title>\n <defs></defs>\n <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">\n <g id="bookmarklet-icon" sketch:type="MSLayerGroup" fill="#3AB64C">\n <path d="M1.99306965,0 C0.892327676,0 0,0.89581411 0,2.0022583 L0,81 L28,61 L56,81 L56,2.0022583 C56,0.896441576 55.0976918,0 54.0069304,0 L1.99306965,0 Z M28,59.7407407 L1,79 L1,2.92810059 C1,1 1,1 2.92188859,1 L53.0781114,1 C55,1 55,1 55,2.92810059 L55,79 L28,59.7407407 Z" id="Rectangle-3-copy" sketch:type="MSShapeGroup"></path>\n <path d="M10.6710371,8 C9.19586403,8 8,9.19712055 8,10.6710371 L8,45.3289629 C8,46.804136 9.19712055,48 10.6710371,48 L45.3289629,48 C46.804136,48 48,46.8028795 48,45.3289629 L48,10.6710371 C48,9.19586403 46.8028795,8 45.3289629,8 L10.6710371,8 Z M30.0282035,12.0941359 C30.6864237,12.1770317 31.3429809,12.2725272 32,12.3959871 C27.1073281,13.5824981 22.8832246,15.9011324 19.3685742,19.4314773 C15.8509211,22.9648588 13.5897904,27.1672985 12.4748167,32 C12.4006699,31.6409965 12.3048565,31.2847576 12.2570422,30.9224002 C12.1703297,30.26499 12.1127216,29.6039087 12.0412543,28.9445496 C12.0332159,28.8704918 12.0139978,28.7976124 12,28.7241891 L12,27.636437 C12.0146908,27.5407601 12.0318762,27.4454005 12.0437489,27.3493611 C12.1435353,26.5414785 12.1745337,25.7187753 12.3524398,24.9278888 C13.4743431,19.9393669 16.3333141,16.2191186 20.9304614,13.8103821 C22.8242305,12.8181256 24.8576081,12.2575706 26.9999192,12.0857511 C27.3129064,12.0606422 27.6253855,12.0287348 27.9380955,12 L29.0006352,12 C29.343235,12.0306384 29.6871745,12.0511697 30.0282035,12.0941359 Z" id="icon" sketch:type="MSShapeGroup"></path>\n </g>\n </g>\n</svg>\n')
})
}), require.register("templates/svg/integrations/launch-center-pro", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/integrations/launch-center-pro"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg width="56px" height="56px" viewBox="0 0 56 56" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">\n <title>launchcenter-icon</title>\n <defs></defs>\n <g id="Integration" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">\n <g id="Web-1-1" sketch:type="MSArtboardGroup" transform="translate(-115.000000, -249.000000)" fill="#3AB64C">\n <g id="launchcenter-icon" sketch:type="MSLayerGroup" transform="translate(115.000000, 249.000000)">\n <path d="M29.5702517,44.7109913 C29.5282857,45.9135783 29.1756871,47.0491391 28.7372585,48.1587478 C28.3547143,49.1267435 27.9188163,50.0751217 27.4595102,51.0286087 C26.4301837,49.0104696 25.4801497,46.9876304 25.2857143,44.6652174 L29.5567551,44.6652174 C29.5516939,44.6827913 29.5561224,44.6981174 29.5702517,44.7109913 Z M25.982898,4.73095217 C26.3411905,4.53743478 26.7144558,4.36537391 27.0535578,4.14426957 C27.4167007,3.90722609 27.7309184,3.93440435 28.0849932,4.15857391 C28.5183605,4.4328087 28.9755578,4.67148696 29.4226327,4.92569565 C30.3619116,5.67994348 31.3444218,6.38943913 32.2305578,7.19824783 C33.7314218,8.56819565 34.8830612,10.2023652 35.8149592,11.9822348 C36.7264014,13.8250435 37.305068,15.7636913 37.5918707,17.7861217 C37.9299184,20.4704348 37.7618435,23.1322696 37.1867619,25.7712174 C36.9699728,26.7655739 36.6975102,27.748487 36.4505646,28.7365087 C36.4294762,28.7839174 36.4035374,28.8298957 36.3881429,28.8789391 C35.4821837,31.7592217 34.2455578,34.5052478 32.817449,37.1748478 C32.6902857,37.4125043 32.5325442,37.4985348 32.2697823,37.521013 C31.2337075,37.6094957 30.1999524,37.7249522 29.1638776,37.815887 C28.5177279,37.8724913 27.8639864,37.9736435 27.2224762,37.9307304 C25.7637891,37.8332565 24.3112177,37.6530217 22.8546395,37.5222391 C22.576483,37.4973087 22.4168435,37.3996304 22.2839864,37.154413 C21.0735102,34.9221174 20.0039048,32.6303565 19.1207211,30.2576739 C19.0827619,30.1377217 19.0477551,30.0165435 19.0062109,29.8978174 C17.9193129,26.7882565 17.2255034,23.6098304 17.2158027,20.3114522 C17.2261361,20.1865957 17.2349932,20.0615348 17.2474354,19.9368826 C17.3526667,18.8828565 17.4134014,17.8222913 17.5751497,16.7764391 C17.8267347,15.1488087 18.3883197,13.6057783 19.1021633,12.1148565 C20.1532109,10.0736261 21.515102,8.25186522 23.2888503,6.74827391 C24.1412449,6.0252913 25.082,5.4001913 25.982898,4.73095217 Z M23.710619,16.5230478 C23.570381,18.0364478 24.1817347,19.2230957 25.4774082,20.0280217 C26.8285442,20.8674826 28.2591837,20.8697304 29.6221293,20.0462087 C30.9475374,19.2455739 31.5205102,18.0337913 31.4249796,16.5250913 C31.2320204,14.1440304 28.7480136,12.5468478 26.3816803,13.2820913 C24.8818707,13.7480043 23.7243265,15.152487 23.710619,16.5230478 L23.710619,16.5230478 Z M27.5908912,24.6092957 C27.5805578,24.6097043 27.5704354,24.610113 27.560102,24.6105217 C27.5407007,24.7022739 27.5132857,24.7932087 27.5029524,24.8859826 C27.343102,26.3160087 27.1859932,27.7464435 27.0271973,29.1764696 C26.7985986,31.2330261 26.573585,33.289787 26.3371837,35.3453217 C26.263585,35.9851348 26.4630816,36.3740087 27.0503946,36.6897261 C27.4753265,36.918187 27.8622993,36.8493217 28.234932,36.5893913 C28.6037687,36.3321174 28.8606259,36.0278435 28.805585,35.5386348 C28.395415,31.8961348 27.9945238,28.252613 27.5908912,24.6092957 Z M42.3943401,34.4322957 C42.5961565,35.7288826 42.8095714,37.0240391 42.9932517,38.3232826 C43.0531429,38.7473043 43.0586259,39.1821565 43.0472381,39.6108783 C43.0369048,39.9975043 42.936102,40.0925261 42.5398503,40.0277478 C41.7405986,39.8971696 40.9411361,39.7514696 40.157068,39.5542739 C38.7829456,39.208313 37.4358163,38.7755043 36.1658707,38.1489739 C35.7936599,37.9652652 35.3809592,37.7981087 35.2249048,37.3747 C35.1740816,37.2371739 35.171551,37.0473348 35.228068,36.9136913 C35.6407687,35.9379304 36.0741361,34.9703435 36.500966,34.0003043 C37.4539524,31.7459391 38.1888844,29.4243435 38.7525782,27.0169217 C39.5126054,27.3963957 40.2000884,27.8050913 40.7922517,28.3556043 C41.2144422,28.7481565 41.4483129,29.216113 41.5444762,29.7821565 C41.8080816,31.3352 42.108381,32.8825217 42.3943401,34.4322957 Z M18.845517,34.6098739 C19.1814558,35.3475696 19.4918776,36.0977304 19.863034,36.8184652 C20.0850952,37.2498435 19.9260884,37.5007826 19.6456122,37.7190261 C19.3621837,37.9397217 19.0395306,38.1271087 18.7078095,38.2732174 C16.828619,39.100213 14.872034,39.6893478 12.8332041,40.0142609 C12.8011497,40.0193696 12.7690952,40.0246826 12.7368299,40.0281565 C12.1657551,40.0910957 12.0153946,40.0011826 12.0651633,39.4506696 C12.1720816,38.2719913 12.3298231,37.0976043 12.4787075,35.923013 C12.5364898,35.4660913 12.6265374,35.0130522 12.702034,34.5583783 C12.7212245,34.4983 12.7471633,34.4394478 12.7583401,34.3781435 C13.0042313,33.0259739 13.2393673,31.6719652 13.4983333,30.3222478 C13.588381,29.8526565 13.6446871,29.3434217 13.8779252,28.9398348 C14.4049252,28.0276261 15.3490544,27.5645739 16.2510068,27.0757739 C16.288966,27.124613 16.3087891,27.1395304 16.3136395,27.1581261 C16.3720544,27.3812739 16.4277279,27.6052391 16.4852993,27.8285913 C17.0846327,30.150187 17.8668027,32.412113 18.845517,34.6098739 Z M23.446381,39.7392087 C26.1796531,40.3189435 28.8947891,40.3246652 31.6637007,39.7316478 C31.6162517,39.8722391 31.5964286,39.9574522 31.5599456,40.0353087 C31.161585,40.8843739 30.7537347,41.7295565 30.3657075,42.5831174 C30.284517,42.7619217 30.1710612,42.8330348 29.9869592,42.8655261 C28.273102,43.1681652 26.5602993,43.1340391 24.8498163,42.849587 C24.7346735,42.8303783 24.5781973,42.7398522 24.5391837,42.6446261 C24.1678163,41.7391609 23.8175374,40.8255217 23.4630408,39.9135174 C23.4489116,39.8777565 23.4546054,39.8348435 23.446381,39.7392087 Z" id="rocket" sketch:type="MSShapeGroup"></path>\n <path d="M0,1.99306965 L0,54.0069304 C0,55.1076723 0.902308181,56 1.99306965,56 L54.0069304,56 C55.1076723,56 56,55.0976918 56,54.0069304 L56,1.99306965 C56,0.892327676 55.0976918,0 54.0069304,0 L1.99306965,0 C0.892327676,0 0,0.902308181 0,1.99306965 Z M54.0069304,1 C54.5496256,1 55,1.44882198 55,1.99306965 L55,54.0069304 C55,54.5496256 54.551178,55 54.0069304,55 L1.99306965,55 C1.45037444,55 1,54.551178 1,54.0069304 L1,1.99306965 C1,1.45037444 1.44882198,1 1.99306965,1 L54.0069304,1 Z" id="Rectangle-4" sketch:type="MSShapeGroup"></path>\n </g>\n </g>\n </g>\n</svg>\n')
})
}), require.register("templates/svg/logo", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/logo"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg width="146px" height="92px" viewBox="0 0 146 92" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">\n <title>Logo</title>\n <defs></defs>\n <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">\n <g id="Imported-Layers" sketch:type="MSLayerGroup" fill="#FFFFFF">\n <path d="M140,6.67569117e-09 L140,35 C133.844,31.869 128.234,30.634 122.86,30.634 C114.396,30.634 107.345,33.512 101.738,39.267 C96.132,45.022 93.32,52.236 93.32,60.911 C93.32,69.46 96.162,76.664 101.853,82.525 C107.545,88.384 114.568,91.315 122.862,91.315 C129.039,91.315 134.403,89.808 140,86 L140,90 L146,90 L146,6.67569117e-09 L140,6.67569117e-09 Z M124.383,85.222 C117.401,85.222 111.566,82.873 106.912,78.177 C102.257,73.479 99.922,67.597 99.922,60.531 C99.922,53.591 102.097,47.888 106.456,43.424 C110.814,38.96 116.387,36.728 123.115,36.728 C128.87,36.728 134.402999,38.3599998 139.999999,41.9999998 L139.999999,79.9999994 C134.962999,83.5549994 129.799,85.222 124.383,85.222 Z" id="Fill-1" sketch:type="MSShapeGroup"></path>\n <path d="M17.037,31.937 L17.037,24.541 C17.037,12.481 21.721,6.451 31.158,6.451 C33.993,6.451 37.184,7.191 41.661,8.672 L41.661,2.833 C37.743,1.182 34.2469993,6.67569106e-09 31.1579993,6.67569106e-09 C25.4879993,6.67569106e-09 20.572,2.315 16.658,6.229 C12.744,10.143 10.881,15.464 10.881,22.192 L10.881,31.937 L6.43730402e-09,31.9370003 L6.43730402e-09,36.973999 L10.881,36.974 L10.881,90.139 L17.037,90.139 L17.037,36.974 L21.414,36.974 C21.194,35.303 21.188,33.61 21.395,31.937 L17.037,31.937 Z" id="Fill-2" sketch:type="MSShapeGroup"></path>\n <path d="M38,54 L38,90 L44,90 L44,54 C42.0150801,54.3633055 40.0122526,54.3464306 38,54" id="Fill-3" sketch:type="MSShapeGroup"></path>\n <path d="M63.446,30.634 C62.424,30.634 61.434,30.705 60.466,30.832 C60.828,32.831 60.88,34.873 60.624,36.886 C61.461,36.781 62.315,36.728 63.173,36.728 C73.752,36.728 79.0000004,43.5429992 79.0000004,56.9999992 L79.0000004,90.0000011 L85.0000004,90.0000011 L85.0000004,54.9999992 C85.0000004,47.5099992 83.266,41.213 79.331,36.982 C75.395,32.75 70.047,30.634 63.446,30.634 Z" id="Fill-4" sketch:type="MSShapeGroup"></path>\n <path d="M42.599,20.654 C38.997,20.477 35.337,21.758 32.585,24.51 C29.833,27.262 28.552,30.922 28.729,34.524 C29.979,32.102 32.053,29.314 34.721,26.646 C37.388,23.977 40.177,21.903 42.599,20.654 L42.599,20.654 Z" id="Shape" sketch:type="MSShapeGroup"></path>\n </g>\n </g>\n</svg>\n')
})
}), require.register("templates/svg/menu", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/menu"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<?xml version="1.0" encoding="UTF-8" standalone="no"?>\n<svg width="25px" height="19px" viewBox="0 0 25 19" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:sketch="http://www.bohemiancoding.com/sketch/ns">\n <title>Artboard 1</title>\n <defs></defs>\n <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" sketch:type="MSPage">\n <g id="Artboard-1" sketch:type="MSArtboardGroup" transform="translate(-52.000000, -54.000000)" stroke="#FFFFFF" stroke-opacity="0.747070312" stroke-width="3" stroke-linecap="round">\n <g id="Line-+-Line-+-Line" sketch:type="MSLayerGroup" transform="translate(54.000000, 55.000000)">\n <path d="M0.0425101215,16.5 L20.9574899,16.5" id="Line" sketch:type="MSShapeGroup"></path>\n <path d="M0.0425101215,8.5 L20.9574899,8.5" id="Line" sketch:type="MSShapeGroup"></path>\n <path d="M0.0425101215,0.5 L10.9554276,0.5 L20.9574899,0.5" id="Line" sketch:type="MSShapeGroup"></path>\n </g>\n </g>\n </g>\n</svg>\n')
})
}), require.register("templates/svg/tomato", function(e, t, s) {
s.exports = Ember.TEMPLATES["svg/tomato"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {}, a.buffer.push('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" width="100px" height="95px" style="shape-rendering:geometricPrecision; text-rendering:geometricPrecision; image-rendering:optimizeQuality; fill-rule:evenodd; clip-rule:evenodd" viewBox="0 0 12.6411 11.9569">\n <defs>\n <style type="text/css">.fil0 {fill:#0A0B0C}</style>\n </defs>\n <g id="Layer_x0020_1">\n <metadata id="CorelCorpID_0Corel-Layer"/>\n <path class="fil0" d="M5.69604 2.79328c0.529698,0.28764 1.83458,1.85305 2.53469,1.61799 0.426767,-0.143298 -0.327412,-1.39426 -0.873048,-2.09004 0.14017,-0.294641 1.73284,-0.223885 2.20578,-0.229546 1.84337,0.927418 3.07764,2.62138 3.07764,4.55695 0,2.93121 -2.83052,5.30815 -6.32048,5.30815 -3.49026,0 -6.32063,-2.37694 -6.32063,-5.30815 0,-1.68994 0.940825,-3.19562 2.40643,-4.16787 0.327412,-0.0691169 0.403232,0.145235 1.78423,-0.162365 -0.655121,0.246527 -1.24828,1.40856 -0.980299,2.05578 0.829552,0.180538 1.88567,-1.55573 2.48568,-1.5809zm-3.02178 -0.509291c1.29699,-0.686552 1.3591,-0.717088 2.59635,-0.84996 0.272893,-0.0291959 0.669421,-0.651993 0.559043,-1.29624 0.0789482,-0.0594346 0.218821,-0.170558 0.381335,-0.128552 0.259337,0.0670315 0.401593,0.871559 0.31624,1.36044 0.959593,-0.0589877 2.43429,0.251443 2.6038,0.512717 -0.860685,-0.118124 -2.02286,0.0396231 -2.05355,0.322496 -0.094291,0.869473 0.710981,0.918481 1.00771,1.91636 -0.886604,-0.315346 -1.86988,-1.23442 -2.3184,-1.65791 -0.506907,-0.0134063 -1.26764,0.702937 -2.32748,1.60384 0,-0.871112 1.19257,-1.73373 1.06967,-1.96492 -0.0787993,-0.148065 -1.22906,0.208691 -1.83473,0.18173z"/>\n </g>\n</svg>\n')
})
}), require.register("templates/tv_episode", function(e, t, s) {
s.exports = Ember.TEMPLATES.tv_episode = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s["itunes-description"] || t && t["itunes-description"], i = {hash: {description: "longDescription"},hashTypes: {description: "ID"},hashContexts: {description: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "itunes-description", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_youtube_results", i) : h.call(t, "partial", "itunes_item/_youtube_results", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/tv_episode/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["tv_episode/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push("<div>\n "), n = s._triageMustache.call(t, "mediaType.shortNameOrName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" in "), n = s._triageMustache.call(t, "tvSeasonName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n<div>\n "), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("templates/tv_episode/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["tv_episode/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
function n(e, t) {
var r, a = "";
return t.buffer.push("\n &mdash; "), r = s._triageMustache.call(e, "contentAdvisoryRating", {hash: {},hashTypes: {},hashContexts: {},contexts: [e],types: ["ID"],data: t}), (r || 0 === r) && t.buffer.push(r), t.buffer.push("\n "), a
}
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var i, o, h, p = "", u = s.helperMissing, l = this.escapeExpression, c = this;
return a.buffer.push('<div class="ii-metadata1-row">\n '), i = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push(" in\n "), a.buffer.push(l((o = s["ii-creator"] || t && t["ii-creator"], h = {hash: {creatorKey: "tvSeason",parent: "model"},hashTypes: {creatorKey: "STRING",parent: "ID"},hashContexts: {creatorKey: t,parent: t},contexts: [],types: [],data: a}, o ? o.call(t, h) : u.call(t, "ii-creator", h)))), a.buffer.push("\n of\n "), a.buffer.push(l((o = s["ii-creator"] || t && t["ii-creator"], h = {hash: {creatorKey: "tvShow",parent: "model"},hashTypes: {creatorKey: "STRING",parent: "ID"},hashContexts: {creatorKey: t,parent: t},contexts: [],types: [],data: a}, o ? o.call(t, h) : u.call(t, "ii-creator", h)))), a.buffer.push('\n</div>\n\n<div class="ii-metadata1-row">\n '), i = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n "), i = s["if"].call(t, "contentAdvisoryRating", {hash: {},hashTypes: {},hashContexts: {},inverse: c.noop,fn: c.program(1, n, a),contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push('\n</div>\n\n<div class="ii-metadata1-row">\n '), i = s._triageMustache.call(t, "trackTimeFormatted", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (i || 0 === i) && a.buffer.push(i), a.buffer.push("\n</div>\n"), p
})
}), require.register("templates/tv_season", function(e, t, s) {
s.exports = Ember.TEMPLATES.tv_season = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push(p((n = s["itunes-description"] || t && t["itunes-description"], i = {hash: {description: "longDescription"},hashTypes: {description: "ID"},hashContexts: {description: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "itunes-description", i)))), a.buffer.push('\n\n<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "episodes",parent: "model",initialResults: 100,showTrackNumbers: !0},hashTypes: {mediaTypeId: "STRING",parent: "ID",initialResults: "INTEGER",showTrackNumbers: "BOOLEAN"},hashContexts: {mediaTypeId: t,parent: t,initialResults: t,showTrackNumbers: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_youtube_results", i) : h.call(t, "partial", "itunes_item/_youtube_results", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/tv_season/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["tv_season/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push("<div>\n "), n = s._triageMustache.call(t, "mediaType.shortNameOrName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" of "), n = s._triageMustache.call(t, "tvShowName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n<div>\n "), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("templates/tv_season/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["tv_season/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o, h = "", p = s.helperMissing, u = this.escapeExpression;
return a.buffer.push('<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "mediaType.name", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push(" of\n "), a.buffer.push(u((i = s["ii-creator"] || t && t["ii-creator"], o = {hash: {creatorKey: "tvShow",parent: "model"},hashTypes: {creatorKey: "STRING",parent: "ID"},hashContexts: {creatorKey: t,parent: t},contexts: [],types: [],data: a}, i ? i.call(t, o) : p.call(t, "ii-creator", o)))), a.buffer.push('\n</div>\n<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push('\n</div>\n<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "contentAdvisoryRating", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), h
})
}), require.register("templates/tv_show", function(e, t, s) {
s.exports = Ember.TEMPLATES.tv_show = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i, o = "", h = s.helperMissing, p = this.escapeExpression;
return a.buffer.push('<hr class="page-divider">\n\n'), a.buffer.push(p((n = s["ii-list"] || t && t["ii-list"], i = {hash: {mediaTypeId: "seasons",parent: "model",initialResults: 100},hashTypes: {mediaTypeId: "STRING",parent: "ID",initialResults: "INTEGER"},hashContexts: {mediaTypeId: t,parent: t,initialResults: t},contexts: [],types: [],data: a}, n ? n.call(t, i) : h.call(t, "ii-list", i)))), a.buffer.push("\n\n"), a.buffer.push(p((n = s.partial || t && t.partial, i = {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["STRING"],data: a}, n ? n.call(t, "itunes_item/_youtube_results", i) : h.call(t, "partial", "itunes_item/_youtube_results", i)))), a.buffer.push("\n"), o
})
}), require.register("templates/tv_show/_ii_metadata", function(e, t, s) {
s.exports = Ember.TEMPLATES["tv_show/_ii_metadata"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push("<div>\n "), n = s._triageMustache.call(t, "mediaType.shortNameOrName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n<div>\n "), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("templates/tv_show/_metadata1", function(e, t, s) {
s.exports = Ember.TEMPLATES["tv_show/_metadata1"] = Ember.Handlebars.template(function(e, t, s, r, a) {
this.compilerInfo = [4, ">= 1.0.0"], s = this.merge(s, Ember.Handlebars.helpers), a = a || {};
var n, i = "";
return a.buffer.push('<div class="ii-metadata1-row">\n '), n = s._triageMustache.call(t, "primaryGenreName", {hash: {},hashTypes: {},hashContexts: {},contexts: [t],types: ["ID"],data: a}), (n || 0 === n) && a.buffer.push(n), a.buffer.push("\n</div>\n"), i
})
}), require.register("transforms/array", function() {
App.ArrayTransform = DS.Transform.extend({deserialize: function(e) {
return e
},serialize: function(e) {
return e
}})
}), require.register("utils/alias_many", function(e, t, s) {
s.exports = function(e, t, s) {
var r;
return r = e.reduce(function(e, s) {
return e[s] = Ember.computed.alias("" + t + "." + s), e
}, {}), s.reopen(r)
}
}), require.register("utils/apple_ssl_url", function(e, t, s) {
s.exports = function(e) {
var t;
if (null != e)
return t = URI(e), t.authority("s1.mzstatic.com"), t.protocol(""), t.toString()
}
}), require.register("utils/create_promise", function(e, t, s) {
s.exports = function(e) {
var t;
return t = new Ember.RSVP.Promise(e), DS.PromiseObject.create({promise: t})
}
}), require.register("utils/google_complete", function(e, t, s) {
var r, a, n;
n = "https://clients1.google.com/complete/search", a = "?q=%@&output=toolbar&client=firefox", r = n + a, s.exports = {URL: n,QUERY: a,FULL_URL: r,TYPEAHEAD_URL: r.fmt("%QUERY")}
}), require.register("utils/itunes", function(e, t, s) {
var r, a, n, i;
n = {ebook: "book","feature-movie": "movie","mac-software": "macApp","music-video": "musicVideo",podcast: "podcast","podcast-episode": "podcastEpisode",song: "song","tv-episode": "tvEpisode"}, a = {"TV Season": "tvSeason",Album: "album",Compilation: "compilation",MaxiSingle: "album"}, r = {Artist: "artist","Software Artist": "softwareDeveloper",Author: "author","TV Show": "tvShow","Podcast Artist": "podcaster",Studio: "studio","Movie Artist": "artist"}, i = {audiobook: "audiobook"}, s.exports = {classForKind: function(e) {
var t, s, r;
if ("kind" in e)
return t = e.kind, "software" === t ? (null != (s = e.ipadScreenshotUrls) ? s.length : void 0) ? (null != (r = e.screenshotUrls) ? r.length : void 0) ? "iosUniversalApp" : "ipadApp" : "iphoneApp" : n[t]
},classForCollectionType: function(e) {
return "collectionType" in e ? a[e.collectionType] : void 0
},classForArtist: function(e) {
return "artistType" in e ? r[e.artistType] : void 0
},classForWrapperType: function(e) {
return "wrapperType" in e ? i[e.wrapperType] : void 0
},typeForResult: function(e) {
var t, s, r, a;
return (r = this.classForKind(e)) ? r : (s = this.classForCollectionType(e)) ? s : (t = this.classForArtist(e)) ? t : (a = this.classForWrapperType(e)) ? a : void App.Logger.error("Undeteremined type for iTunes ID %@".fmt(e.id))
},extractId: function(e) {
return e.trackId || e.collectionId || e.artistId
}}
}), require.register("utils/logger", function(e, t, s) {
var r, a = [].slice;
r = t("config/environment"), s.exports = {error: function(e) {
return void (r.get("errorReportingEnabled") ? Raven.captureException(new Error(e)) : Ember.Logger.error(e))
},dbg: {log: function() {
var e, t, s;
return t = arguments[0], e = 2 <= arguments.length ? a.call(arguments, 1) : [], r.get("debugLog") ? (s = Ember.Logger).log.apply(s, [t].concat(a.call(e))) : void 0
},debug: function() {
var e, t, s;
return t = arguments[0], e = 2 <= arguments.length ? a.call(arguments, 1) : [], r.get("debugLog") ? (s = Ember.Logger).debug.apply(s, [t].concat(a.call(e))) : void 0
}}}
}), require.register("utils/normalize_term", function(e, t, s) {
var r;
r = Ember.$.trim, s.exports = function(e) {
return "string" === Ember.typeOf(e) ? r(e.replace(/\+/g, " ")).replace(/\s\s+/g, " ") : void 0
}
}), require.register("utils/number_with_commas", function(e, t, s) {
s.exports = function(e) {
return e.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")
}
}), require.register("utils/one_way_many", function(e, t, s) {
s.exports = function(e, t, s) {
var r;
return r = e.reduce(function(e, s) {
return e[s] = Ember.computed.oneWay("" + t + "." + s), e
}, {}), s.reopen(r)
}
}), require.register("utils/translations", function(e, t, s) {
s.exports = {Explicit_Content: "Explicit Content","action&adventure": "Action & Adventure",african: "African",alerttones: "Alert Tones",all: "All",alternative: "Alternative",animation: "Animation",anime: "Anime",appstore: "iOS Apps","art&architecture": "Art & Architecture",arts: "Arts","arts&entertainment": "Arts & Entertainment",audiobooks: "Audiobooks",audiobookslatino: "Audiobooks Latino",bigband: "Big Band","biographies&memoirs": "Biographies & Memoirs","biography&memoir": "Biography & Memoir",blues: "Blues",bollywood: "Bollywood",books: "Books",brazilian: "Brazilian",business: "Business","business&personalfinance": "Business & Personal Finance",catalogs: "Catalogs","children&teens": "Children & Teens","children'smusic": "Children's Music",chinese: "Chinese","christian&gospel": "Christian & Gospel",classic: "Classic",classical: "Classical",classics: "Classics",comedy: "Comedy","comics&graphicnovels": "Comics & Graphic Novels","communications&media": "Communications & Media","computers&internet": "Computers & Internet",concertfilms: "Concert Films","cookbooks,food&wine": "Cookbooks, Food & Wine",country: "Country",dance: "Dance",developertools: "Developer Tools",disney: "Disney",documentary: "Documentary",drama: "Drama","drama&poetry": "Drama & Poetry",easylistening: "Easy Listening",education: "Education",electronic: "Electronic",engineering: "Engineering",enka: "Enka",entertainment: "Entertainment",featuredalbums: "Featured Albums",fiction: "Fiction","fiction&literature": "Fiction & Literature",finance: "Finance","fitness&workout": "Fitness & Workout","food&drink": "Food & Drink",foreign: "Foreign",frenchpop: "French Pop",games: "Games","games&hobbies": "Games & Hobbies",germanfolk: "German Folk",germanpop: "German Pop","government&organizations": "Government & Organizations","graphics&design": "Graphics & Design",health: "Health","health&fitness": "Health & Fitness","health&medicine": "Health & Medicine","health,mind&body": "Health, Mind & Body","hip-hop/rap": "Hip-Hop/Rap",history: "History",holiday: "Holiday",horror: "Horror",humor: "Humor",independent: "Independent",indian: "Indian",instrumental: "Instrumental",itunesu: "iTunesU","j-pop": "J-Pop",japanesecinema: "Japanese Cinema",jazz: "Jazz",jidaigeki: "Jidaigeki",justadded: "Just Added","k-pop": "K-Pop",karaoke: "Karaoke",kayokyoku: "Kayokyoku",kids: "Kids","kids&family": "Kids & Family","kids&youngadults": "Kids & Young Adults",korean: "Korean",koreancinema: "Korean Cinema",language: "Language",languages: "Languages",languagestudies: "Language Studies",latin: "Latin",latino: "Latino",latinotv: "Latino TV","law&politics": "Law & Politics",lifestyle: "Lifestyle","lifestyle&home": "Lifestyle & Home",literature: "Literature",macappstore: "Mac Apps",madefortv: "Made for TV",mathematics: "Mathematics",medical: "Medical",medicine: "Medicine",middleeastern: "MiddleEastern",movies: "Movies",music: "Music",musicals: "Musicals",musicdocumentaries: "Music Documentaries",musicfeaturefilms: "Music Feature Films",musicvideos: "Music Videos","mysteries&thrillers": "Mysteries & Thrillers",mystery: "Mystery",navigation: "Navigation",newage: "New Age",newapplications: "New Applications",newfreeapplications: "New Free Applications",newpaidapplications: "New Paid Applications",newreleases: "New Releases",news: "News","news&politics": "News & Politics",newsstand: "Newsstand",nonfiction: "Nonfiction",opera: "Opera",parenting: "Parenting",philosophy: "Philosophy","photo&video": "Photo & Video",photography: "Photography",podcasts: "Podcasts","politics&currentevents": "Politics & Current Events",pop: "Pop",productivity: "Productivity","professional&technical": "Professional & Technical","programs&performances": "Programs & Performances","psychology&socialscience": "Psychology & Social Science","r&b/soul": "R&B/Soul",realitytv: "Reality TV",reference: "Reference",reggae: "Reggae",regionalindian: "Regional Indian","religion&spirituality": "Religion & Spirituality",ringtones: "Ringtones",rock: "Rock",romance: "Romance",russian: "Russian","sci-fi&fantasy": "Sci-Fi & Fantasy",science: "Science","science&medicine": "Science & Medicine","science&nature": "Science & Nature","scifi&fantasy": "Sci Fi & Fantasy",selfdevelopment: "Self Development",shortfilms: "Short Films","singer/songwriter": "Singer/Songwriter",socialnetworking: "Social Networking",socialscience: "Social Science",society: "Society","society&culture": "Society & Culture",soundtrack: "Soundtrack","speakers&storytellers": "Speakers & Storytellers",specialinterest: "Special Interest",spokenword: "Spoken Word",sports: "Sports","sports&outdoors": "Sports & Outdoors","sports&recreation": "Sports & Recreation","teaching&learning": "Teaching & Learning",technology: "Technology",teens: "Teens",textbooks: "Textbooks",thriller: "Thriller",tokusatsu: "Tokusatsu",tones: "Ringtones",topalbums: "Top Albums",topaudiobooks: "Top Audiobooks",topfreeapplications: "Top Free Applications",topfreeebooks: "Top Free Books",topfreeipadapplications: "Top Free iPad Applications",topfreemacapps: "Top Free Mac Apps",topgrossingapplications: "Top Grossing Applications",topgrossingipadapplications: "Top Grossing iPad Applications",topgrossingmacapps: "Top Grossing Mac Apps",topimixes: "Top iMixes",topitunesucollections: "Top iTunes U Collections",topitunesucourses: "Top iTunes U Courses",topmacapps: "Top Mac Apps",topmovies: "Top Movies",topmusicvideos: "Top Music Videos",toppaidapplications: "Top Paid Applications",toppaidebooks: "Top Paid Books",toppaidipadapplications: "Top Paid iPad Applications",toppaidmacapps: "Top Paid Mac Apps",toppodcasts: "Top Podcasts",topsongs: "Top Songs",topvideorentals: "Top Video Rentals",travel: "Travel","travel&adventure": "Travel & Adventure",turkish: "Turkish","tv&film": "TV & Film",tvshows: "TV Shows",urban: "Urban",utilities: "Utilities",video: "Video",vocal: "Vocal",weather: "Weather",western: "Western",world: "World"}
}), require.register("views/application", function(e, t, s) {
s.exports = App.ApplicationView = Ember.View.extend({classNames: "app-wrapper",classNameBindings: ["isHome:app-wrapper--home"],templateName: "application",isHome: Ember.computed.oneWay("controller.isHome")})
}), require.register("views/home", function(e, t, s) {
s.exports = App.HomeView = Ember.View.extend({addBodyClass: function() {
return Ember.$("body").addClass("body-home")
}.on("didInsertElement"),removeBodyClass: function() {
return Ember.$("body").removeClass("body-home")
}.on("willDestroyElement")})
}), require.register("views/itunes_item/screenshots_overlay", function() {
App.ItunesItemScreenshotsOverlayView = Ember.View.extend(App.OverlayMixin, {index: Ember.computed.oneWay("controller.index"),highlightCurrentImage: function() {
var e, t, s;
return t = this.$(".app-screenshot:eq(" + this.get("index") + ")"), 0 === this.get("index") ? t.addClass("app-screenshot--highlight") : (e = Ember.$("img", t), e.length && null != (s = this.$(".app-screenshots-wrapper")) ? s.scrollTo(e, 300, {margin: !0,easing: "easeInQuad",onAfter: function() {
return t.addClass("app-screenshot--highlight")
}}) : void 0)
},afterMenuShown: function() {
var e;
return null != (e = this.$()) ? e.imagesLoaded().always(function(e) {
return function() {
return e.highlightCurrentImage()
}
}(this)) : void 0
},removeListeners: function() {
return this.$().off(".imagesLoaded")
}.on("willDestroyElement")})
}), require.register("views/menu", function(e, t, s) {
s.exports = App.MenuView = Ember.View.extend(App.OverlayMixin, {appearanceDirection: "none"})
}), require.register("config/environments/production", function() {
window.TAPAS_ENV = {name: "production",appName: "fnd",appSubtitle: "Experience the App Store and iTunes Anywhere",url: "https://fnd.io",analyticsEnabled: !0,googleAnalyticsId: "UA-49302112-1",googleAnalyticsDomain: "fnd.io",errorReportingEnabled: !0}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment