Become An Instant Authority In The Ever-Growing "Email Marketing" Niche With THIS Brand New Premium PLR Product & A Full-Blown Sales Funnel That You Can Brand As Your Own & Sell For 100% Profit Over & Over Again!

Become An Instant Authority In The Ever-Growing "Email Marketing" Niche With THIS Brand New Premium PLR Product & A Full-Blown Sales Funnel That You Can Brand As Your Own & Sell For 100% Profit Over & Over Again!

Premium Done For You Bundle With Full Private Label Rights That You Can Sell As Your Own And Keep 100% Of The Profits!

Premium Done For You Bundle With Full Private Label Rights That You Can Sell As Your Own And Keep 100% Of The Profits!

Why Grab This PLR Product Today?

Why Grab This PLR Product Today?

  • The Fastest Way To Shortcut The Process and Skip Straight To The “Money In Your Bank Account” With a 100% Done For You Sales Funnel and a Widely Desirable Product...
  • The Fastest Way To Shortcut The Process and Skip Straight To The “Money In Your Bank Account” With a 100% Done For You Sales Funnel and a Widely Desirable Product...
  • "Same Day" Approach for Positioning Yourself as an AUTHORITY Figure in a Multi-Billion Dollar Niche…
  • "Same Day" Approach for Positioning Yourself as an AUTHORITY Figure in a Multi-Billion Dollar Niche…
  • Plug-In Once and Sell the Product Every Day For Years... Without Your Content Ever Getting Stale or Dated... And Keep 100% Of The Profits!
  • Plug-In Once and Sell the Product Every Day For Years... Without Your Content Ever Getting Stale or Dated... And Keep 100% Of The Profits!
  • Split The Content and Use It as Value Driven Blog Posts, Action Driving Emails, or Money Making Bonuses!
  • Split The Content and Use It as Value Driven Blog Posts, Action Driving Emails, or Money Making Bonuses!

100% Money Back Guarantee. Risk Free.

100% Money Back Guarantee. Risk Free.

Take A Peek at Some Of The Results I’ve Gotten Selling PLR Products…

Take A Peek at Some Of The Results I’ve Gotten Selling PLR Products…

From The Desk Of Kevin Fahey,

From The Desk Of Kevin Fahey,

Dear Marketer,

I'm 100% guaranteed you'll agree with me that when it comes to online marketing and rapidly growing your profits...

Having a widely desirable product to go along with a high converting sales funnel is the most important piece of the puzzle...

The problem is...

Creating products from scratch... Writing copy... Building and testing sales funnels... These are the most complicated, tedious, tiring, and time-consuming activities there can EVER be...

Not to mention if you lack skill, even if you dedicate countless hours to put everything together, your sales funnel can flop... BADLY...

If you decide to outsource it - it can get extremely expensive...

I don't think I have to tell you but in most cases... Cards are not really in your favor...

But...

Dear Marketer,

I'm 100% guaranteed you'll agree with me that when it comes to online marketing and rapidly growing your profits...

Having a widely desirable product to go along with a high converting sales funnel is the most important piece of the puzzle...

The problem is...

Creating products from scratch... Writing copy... Building and testing sales funnels... These are the most complicated, tedious, tiring, and time-consuming activities there can EVER be...

Not to mention if you lack skill, even if you dedicate countless hours to put everything together, your sales funnel can flop... BADLY...

If you decide to outsource it - it can get extremely expensive...

I don't think I have to tell you but in most cases... Cards are not really in your favor...

But...

But What If There Was an Easier & Much More Cost Effective Way?

But What If There Was an Easier & Much More Cost Effective Way?

As a marketer... And especially if you're someone who's running a business alone... There are so many important things you have to take care of, manage, and focus on - on a day to day basis...

And the last thing you want to do is sit in front of your laptop tapping your precious time away at the keyboard trying to come up with a high converting sales page...

Writing engaging and persuasive email swipes...

Building out and designing sales funnels from scratch...

All by yourself...

As a marketer... And especially if you're someone who's running a business alone... There are so many important things you have to take care of, manage, and focus on - on a day to day basis...

And the last thing you want to do is sit in front of your laptop tapping your precious time away at the keyboard trying to come up with a high converting sales page...

Writing engaging and persuasive email swipes...

Building out and designing sales funnels from scratch...

All by yourself...

It's a long and draining process that gets even the most ambitious marketers give up before they even get started...

It's a long and draining process that gets even the most ambitious marketers give up before they even get started...

But what if there was a cost-effective and proven way to shortcut this process and get straight to the dollars in your bank account?

Fortunately for you... There is!

And this shortcut is called Private Label Rights...

But what if there was a cost-effective and proven way to shortcut this process and get straight to the dollars in your bank account?

Fortunately for you... There is!

And this shortcut is called Private Label Rights...

Now Stop For A Second...

Now Stop For A Second...

I know exactly what you're thinking...

I know exactly what you're thinking...

When you read or hear anything that has "PLR" in it, the first image that comes to your mind is old looking graphics and outdated content that was only relevant years ago...

Yup... I'm definitely NOT talking about that kind of PLR...

I'm talking about PREMIUM PLR product that, as you're about to see, is light years ahead of anything that's currently available on the market...

In other words...

When you read or hear anything that has "PLR" in it, the first image that comes to your mind is old looking graphics and outdated content that was only relevant years ago...

Yup... I'm definitely NOT talking about that kind of PLR...

I'm talking about PREMIUM PLR product that, as you're about to see, is light years ahead of anything that's currently available on the market...

In other words...

It's The Rolls Royce Of PLR Products

It's The Rolls Royce Of PLR Products

Me and my team of "A-List" designers and writers went the extra mile and have done all the boring, tedious and painful tasks for you so that you can focus on working on your business... Instead of working in your business.

We've put together this exclusive PLR bundle that you can get instant access to today, and it has everything you need to tap into the ever growing "work from home" niche...

Me and my team of "A-List" designers and writers went the extra mile and have done all the boring, tedious and painful tasks for you so that you can focus on working on your business... Instead of working in your business.

We've put together this exclusive PLR bundle that you can get instant access to today, and it has everything you need to tap into the ever growing "work from home" niche...

  • Professionally written "value driven" content
  • Professionally written "value driven" content
  • Attention grabbing and eye catching graphics
  • Attention grabbing and eye catching graphics
  • Persuasive & hypnotic sales letter
  • Persuasive & hypnotic sales letter
  • Full blown "conversion driven" sales funnel
  • Full blown "conversion driven" sales funnel
  • As well as other promotional material
  • As well as other promotional material

All in all... This whole entire bundle... It's literally the Rolls Royce of PLR Products.

All in all... This whole entire bundle... It's literally the Rolls Royce of PLR Products.

Introducing…

Introducing…

Premium PLR Reports

Premium PLR Reports

100% Money Back Guarantee. Risk Free.

100% Money Back Guarantee. Risk Free.

Premium PLR Reports Bundle is a Complete Business In a Box in the "Email Marketing" niche with Full White Label Private Label Rights.

Premium PLR Reports Bundle is a Complete Business In a Box in the "Email Marketing" niche with Full White Label Private Label Rights.

Fully customizable content that will take your customers through the exact steps to building a solid and reliable online business from scratch...

Included premium quality book and resources provide immediately actionable content along with tested & proven strategies anyone can implement in the next 10 to 15 minutes...

But it doesn't just end there!

We created everything from scratch and formatted it in a way so that you can turn the content into articles, blog posts, or emails.

So now you have the choice to instantly deliver exclusive, high quality "Email Marketing" content as a series of blog posts, your own branded E-Book, or a powerful training...

WITHOUT doing any extra work!

This new Premium PLR package was designed specifically to help YOU bring proven email marketing content, knowledge, and techniques to your audience. 

And let's be honest... Email Marketing is ALREADY one of the BIGGEST niches out there...

On top of that, with what's happening in the world right now, people left and right are trying to find ways to generate additional income online...

Meaning there will be even more people diving right into Online Marketing and using Email Marketing as the main focus...

And with THIS Premium PLR Reports bundle, you're getting the front-row ticket for YOU to cash in on this already MASSIVE yet ever-growing niche...

With this Golden Ticket, you will get everything you need to build a targeted funnel that will help you build your list AND sell products and services.

On top of that, we are even including a step-by-step training showing you how to set up this funnel, start driving ready-to-buy traffic, and maximize your profits with the Premium PLR Reports bundle... Fast and almost Effortlessly…

With that being said...

Fully customizable content that will take your customers through the exact steps to building a solid and reliable online business from scratch...

Included premium quality book and resources provide immediately actionable content along with tested & proven strategies anyone can implement in the next 10 to 15 minutes...

But it doesn't just end there!

We created everything from scratch and formatted it in a way so that you can turn the content into articles, blog posts, or emails.

So now you have the choice to instantly deliver exclusive, high quality "Email Marketing" content as a series of blog posts, your own branded E-Book, or a powerful training...

WITHOUT doing any extra work!

This new Premium PLR package was designed specifically to help YOU bring proven email marketing content, knowledge, and techniques to your audience. 

And let's be honest... Email Marketing is ALREADY one of the BIGGEST niches out there...

On top of that, with what's happening in the world right now, people left and right are trying to find ways to generate additional income online...

Meaning there will be even more people diving right into Online Marketing and using Email Marketing as the main focus...

And with THIS Premium PLR Reports bundle, you're getting the front-row ticket for YOU to cash in on this already MASSIVE yet ever-growing niche...

With this Golden Ticket, you will get everything you need to build a targeted funnel that will help you build your list AND sell products and services.

On top of that, we are even including a step-by-step training showing you how to set up this funnel, start driving ready-to-buy traffic, and maximize your profits with the Premium PLR Reports bundle... Fast and almost Effortlessly…

With that being said...

Here's Exactly What You Are Going To Get Inside...

Here's Exactly What You Are Going To Get Inside...

Module 1

Module 1

High Quality E-Book

High Quality E-Book

The main E-Book is called "Email Marketing Power". It's a brand new premium guide to Email Marketing and money online from the comfort of your own home.

It's not just another PLR eBook you can find on random sites online. This is dramatically different from anything you've ever read because it's more of a "field guide" to email marketing than a traditional "book".

It's been written by a professional writer with countless years of writing experience under his belt, so you can be 100% confident you will instantly position yourself as an authority figure by branding it as your own!

The main E-Book is called "Email Marketing Power". It's a brand new premium guide to Email Marketing and money online from the comfort of your own home.

It's not just another PLR eBook you can find on random sites online. This is dramatically different from anything you've ever read because it's more of a "field guide" to email marketing than a traditional "book".

It's been written by a professional writer with countless years of writing experience under his belt, so you can be 100% confident you will instantly position yourself as an authority figure by branding it as your own!

What's Included?

What's Included?

  • Over 10,000 words (33+ pages) of "how to", step-by-step content. 100% unique and original.
  • Editable Doc file included so you can edit the book as you wish.
  • Professionally formatted and styled
  • PDF version included.
  • Over 10,000 words (33+ pages) of "how to", step-by-step content. 100% unique and original.
  • Editable Doc file included so you can edit the book as you wish.
  • Professionally formatted and styled
  • PDF version included.

Checklist

Checklist

As soon as your customers finish going through the book, they can print out this easy to digest checklist and keep it on the corner of their desk for future references, to make sure they do not miss the most important and crucial steps when the time comes to implement the strategies they learn inside the book.

It will be a great companion to the main book that your customers will highly appreciate.

As soon as your customers finish going through the book, they can print out this easy to digest checklist and keep it on the corner of their desk for future references, to make sure they do not miss the most important and crucial steps when the time comes to implement the strategies they learn inside the book.

It will be a great companion to the main book that your customers will highly appreciate.

Module 2

Module 2

Resource Cheat Sheet

Resource Cheat Sheet

A cheat sheet is a perfect tool that will help your customers digest and really understand the concepts inside the book.

It breaks down every single aspect of the training into easily actionable steps that will allow them to implement the strategies so much faster and smoother.

A cheat sheet is a perfect tool that will help your customers digest and really understand the concepts inside the book.

It breaks down every single aspect of the training into easily actionable steps that will allow them to implement the strategies so much faster and smoother.

Module 3

Module 3

Mind Map

Mind Map

With a quick glance over this mind-map, your customers will be able to see the mountain top view which will help them to stay on course, stay focused, and avoid getting overwhelmed.

With a quick glance over this mind-map, your customers will be able to see the mountain top view which will help them to stay on course, stay focused, and avoid getting overwhelmed.

Module 4

Module 4

Resource Report

Resource Report

Inside the resource report, you'll have access to the best tools, training, blogs and forums. All focusing around Email Marketing

Inside the resource report, you'll have access to the best tools, training, blogs and forums. All focusing around Email Marketing

Module 5

Module 5

Ready Made "Hypnotic" Sales Letter & Thank You Page

Ready Made "Hypnotic" Sales Letter & Thank You Page

BRAND NEW! 100% Mobile-Friendly And Responsive On All Devices!

BRAND NEW! 100% Mobile-Friendly And Responsive On All Devices!

Module 6

Module 6

The sales page is written by a professional copywriter with years of experience and a "slick" set of tools under his belt.

So you can rest assured the sales page is designed and written strictly to convert your visitors into customers.

The sales page is written by a professional copywriter with years of experience and a "slick" set of tools under his belt.

So you can rest assured the sales page is designed and written strictly to convert your visitors into customers.

  • No copywriting fees.
  • No wasted time trying to write sales copy yourself.
  • High converting full blown sales page!
  • No copywriting fees.
  • No wasted time trying to write sales copy yourself.
  • High converting full blown sales page!

On top of that, you're also getting a Thank You page so that you can deliver the product to your customers in style.

On top of that, you're also getting a Thank You page so that you can deliver the product to your customers in style.

Optin Page & Lead Magnet

Optin Page & Lead Magnet

Optin Page:

Before you ask for the sale you need to get people on your email list, otherwise, you're just wasting your time and/or hard earned money.

But I'm sure you already know that, right?

And that's exactly why, as a part of this offer, you're getting a high converting capture page that will attract you leads like the honey attracts bees.

The capture page is built with one goal and one goal only. To convert cold traffic into hot, hot leads.

Simply insert your opt-in form code and you're ready to generate leads who are ready to spend money. 

And don't worry, there's a step-by-step training inside showing you how to set everything up easily, quickly, and effortlessly.

Optin Page:

Before you ask for the sale you need to get people on your email list, otherwise, you're just wasting your time and/or hard earned money.

But I'm sure you already know that, right?

And that's exactly why, as a part of this offer, you're getting a high converting capture page that will attract you leads like the honey attracts bees.

The capture page is built with one goal and one goal only. To convert cold traffic into hot, hot leads.

Simply insert your opt-in form code and you're ready to generate leads who are ready to spend money. 

And don't worry, there's a step-by-step training inside showing you how to set everything up easily, quickly, and effortlessly.

Module 7

Module 7

Lead Magnet:

Give this "Curiosity Sparking" report away to build your list as well as authority, trust, and relationship with your subscribers.

This lead magnet will be a perfect bribe to get people onto your list and get them warmed up and drooling over the main product that puts money into your pockets.

"Email Marketing Power" Book has been automatically featured as the "recommended product" inside this report so you can automatically make sales when people go through this report.

Lead Magnet:

Give this "Curiosity Sparking" report away to build your list as well as authority, trust, and relationship with your subscribers.

This lead magnet will be a perfect bribe to get people onto your list and get them warmed up and drooling over the main product that puts money into your pockets.

"Email Marketing Power" Book has been automatically featured as the "recommended product" inside this report so you can automatically make sales when people go through this report.

Professional Graphics

Professional Graphics

Inside you get the complete set of professionally designed graphics, including E-Covers, banners and other essential graphics to make the product more presentable and eye-catching.

You'll get all the image files in PSD format, which will allow you to edit everything as you please. 

Rebrand, change colors, add your logos or your own images to fit your brand.

Inside you get the complete set of professionally designed graphics, including E-Covers, banners and other essential graphics to make the product more presentable and eye-catching.

You'll get all the image files in PSD format, which will allow you to edit everything as you please. 

Rebrand, change colors, add your logos or your own images to fit your brand.

Module 8

Module 8

10 High Quality Articles

10 High Quality Articles

You'll get 10 top-notch articles all focused around the "Email Marketing" niche.

Use these articles for your blog posts, emails, social media content... Use them to create powerful training videos or even full blown courses.

Compile them into a short report to promote affiliate products...

Or use them as bonuses for your affiliate promotions.

You'll get 10 top-notch articles all focused around the "Email Marketing" niche.

Use these articles for your blog posts, emails, social media content... Use them to create powerful training videos or even full blown courses.

Compile them into a short report to promote affiliate products...

Or use them as bonuses for your affiliate promotions.

Module 9

Module 9

  • Private label rights included
  • Each article is at least 500 words in length
  • Formatted in TXT version for easy copying and pasting
  • Includes all articles in DOC format as well
  • Private label rights included
  • Each article is at least 500 words in length
  • Formatted in TXT version for easy copying and pasting
  • Includes all articles in DOC format as well

Promotional Emails

Promotional Emails

Use these proven email swipes to start extracting sales from your email subscribers... Immediately!

Simply choose the email swipe that fits you, pick a subject line, add it to your autoresponder... Hit send. And you're done!

These swipes have been written by a professional copywriter and their sole purpose is high open rates and high click-through rates.

Use these proven email swipes to start extracting sales from your email subscribers... Immediately!

Simply choose the email swipe that fits you, pick a subject line, add it to your autoresponder... Hit send. And you're done!

These swipes have been written by a professional copywriter and their sole purpose is high open rates and high click-through rates.

Module 10

Module 10

License Pack

License Pack

And of course, as promised, you're also getting the private label rights, master resell rights and resell rights licenses.

These certificates grant you rights to the above.

And of course, as promised, you're also getting the private label rights, master resell rights and resell rights licenses.

These certificates grant you rights to the above.

Module 11

Module 11

Customer Generating

Premium Quality Exclusive Content

At Your Fingertips... In Seconds!

Customer Generating

Premium Quality Exclusive Content

At Your Fingertips... In Seconds!

It's never been easier to have exclusive professionally written content that turns traffic into engaged leads and leads into loyal customers at will...

The type of content that immediately positions you as an authority figure and makes you stand out from the crowd!

Let's be honest here...

Creating "top-level" content can be extremely painful and time-consuming. Especially if you don't have the time or the skills...

But with Premium PLR Reports it's never been easier!

It's never been easier to have exclusive professionally written content that turns traffic into engaged leads and leads into loyal customers at will...

The type of content that immediately positions you as an authority figure and makes you stand out from the crowd!

Let's be honest here...

Creating "top-level" content can be extremely painful and time-consuming. Especially if you don't have the time or the skills...

But with Premium PLR Reports it's never been easier!

Your Golden Ticket To Fast & Easy Profits…

Your Golden Ticket To Fast & Easy Profits…

This is your opportunity to make HUGE profits, with little to no effort, by tapping into a hungry market that’s craving for the information that's inside this PLR bundle... 

Bear in mind, that under the conditions we currently are, more and more people are looking to start making money online...

In other words, this industry is set to EXPLODE over the upcoming months and...

With THIS Premium PLR Reports Bundle, YOU are getting a front-row ticket to instantly cash in...

This is your opportunity to make HUGE profits, with little to no effort, by tapping into a hungry market that’s craving for the information that's inside this PLR bundle... 

Bear in mind, that under the conditions we currently are, more and more people are looking to start making money online...

In other words, this industry is set to EXPLODE over the upcoming months and...

With THIS Premium PLR Reports Bundle, YOU are getting a front-row ticket to instantly cash in...

100% Money Back Guarantee. Risk Free.

100% Money Back Guarantee. Risk Free.

More Of What You Love & Less Of What You Hate...

More Of What You Love & Less Of What You Hate...

Imagine being able to save countless hours on mind-numbing research, exhausting writing and have all the time in the world to enjoy your favorite activities.

Imagine being able to save countless hours on mind-numbing research, exhausting writing and have all the time in the world to enjoy your favorite activities.

Picture having all of your marketing content produced by the Top Level writers literally for just pennies on the dollar.

See yourself, becoming an instant authority, breaking in and dominating the hottest niche that has the potential to bring in massive profits for your business.

Picture having all of your marketing content produced by the Top Level writers literally for just pennies on the dollar.

See yourself, becoming an instant authority, breaking in and dominating the hottest niche that has the potential to bring in massive profits for your business.

Experience what it's like to have your marketing working like a well oiled ATM machine printing you money... Almost on DEMAND.

Feel a level of certainty, knowing that your marketing is optimized for conversions and content is written precisely to get your prospects to take action...

Experience what it's like to have your marketing working like a well oiled ATM machine printing you money... Almost on DEMAND.

Feel a level of certainty, knowing that your marketing is optimized for conversions and content is written precisely to get your prospects to take action...

And it's EXACTLY what Premium PLR Reports get you!

But don't just take my word for it...

And it's EXACTLY what Premium PLR Reports get you!

But don't just take my word for it...

Here’s Why Our Customers Are Totally In Love With Premium PLR Reports!

Here’s Why Our Customers Are Totally In Love With Premium PLR Reports!

Why You Need To Secure Your Copy Of Premium PLR Reports RIGHT NOW! 

Why You Need To Secure Your Copy Of Premium PLR Reports RIGHT NOW! 

  • This ONE Premium PLR Reports Bundle alone can literally alter the course of your business...transforming you into an ultra-premium brand that people crave to be associated with.
  • The amazing bundle will let you fill your autoresponder with value-driven emails, your blog with attention-grabbing posts, and any other marketing channel with action demanding content pretty much at the touch of a button! (This will clearly save you a tremendous amount of time, and it will save you a ton of money too.)
  • This ONE Premium PLR Reports Bundle alone can literally alter the course of your business...transforming you into an ultra-premium brand that people crave to be associated with.
  • The amazing bundle will let you fill your autoresponder with value-driven emails, your blog with attention-grabbing posts, and any other marketing channel with action demanding content pretty much at the touch of a button! (This will clearly save you a tremendous amount of time, and it will save you a ton of money too.)

Forget the hype and the typical "marketing" you're used to. Stick to what's "actually" working. This simple approach used to create the content inside works like crazy - and in this case, it barely cost any money FOR YOU to deploy it.

Forget the hype and the typical "marketing" you're used to. Stick to what's "actually" working. This simple approach used to create the content inside works like crazy - and in this case, it barely cost any money FOR YOU to deploy it.

  • Premium PLR Reports is the fastest and most surefire way to become a TRUSTED AUTHORITY in your marketplace.
  • Plus, Full White Label and Private Label Rights Included! Rebrand, edit and put your name as if you were the author… Split the content, repurpose or use it as is... It’s totally up to you!
  • Premium PLR Reports is the fastest and most surefire way to become a TRUSTED AUTHORITY in your marketplace.
  • Plus, Full White Label and Private Label Rights Included! Rebrand, edit and put your name as if you were the author… Split the content, repurpose or use it as is... It’s totally up to you!

Plus, Get $425 In Bonuses For FREE When You GRAB PREMIUM PLR REPORTS BUNDLE RIGHT NOW!

Plus, Get $425 In Bonuses For FREE When You GRAB PREMIUM PLR REPORTS BUNDLE RIGHT NOW!

I truly believe this bundle will put more money in your pocket than any other single thing you could do, buy, or experience.

But also, because I want to over-deliver for you as much as possible, I want to give you FIVE more special gifts when you claim your Premium PLR Reports Bundle...

These bonuses I almost didn’t include because they could be entire products themselves…

But I want you to have EVERY advantage in selling your products blazing fast and seeing a surge of new customers.

Plus, I want this decision to be a no-brainer for you.

I truly believe this bundle will put more money in your pocket than any other single thing you could do, buy, or experience.

But also, because I want to over-deliver for you as much as possible, I want to give you FIVE more special gifts when you claim your Premium PLR Reports Bundle...

These bonuses I almost didn’t include because they could be entire products themselves…

But I want you to have EVERY advantage in selling your products blazing fast and seeing a surge of new customers.

Plus, I want this decision to be a no-brainer for you.

Bonus #1:

Bonus #1:

Exclusive Training On How To Setup Each Funnel

Exclusive Training On How To Setup Each Funnel

This will show you the FAST and EASY way to set up your wildly profitable funnel and get immediate sales with the power of the "Premium PLR Reports" bundle!

With this Exclusive bonus, you get the Step By Step Training Videos that will take you by the hand and guide you through the entire process to have your sales funnel fully setup and generating you sales literally in hours!

Value: $97

This will show you the FAST and EASY way to set up your wildly profitable funnel and get immediate sales with the power of the "Premium PLR Reports" bundle!

With this Exclusive bonus, you get the Step By Step Training Videos that will take you by the hand and guide you through the entire process to have your sales funnel fully setup and generating you sales literally in hours!

Value: $97

Bonus #2:

Bonus #2:

The Ultimate PLR Training Revealing The Counterintuitive Secrets To Making Huge Profits With Private Label Rights

The Ultimate PLR Training Revealing The Counterintuitive Secrets To Making Huge Profits With Private Label Rights

These days PLR products get a bad rep mostly for the old looking graphics and low-quality content...

But I promise you there's hidden gold in PLR if you know how to get the most out of it...

Over the years I've personally generated thousands upon thousands of dollars with PLR products...

And in this EXACT training, I reveal the counterintuitive secrets to unlocking massive profits with PLR content...

Value: $67

These days PLR products get a bad rep mostly for the old looking graphics and low-quality content...

But I promise you there's hidden gold in PLR if you know how to get the most out of it...

Over the years I've personally generated thousands upon thousands of dollars with PLR products...

And in this EXACT training, I reveal the counterintuitive secrets to unlocking massive profits with PLR content...

Value: $67

Bonus #3:

Bonus #3:

A Complete PLR Training Series

A Complete PLR Training Series

In this series of training, you'll get a complete breakdown of how I built a 6 figure online business in the PLR niche.

On top of that, I'll show how you can use PLR in your business simply to save time, increase profits and completely eliminate stress.

Plus additional tactics and strategies that will help you grow your business and make more money with PLR.

Value: $67

In this series of training, you'll get a complete breakdown of how I built a 6 figure online business in the PLR niche.

On top of that, I'll show how you can use PLR in your business simply to save time, increase profits and completely eliminate stress.

Plus additional tactics and strategies that will help you grow your business and make more money with PLR.

Value: $67

Bonus #4:

Bonus #4:

Exclusive Access To a Private Mastermind Group

Exclusive Access To a Private Mastermind Group

Meet and connect with top marketers in the industry who will push you towards success... Hang out with other "PLR Marketers", share knowledge, ideas, and experience to move all parts of your business forward...

And last, but not least - ask questions and get immediate help whenever you need it!

Value: $97

Meet and connect with top marketers in the industry who will push you towards success... Hang out with other "PLR Marketers", share knowledge, ideas, and experience to move all parts of your business forward...

And last, but not least - ask questions and get immediate help whenever you need it!

Value: $97

Bonus #5:

Bonus #5:

My Gun-To-The-Head Traffic Strategy

My Gun-To-The-Head Traffic Strategy

Inside I reveal what I would do if I was forced to generate thousands of visitors to my funnels and offers.

I layout in detail my go-to strategies to flooding my funnels with warm and ready-to-buy traffic that stuffs my bank accounts with cold hard cash.

Value: $97

Inside I reveal what I would do if I was forced to generate thousands of visitors to my funnels and offers.

I layout in detail my go-to strategies to flooding my funnels with warm and ready-to-buy traffic that stuffs my bank accounts with cold hard cash.

Value: $97

It’s Only Fair To Warn You… This Is a Time Sensitive Offer...

It’s Only Fair To Warn You… This Is a Time Sensitive Offer...

This is a strictly LIMITED TIME discounted offer!

The price will jump significantly - likely to $97 in the near future...

The steeply discounted price on this page you are seeing right now is to encourage you to take advantage of this limited-time special launch offer.

In fact, if you exit right now and come back later, you will end up paying more!

So take action now to enjoy this incredibly low one-time introductory price!

This is a strictly LIMITED TIME discounted offer!

The price will jump significantly - likely to $97 in the near future...

The steeply discounted price on this page you are seeing right now is to encourage you to take advantage of this limited-time special launch offer.

In fact, if you exit right now and come back later, you will end up paying more!

So take action now to enjoy this incredibly low one-time introductory price!

100% Money Back Guarantee. Risk Free.

100% Money Back Guarantee. Risk Free.

And remember, you’re NOT taking any risks, because you’re covered by...

And remember, you’re NOT taking any risks, because you’re covered by...

My Extremely Bold No Questions Asked "Triple Threat" Money Back Guarantee...

My Extremely Bold No Questions Asked "Triple Threat" Money Back Guarantee...

Look, I’m so confident this PLR bundle will be a breath of fresh air to your business, that after 14 days, you’re either THRILLED with the results and profits this bundle brings you or...

Look, I’m so confident this PLR bundle will be a breath of fresh air to your business, that after 14 days, you’re either THRILLED with the results and profits this bundle brings you or...

  • If you DON'T like the content inside this PLR Bundle...
  • If you're NOT head-over-heels about the results this product brings you...
  • Or even if you're just having a bad hair day...
  • If you DON'T like the content inside this PLR Bundle...
  • If you're NOT head-over-heels about the results this product brings you...
  • Or even if you're just having a bad hair day...

Just shoot me an email and I’ll give you a full refund, no questions asked!

Plus, I'll even let you keep the $425 worth of bonuses for free as my goodwill gift to you.

Yes, this bundle either gives you everything you're promised on this page, or you get your money back AND you get to keep all the bonuses for free.

No tricks. No gimmicks. None of that.

So if you’re interested, I only ask that you please act now...

Just shoot me an email and I’ll give you a full refund, no questions asked!

Plus, I'll even let you keep the $425 worth of bonuses for free as my goodwill gift to you.

Yes, this bundle either gives you everything you're promised on this page, or you get your money back AND you get to keep all the bonuses for free.

No tricks. No gimmicks. None of that.

So if you’re interested, I only ask that you please act now...

I'm Sure You're Wondering... What Happens If You Choose Not To Get This Premium PLR Bundle

I'm Sure You're Wondering... What Happens If You Choose Not To Get This Premium PLR Bundle

Well, I guess the answer is simple...

NOTHING.

You'll keep on wasting countless hours doing mind-numbing research and tapping away your precious time at the keyboard creating marketing content and continue to get the same results you've been getting...

And nothing will change.

If you're okay with that... then, of course, you should pass on our Email Marketing Power - Premium PLR Reports Bundle.

BUT, if you want to finally supercharge your marketing with premium, professionally written and intellectually engaging content and effortlessly explode your audience engagement, skyrocket your conversions, and boost your sales... then I highly recommend you jump at this chance and grab Premium PLR Reports Bundle RIGHT NOW.

Well, I guess the answer is simple...

NOTHING.

You'll keep on wasting countless hours doing mind-numbing research and tapping away your precious time at the keyboard creating marketing content and continue to get the same results you've been getting...

And nothing will change.

If you're okay with that... then, of course, you should pass on our Email Marketing Power - Premium PLR Reports Bundle.

BUT, if you want to finally supercharge your marketing with premium, professionally written and intellectually engaging content and effortlessly explode your audience engagement, skyrocket your conversions, and boost your sales... then I highly recommend you jump at this chance and grab Premium PLR Reports Bundle RIGHT NOW.

100% Money Back Guarantee. Risk Free.

100% Money Back Guarantee. Risk Free.

Here's Exactly What You Get Inside:

Here's Exactly What You Get Inside:

To Your Success,

To Your Success,

Kevin Fahey

Kevin Fahey

PS. In case you're one of those people (like me) who just skips to the end of the page, here’s a “Too Long, Didn’t Read” version for you:

On this page, you have a chance to grab our Premium PLR Reports "Email Marketing Power" Bundle.

It’s one of the best PLR products available on the market right now.

PS. In case you're one of those people (like me) who just skips to the end of the page, here’s a “Too Long, Didn’t Read” version for you:

On this page, you have a chance to grab our Premium PLR Reports "Email Marketing Power" Bundle.

It’s one of the best PLR products available on the market right now.

The Rolls Royce Of The PLR Products As We Like To Call It.

The Rolls Royce Of The PLR Products As We Like To Call It.

  • Premium E-Book that is dramatically different from anything you've ever read because it's more of a "field guide" to email marketing and making money online than a traditional "book".
  • A sales page designed strictly to convert your visitors into customers and written by a professional copywriter with years of experience and a "slick" set of tools under his belt.
  • Full-blown sales funnel that will attract leads like the honey attracts bees, and turn them into your most loyal customers.
  • Full White Label and Private Label Rights to all of the above! Rebrand, edit, put your name as if you were the author… Split the content, repurpose or use it as is... It’s totally up to you!
  • Premium E-Book that is dramatically different from anything you've ever read because it's more of a "field guide" to email marketing and making money online than a traditional "book".
  • A sales page designed strictly to convert your visitors into customers and written by a professional copywriter with years of experience and a "slick" set of tools under his belt.
  • Full-blown sales funnel that will attract leads like the honey attracts bees, and turn them into your most loyal customers.
  • Full White Label and Private Label Rights to all of the above! Rebrand, edit, put your name as if you were the author… Split the content, repurpose or use it as is... It’s totally up to you!
  • Bonus #1: Exclusive Training On How To Setup Each Funnel
  • Bonus #2: The Ultimate PLR Training Revealing The Counterintuitive Secrets To Making Huge Profits With Private Label Rights
  • Bonus #3: A Complete PLR Training Series
  • Bonus #4: Exclusive Access To a Private Mastermind Group
  • Bonus #5: My Gun-To-The-Head Traffic Strategy
  • Bonus #1: Exclusive Training On How To Setup Each Funnel
  • Bonus #2: The Ultimate PLR Training Revealing The Counterintuitive Secrets To Making Huge Profits With Private Label Rights
  • Bonus #3: A Complete PLR Training Series
  • Bonus #4: Exclusive Access To a Private Mastermind Group
  • Bonus #5: My Gun-To-The-Head Traffic Strategy

And on top of that, you are covered by “no questions asked” 14 Day Money Back Guarantee...

So click the button below to join before this opportunity passes you by and you miss out forever!

And on top of that, you are covered by “no questions asked” 14 Day Money Back Guarantee...

So click the button below to join before this opportunity passes you by and you miss out forever!

100% Money Back Guarantee. Risk Free.

100% Money Back Guarantee. Risk Free.

Frequently Asked Questions

Frequently Asked Questions

What are the PLR Rights?

Private Label Rights means you get full rights to add your name and claim the content as your own. You are free to sell the course anywhere or in any way that you see fit. The only thing you can’t do is pass on the PLR rights to your customers.

What are the PLR Rights?

Private Label Rights means you get full rights to add your name and claim the content as your own. You are free to sell the course anywhere or in any way that you see fit. The only thing you can’t do is pass on the PLR rights to your customers.

Why should I get this today?

Because it’s one the highest quality PLR offers that's currently available on the market. If you can make just one sale, you'll immediately cover your little investment. And on top of that, the bundle is jam-packed with goodies and content that you can use in your business to save time and make more money. In other words... It’s a no-brainer.

Why should I get this today?

Because it’s one the highest quality PLR offers that's currently available on the market. If you can make just one sale, you'll immediately cover your little investment. And on top of that, the bundle is jam-packed with goodies and content that you can use in your business to save time and make more money. In other words... It’s a no-brainer.

I’ve bought low-quality PLR in the past… what makes this different?

"Premium PLR Reports" bundle is literally the Rolls Royce of PLR products. It was created by a team of professional marketers, writers, and designers to ensure a high level of quality.

I’ve bought low-quality PLR in the past… what makes this different?

"Premium PLR Reports" bundle is literally the Rolls Royce of PLR products. It was created by a team of professional marketers, writers, and designers to ensure a high level of quality.

Are there any additional or ongoing fees?

Nope. Just a one-time investment and you immediately get access to everything mentioned on this page.

Are there any additional or ongoing fees?

Nope. Just a one-time investment and you immediately get access to everything mentioned on this page.

What if I'm not happy with the product?

I am 100% confident that you’ll love this PLR bundle, but if for any reason you’re not satisfied, simply send us an email and we’ll promptly refund your money. No questions asked. You get a full 14 days to go through all the material and make sure it's for you.

What if I'm not happy with the product?

I am 100% confident that you’ll love this PLR bundle, but if for any reason you’re not satisfied, simply send us an email and we’ll promptly refund your money. No questions asked. You get a full 14 days to go through all the material and make sure it's for you.

OK, so how do I get started?

Click the button below to get INSTANT ACCESS…

OK, so how do I get started?

Click the button below to get INSTANT ACCESS…

100% Money Back Guarantee. Risk Free.

100% Money Back Guarantee. Risk Free.

Email Marketing Power

Email Marketing Power

Plus, Exclusive Bonuses That Are All But Guaranteed To 10X Your Investment Almost Immediately:

Plus, Exclusive Bonuses That Are All But Guaranteed To 10X Your Investment Almost Immediately:

  • Engaging content marketing is the easiest way to create major demand for the products that you're selling.
  • Engaging content marketing is the easiest way to create major demand for the products that you're selling.

Neill MacKenzie

Neill MacKenzie

“It’s another home run for Kevin Fahey with his new Premium PLR Reports product. I’ve had a pre-launch peek under the bonnet and the sheer amount of content for the price is amazing.  Several components including the eBook, Checklist, Cheat Sheet, Mind Map and of course the Opt-In Page and Sales Page are all excellent in their own right, but when you add in the fact that they all include Private Label Rights (PLR) then the value of this product is truly outstanding.  I recommend you pick up Kevin’s Premium PLR Reports, add your name and buy button to the sales page ….. and run with it.”

“It’s another home run for Kevin Fahey with his new Premium PLR Reports product. I’ve had a pre-launch peek under the bonnet and the sheer amount of content for the price is amazing.  Several components including the eBook, Checklist, Cheat Sheet, Mind Map and of course the Opt-In Page and Sales Page are all excellent in their own right, but when you add in the fact that they all include Private Label Rights (PLR) then the value of this product is truly outstanding.  I recommend you pick up Kevin’s Premium PLR Reports, add your name and buy button to the sales page ….. and run with it.”

Olive Oliver

Olive Oliver

I wish I had the information in the work from home volume when I made the transition. It contains practical real-world advise about how to set up and be successful. There are many PLR offers on the market, but this is one of the few quality ones available. It is a must buy if you are looking for PLR of the highest standard. The PLR resources, sales funnel and follow up emails are outstanding. Not to mention the surprise bonus within the membership area.

I wish I had the information in the work from home volume when I made the transition. It contains practical real-world advise about how to set up and be successful. There are many PLR offers on the market, but this is one of the few quality ones available. It is a must buy if you are looking for PLR of the highest standard. The PLR resources, sales funnel and follow up emails are outstanding. Not to mention the surprise bonus within the membership area.

Jason Daly

Jason Daly

Love the ebook. Nice, clean layout and the content is fresh and relevant now. I love the Convertri share codes and other options available. The sales page is excellent for a PLR sales page! The site itself is very clean and uncluttered and modern feeling and I had no problem at all downloading the files. Excellent product and includes everything any marketer needs.

Love the ebook. Nice, clean layout and the content is fresh and relevant now. I love the Convertri share codes and other options available. The sales page is excellent for a PLR sales page! The site itself is very clean and uncluttered and modern feeling and I had no problem at all downloading the files. Excellent product and includes everything any marketer needs.

LAUNCH SPECIAL - PRICE INCREASES TO $29..00 SOON

LAUNCH SPECIAL - PRICE INCREASES TO $29..00 SOON

DIMESALE - PRICE INCREASES EVERY SALE

DIMESALE - PRICE INCREASES EVERY SALE

'),a=e();return Kinetic.document=r,Kinetic.window=Kinetic.document.createWindow(),Kinetic.window.Image=i.Image,Kinetic.root=t,Kinetic._nodeCanvas=i,void(module.exports=a)};'function'==typeof define&&define.amd&&define(e),Kinetic.document=document,Kinetic.window=window,Kinetic.root=t}((1,eval)('this'),function(){return Kinetic}),function(){Kinetic.Collection=function(){var e=[].slice.call(arguments),i=e.length,t=0;for(this.length=i;i>t;t++)this[t]=e[t];return this},Kinetic.Collection.prototype=[],Kinetic.Collection.prototype.each=function(t){for(var e=0;et;t++)e.push(this[t]);return e},Kinetic.Collection.toCollection=function(t){var e,i=new Kinetic.Collection,n=t.length;for(e=0;n>e;e++)i.push(t[e]);return i},Kinetic.Collection._mapMethod=function(t){Kinetic.Collection.prototype[t]=function(){var e,i=this.length,n=[].slice.call(arguments);for(e=0;i>e;e++)this[e][t].apply(this[e],n);return this}},Kinetic.Collection.mapMethods=function(t){var i=t.prototype;for(var e in i)Kinetic.Collection._mapMethod(e)},Kinetic.Transform=function(t){this.m=t&&t.slice()||[1,0,0,1,0,0]},Kinetic.Transform.prototype={copy:function(){return new Kinetic.Transform(this.m)},point:function(t){var e=this.m;return{x:e[0]*t.x+e[2]*t.y+e[4],y:e[1]*t.x+e[3]*t.y+e[5]}},translate:function(t,e){return this.m[4]+=this.m[0]*t+this.m[2]*e,this.m[5]+=this.m[1]*t+this.m[3]*e,this},scale:function(t,e){return this.m[0]*=t,this.m[1]*=t,this.m[2]*=e,this.m[3]*=e,this},rotate:function(t){var e=Math.cos(t),i=Math.sin(t),n=this.m[0]*e+this.m[2]*i,r=this.m[1]*e+this.m[3]*i,a=this.m[0]*-i+this.m[2]*e,o=this.m[1]*-i+this.m[3]*e;return this.m[0]=n,this.m[1]=r,this.m[2]=a,this.m[3]=o,this},getTranslation:function(){return{x:this.m[4],y:this.m[5]}},skew:function(t,e){var i=this.m[0]+this.m[2]*e,n=this.m[1]+this.m[3]*e,r=this.m[2]+this.m[0]*t,a=this.m[3]+this.m[1]*t;return this.m[0]=i,this.m[1]=n,this.m[2]=r,this.m[3]=a,this},multiply:function(t){var e=this.m[0]*t.m[0]+this.m[2]*t.m[1],i=this.m[1]*t.m[0]+this.m[3]*t.m[1],n=this.m[0]*t.m[2]+this.m[2]*t.m[3],r=this.m[1]*t.m[2]+this.m[3]*t.m[3],a=this.m[0]*t.m[4]+this.m[2]*t.m[5]+this.m[4],o=this.m[1]*t.m[4]+this.m[3]*t.m[5]+this.m[5];return this.m[0]=e,this.m[1]=i,this.m[2]=n,this.m[3]=r,this.m[4]=a,this.m[5]=o,this},invert:function(){var t=1/(this.m[0]*this.m[3]-this.m[1]*this.m[2]),e=this.m[3]*t,i=-this.m[1]*t,n=-this.m[2]*t,r=this.m[0]*t,a=t*(this.m[2]*this.m[5]-this.m[3]*this.m[4]),o=t*(this.m[1]*this.m[4]-this.m[0]*this.m[5]);return this.m[0]=e,this.m[1]=i,this.m[2]=n,this.m[3]=r,this.m[4]=a,this.m[5]=o,this},getMatrix:function(){return this.m},setAbsolutePosition:function(t,e){var i=this.m[0],n=this.m[1],r=this.m[2],s=this.m[3],a=this.m[4],c=this.m[5],o=(i*(e-c)-n*(t-a))/(i*s-n*r),h=(t-a-r*o)/i;return this.translate(h,o)}};var n='2d',r='[object Array]',a='[object Number]',o='[object String]',s=Math.PI/180,c=180/Math.PI,t='#',e='',h='0',u='Kinetic warning: ',l='Kinetic error: ',d='rgb(',i={aqua:[0,255,255],lime:[0,255,0],silver:[192,192,192],black:[0,0,0],maroon:[128,0,0],teal:[0,128,128],blue:[0,0,255],navy:[0,0,128],white:[255,255,255],fuchsia:[255,0,255],olive:[128,128,0],yellow:[255,255,0],orange:[255,165,0],gray:[128,128,128],purple:[128,0,128],green:[0,128,0],red:[255,0,0],pink:[255,192,203],cyan:[0,255,255],transparent:[255,255,255,0]},f=/rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)/;Kinetic.Util={_isElement:function(t){return!(!t||1!=t.nodeType)},_isFunction:function(t){return!!(t&&t.constructor&&t.call&&t.apply)},_isObject:function(t){return!!t&&t.constructor==Object},_isArray:function(t){return Object.prototype.toString.call(t)==r},_isNumber:function(t){return Object.prototype.toString.call(t)==a},_isString:function(t){return Object.prototype.toString.call(t)==o},_throttle:function(t,e,i){var n,r,s,a=null,o=0;i||(i={});var c=function(){o=i.leading===!1?0:(new Date).getTime(),a=null,s=t.apply(n,r),n=r=null};return function(){var h=(new Date).getTime();o||i.leading!==!1||(o=h);var u=e-(h-o);return n=this,r=arguments,0>=u?(clearTimeout(a),a=null,o=h,s=t.apply(n,r),n=r=null):a||i.trailing===!1||(a=setTimeout(c,u)),s}},_hasMethods:function(t){var e,i=[];for(e in t)this._isFunction(t[e])&&i.push(e);return i.length>0},createCanvasElement:function(){var t=Kinetic.document.createElement('canvas');return t.style=t.style||{},t},isBrowser:function(){return'object'!=typeof exports},_isInDocument:function(t){for(;t=t.parentNode;)if(t==Kinetic.document)return!0;return!1},_simplifyArray:function(t){var i,e,n=[],a=t.length,r=Kinetic.Util;for(i=0;a>i;i++)e=t[i],r._isNumber(e)?e=Math.round(1e3*e)/1e3:r._isString(e)||(e=e.toString()),n.push(e);return n},_getImage:function(t,e){var r,i;if(t)if(this._isElement(t))e(t);else if(this._isString(t))r=new Kinetic.window.Image,r.onload=function(){e(r)},r.src=t;else if(t.data){i=Kinetic.Util.createCanvasElement(),i.width=t.width,i.height=t.height;var a=i.getContext(n);a.putImageData(t,0,0),this._getImage(i.toDataURL(),e)} else e(null);else e(null)},_getRGBAString:function(t){var i=t.red||0,n=t.green||0,r=t.blue||0,a=t.alpha||1;return['rgba(',i,',',n,',',r,',',a,')'].join(e)},_rgbToHex:function(t,e,i){return((1>16&255,g:n>>8&255,b:255&n}},getRandomColor:function(){for(var e=(16777215*Math.random()i;i+=2)r=Kinetic.Util._getControlPoints(t[i-2],t[i-1],t[i],t[i+1],t[i+2],t[i+3],e),n.push(r[0]),n.push(r[1]),n.push(t[i]),n.push(t[i+1]),n.push(r[2]),n.push(r[3]);return n},_removeLastLetter:function(t){return t.substring(0,t.length-1)}}}(),function(){var e=Kinetic.Util.createCanvasElement(),t=e.getContext('2d'),i=Kinetic.UA.mobile?function(){var e=window.devicePixelRatio||1,i=t.webkitBackingStorePixelRatio||t.mozBackingStorePixelRatio||t.msBackingStorePixelRatio||t.oBackingStorePixelRatio||t.backingStorePixelRatio||1;return e/i}():1;Kinetic.Canvas=function(t){this.init(t)},Kinetic.Canvas.prototype={init:function(t){t=t||{};var e=t.pixelRatio||Kinetic.pixelRatio||i;this.pixelRatio=e,this._canvas=Kinetic.Util.createCanvasElement(),this._canvas.style.padding=0,this._canvas.style.margin=0,this._canvas.style.border=0,this._canvas.style.background='transparent',this._canvas.style.position='absolute',this._canvas.style.top=0,this._canvas.style.left=0},getContext:function(){return this.context},getPixelRatio:function(){return this.pixelRatio},setPixelRatio:function(t){this.pixelRatio=t,this.setSize(this.getWidth(),this.getHeight())},setWidth:function(t){this.width=this._canvas.width=t*this.pixelRatio,this._canvas.style.width=t+'px'},setHeight:function(t){this.height=this._canvas.height=t*this.pixelRatio,this._canvas.style.height=t+'px'},getWidth:function(){return this.width},getHeight:function(){return this.height},setSize:function(t,e){this.setWidth(t),this.setHeight(e)},toDataURL:function(t,e){try{return this._canvas.toDataURL(t,e)}catch(i){try{return this._canvas.toDataURL()}catch(i){return Kinetic.Util.warn('Unable to get data URL. '+i.message),''}}}},Kinetic.SceneCanvas=function(t){t=t||{};var e=t.width||0,i=t.height||0;Kinetic.Canvas.call(this,t),this.context=new Kinetic.SceneContext(this),this.setSize(e,i)},Kinetic.SceneCanvas.prototype={setWidth:function(t){var e=this.pixelRatio,i=this.getContext()._context;Kinetic.Canvas.prototype.setWidth.call(this,t),i.scale(e,e)},setHeight:function(t){var e=this.pixelRatio,i=this.getContext()._context;Kinetic.Canvas.prototype.setHeight.call(this,t),i.scale(e,e)}},Kinetic.Util.extend(Kinetic.SceneCanvas,Kinetic.Canvas),Kinetic.HitCanvas=function(t){t=t||{};var e=t.width||0,i=t.height||0;Kinetic.Canvas.call(this,t),this.context=new Kinetic.HitContext(this),this.setSize(e,i)},Kinetic.Util.extend(Kinetic.HitCanvas,Kinetic.Canvas)}(),function(){var t=',',i='(',n=')',r='([',a='])',o=';',s='()',c='=',e=['arc','arcTo','beginPath','bezierCurveTo','clearRect','clip','closePath','createLinearGradient','createPattern','createRadialGradient','drawImage','fill','fillText','getImageData','createImageData','lineTo','moveTo','putImageData','quadraticCurveTo','rect','restore','rotate','save','scale','setLineDash','setTransform','stroke','strokeText','transform','translate'];Kinetic.Context=function(t){this.init(t)},Kinetic.Context.prototype={init:function(t){this.canvas=t,this._context=t._canvas.getContext('2d'),Kinetic.enableTrace&&(this.traceArr=[],this._enableTrace())},fillShape:function(t){t.getFillEnabled()&&this._fill(t)},strokeShape:function(t){t.getStrokeEnabled()&&this._stroke(t)},fillStrokeShape:function(t){var e=t.getFillEnabled();e&&this._fill(t),t.getStrokeEnabled()&&this._stroke(t)},getTrace:function(e){var l,u,f,d,g=this.traceArr,p=g.length,h='';for(l=0;p>l;l++)u=g[l],f=u.method,f?(d=u.args,h+=f,h+=e?s:Kinetic.Util._isArray(d[0])?r+d.join(t)+a:i+d.join(t)+n):(h+=u.property,e||(h+=c+u.val)),h+=o;return h},clearTrace:function(){this.traceArr=[]},_trace:function(t){var i,e=this.traceArr;e.push(t),i=e.length,i>=Kinetic.traceArrMax&&e.shift()},reset:function(){var t=this.getCanvas().getPixelRatio();this.setTransform(1*t,0,0,1*t,0,0)},getCanvas:function(){return this.canvas},clear:function(t){var e=this.getCanvas();t?this.clearRect(t.x||0,t.y||0,t.width||0,t.height||0):this.clearRect(0,0,e.getWidth(),e.getHeight())},_applyLineCap:function(t){var e=t.getLineCap();e&&this.setAttr('lineCap',e)},_applyOpacity:function(t){var e=t.getAbsoluteOpacity();1!==e&&this.setAttr('globalAlpha',e)},_applyLineJoin:function(t){var e=t.getLineJoin();e&&this.setAttr('lineJoin',e)},setAttr:function(t,e){this._context[t]=e},arc:function(){var t=arguments;this._context.arc(t[0],t[1],t[2],t[3],t[4],t[5])},beginPath:function(){this._context.beginPath()},bezierCurveTo:function(){var t=arguments;this._context.bezierCurveTo(t[0],t[1],t[2],t[3],t[4],t[5])},clearRect:function(){var t=arguments;this._context.clearRect(t[0],t[1],t[2],t[3])},clip:function(){this._context.clip()},closePath:function(){this._context.closePath()},createImageData:function(){var t=arguments;return 2===t.length?this._context.createImageData(t[0],t[1]):1===t.length?this._context.createImageData(t[0]):void 0},createLinearGradient:function(){var t=arguments;return this._context.createLinearGradient(t[0],t[1],t[2],t[3])},createPattern:function(){var t=arguments;return this._context.createPattern(t[0],t[1])},createRadialGradient:function(){var t=arguments;return this._context.createRadialGradient(t[0],t[1],t[2],t[3],t[4],t[5])},drawImage:function(){var t=arguments,e=this._context;3===t.length?e.drawImage(t[0],t[1],t[2]):5===t.length?e.drawImage(t[0],t[1],t[2],t[3],t[4]):9===t.length&&e.drawImage(t[0],t[1],t[2],t[3],t[4],t[5],t[6],t[7],t[8])},fill:function(){this._context.fill()},fillText:function(){var t=arguments;this._context.fillText(t[0],t[1],t[2])},getImageData:function(){var t=arguments;return this._context.getImageData(t[0],t[1],t[2],t[3])},lineTo:function(){var t=arguments;this._context.lineTo(t[0],t[1])},moveTo:function(){var t=arguments;this._context.moveTo(t[0],t[1])},rect:function(){var t=arguments;this._context.rect(t[0],t[1],t[2],t[3])},putImageData:function(){var t=arguments;this._context.putImageData(t[0],t[1],t[2])},quadraticCurveTo:function(){var t=arguments;this._context.quadraticCurveTo(t[0],t[1],t[2],t[3])},restore:function(){this._context.restore()},rotate:function(){var t=arguments;this._context.rotate(t[0])},save:function(){this._context.save()},scale:function(){var t=arguments;this._context.scale(t[0],t[1])},setLineDash:function(){var e=arguments,t=this._context;this._context.setLineDash?t.setLineDash(e[0]):'mozDash'in t?t.mozDash=e[0]:'webkitLineDash'in t&&(t.webkitLineDash=e[0])},setTransform:function(){var t=arguments;this._context.setTransform(t[0],t[1],t[2],t[3],t[4],t[5])},stroke:function(){this._context.stroke()},strokeText:function(){var t=arguments;this._context.strokeText(t[0],t[1],t[2])},transform:function(){var t=arguments;this._context.transform(t[0],t[1],t[2],t[3],t[4],t[5])},translate:function(){var t=arguments;this._context.translate(t[0],t[1])},_enableTrace:function(){var i,n,t=this,r=e.length,a=Kinetic.Util._simplifyArray,o=this.setAttr,s=function(e){var i,r=t[e];t[e]=function(){return n=a(Array.prototype.slice.call(arguments,0)),i=r.apply(t,arguments),t._trace({method:e,args:n}),i}};for(i=0;r>i;i++)s(e[i]);t.setAttr=function(){o.apply(t,arguments),t._trace({property:arguments[0],val:arguments[1]})}}},Kinetic.SceneContext=function(t){Kinetic.Context.call(this,t)},Kinetic.SceneContext.prototype={_fillColor:function(t){var e=t.fill()||Kinetic.Util._getRGBAString({red:t.fillRed(),green:t.fillGreen(),blue:t.fillBlue(),alpha:t.fillAlpha()});this.setAttr('fillStyle',e),t._fillFunc(this)},_fillPattern:function(t){var o=t.getFillPatternImage(),n=t.getFillPatternX(),r=t.getFillPatternY(),e=t.getFillPatternScale(),a=Kinetic.getAngle(t.getFillPatternRotation()),i=t.getFillPatternOffset(),s=t.getFillPatternRepeat();(n||r)&&this.translate(n||0,r||0),a&&this.rotate(a),e&&this.scale(e.x,e.y),i&&this.translate(-1*i.x,-1*i.y),this.setAttr('fillStyle',this.createPattern(o,s||'repeat')),this.fill()},_fillLinearGradient:function(t){var n=t.getFillLinearGradientStartPoint(),r=t.getFillLinearGradientEndPoint(),i=t.getFillLinearGradientColorStops(),a=this.createLinearGradient(n.x,n.y,r.x,r.y);if(i){for(var e=0;es;s++)h=r[s],t[h]=this.getAttr(n+c(h));return t},i.prototype[d]=function(t){var e,i=this.attrs[n];a&&(t=a.call(this,t));for(e in t)this._setAttr(n+c(e),t[e]);return this._fireChangeEvent(n,i,t),o&&o.call(this),this},this.addOverloadedGetterSetter(i,n)},addOverloadedGetterSetter:function(i,n){var r=Kinetic.Util._capitalize(n),a=e+r,o=t+r;i.prototype[n]=function(){return arguments.length?(this[a](arguments[0]),this):this[o]()}},backCompat:function(t,e){var i;for(i in e)t.prototype[i]=t.prototype[e[i]]},afterSetFilter:function(){this._filterUpToDate=!1}},Kinetic.Validators={RGBComponent:function(t){return t>255?255:0>t?0:Math.round(t)},alphaComponent:function(t){return t>1?1:1e-4>t?1e-4:t}}}(),function(){var i='absoluteOpacity',t='absoluteTransform',l='Change',d='children',o='.',f='',g='get',p='id',v='kinetic',n='listening',m='mouseenter',y='mouseleave',w='name',s='set',c='Shape',r=' ',h='stage',e='transform',K='Stage',a='visible',u=['id'],S=['xChange.kinetic','yChange.kinetic','scaleXChange.kinetic','scaleYChange.kinetic','skewXChange.kinetic','skewYChange.kinetic','rotationChange.kinetic','offsetXChange.kinetic','offsetYChange.kinetic','transformsEnabledChange.kinetic'].join(r);Kinetic.Util.addMethods(Kinetic.Node,{_init:function(r){var o=this;this._id=Kinetic.idCounter++,this.eventListeners={},this.attrs={},this._cache={},this._filterUpToDate=!1,this.setAttrs(r),this.on(S,function(){this._clearCache(e),o._clearSelfAndDescendantCache(t)}),this.on('visibleChange.kinetic',function(){o._clearSelfAndDescendantCache(a)}),this.on('listeningChange.kinetic',function(){o._clearSelfAndDescendantCache(n)}),this.on('opacityChange.kinetic',function(){o._clearSelfAndDescendantCache(i)})},_clearCache:function(t){t?delete this._cache[t]:this._cache={}},_getCache:function(t,e){var i=this._cache[t];return void 0===i&&(this._cache[t]=e.call(this)),this._cache[t]},_clearSelfAndDescendantCache:function(t){this._clearCache(t),this.children&&this.getChildren().each(function(e){e._clearSelfAndDescendantCache(t)})},clearCache:function(){return delete this._cache.canvas,this._filterUpToDate=!1,this},cache:function(t){{var i=t||{},c=i.x||0,h=i.y||0,n=i.width||this.width(),r=i.height||this.height(),l=i.drawBorder||!1;this.getLayer()};if(0===n||0===r)return void Kinetic.Util.warn('Width or height of caching configuration equals 0. Cache is ignored.');var o=new Kinetic.SceneCanvas({pixelRatio:1,width:n,height:r}),u=new Kinetic.SceneCanvas({pixelRatio:1,width:n,height:r}),s=new Kinetic.HitCanvas({width:n,height:r}),e=(this.transformsEnabled(),this.x(),this.y(),o.getContext()),a=s.getContext();return this.clearCache(),e.save(),a.save(),l&&(e.save(),e.beginPath(),e.rect(0,0,n,r),e.closePath(),e.setAttr('strokeStyle','red'),e.setAttr('lineWidth',5),e.stroke(),e.restore()),e.translate(-1*c,-1*h),a.translate(-1*c,-1*h),'Shape'===this.nodeType&&(e.translate(-1*this.x(),-1*this.y()),a.translate(-1*this.x(),-1*this.y())),this.drawScene(o,this),this.drawHit(s,this),e.restore(),a.restore(),this._cache.canvas={scene:o,filter:u,hit:s},this},_drawCachedSceneCanvas:function(t){t.save(),this.getLayer()._applyTransform(this,t),t.drawImage(this._getCachedSceneCanvas()._canvas,0,0),t.restore()},_getCachedSceneCanvas:function(){var o,r,e,s,a=this.filters(),c=this._cache.canvas,h=c.scene,i=c.filter,n=i.getContext();if(a){if(!this._filterUpToDate){try{for(o=a.length,n.clear(),n.drawImage(h._canvas,0,0),r=n.getImageData(0,0,i.getWidth(),i.getHeight()),e=0;o>e;e++)s=a[e],s.call(this,r),n.putImageData(r,0,0)}catch(t){Kinetic.Util.warn('Unable to apply filter. '+t.message)};this._filterUpToDate=!0};return i};return h},_drawCachedHitCanvas:function(t){var e=this._cache.canvas,i=e.hit;t.save(),this.getLayer()._applyTransform(this,t),t.drawImage(i._canvas,0,0),t.restore()},on:function(t,e){var i,s,a,n,c,h=t.split(r),u=h.length;for(i=0;u>i;i++)s=h[i],a=s.split(o),n=a[0],c=a[1]||f,this.eventListeners[n]||(this.eventListeners[n]=[]),this.eventListeners[n].push({name:c,handler:e});return this},off:function(t){var e,s,c,n,i,a,h=t.split(r),u=h.length;for(e=0;u>e;e++)if(c=h[e],n=c.split(o),i=n[0],a=n[1],i)this.eventListeners[i]&&this._off(i,a);else for(s in this.eventListeners)this._off(s,a);return this},dispatchEvent:function(t){var e={target:this,type:t.type,evt:t};this.fire(t.type,e)},addEventListener:function(t,e){this.on(t,function(t){e.call(this,t.evt)})},remove:function(){var e=this.getParent();return e&&e.children&&(e.children.splice(this.index,1),e._setChildrenIndices(),delete this.parent),this._clearSelfAndDescendantCache(h),this._clearSelfAndDescendantCache(t),this._clearSelfAndDescendantCache(a),this._clearSelfAndDescendantCache(n),this._clearSelfAndDescendantCache(i),this},destroy:function(){Kinetic._removeId(this.getId()),Kinetic._removeName(this.getName(),this._id),this.remove()},getAttr:function(t){var e=g+Kinetic.Util._capitalize(t);return Kinetic.Util._isFunction(this[e])?this[e]():this.attrs[t]},getAncestors:function(){for(var t=this.getParent(),e=new Kinetic.Collection;t;)e.push(t),t=t.getParent();return e},getAttrs:function(){return this.attrs||{}},setAttrs:function(t){var e,i;if(t)for(e in t)e===d||(i=s+Kinetic.Util._capitalize(e),Kinetic.Util._isFunction(this[i])?this[i](t[e]):this._setAttr(e,t[e]));return this},isListening:function(){return this._getCache(n,this._isListening)},_isListening:function(){var t=this.getListening(),e=this.getParent();return'inherit'===t?e?e.isListening():!0:t},isVisible:function(){return this._getCache(a,this._isVisible)},_isVisible:function(){var t=this.getVisible(),e=this.getParent();return'inherit'===t?e?e.isVisible():!0:t},shouldDrawHit:function(){var t=this.getLayer();return t&&t.hitGraphEnabled()&&this.isListening()&&this.isVisible()&&!Kinetic.isDragging()},show:function(){return this.setVisible(!0),this},hide:function(){return this.setVisible(!1),this},getZIndex:function(){return this.index||0},getAbsoluteZIndex:function(){function o(h){for(t=[],n=h.length,e=0;n>e;e++)i=h[e],a++,i.nodeType!==c&&(t=t.concat(i.getChildren().toArray())),i._id===r._id&&(e=n);t.length>0&&t[0].getDepth()n;n++)t(r[n])},rotate:function(t){return this.setRotation(this.getRotation()+t),this},moveToTop:function(){if(!this.parent)return void Kinetic.Util.warn('Node has no parent. moveToTop function is ignored.');var t=this.index;return this.parent.children.splice(t,1),this.parent.children.push(this),this.parent._setChildrenIndices(),!0},moveUp:function(){if(!this.parent)return void Kinetic.Util.warn('Node has no parent. moveUp function is ignored.');var t=this.index,e=this.parent.getChildren().length;return e-1>t?(this.parent.children.splice(t,1),this.parent.children.splice(t+1,0,this),this.parent._setChildrenIndices(),!0):!1},moveDown:function(){if(!this.parent)return void Kinetic.Util.warn('Node has no parent. moveDown function is ignored.');var t=this.index;return t>0?(this.parent.children.splice(t,1),this.parent.children.splice(t-1,0,this),this.parent._setChildrenIndices(),!0):!1},moveToBottom:function(){if(!this.parent)return void Kinetic.Util.warn('Node has no parent. moveToBottom function is ignored.');var t=this.index;return t>0?(this.parent.children.splice(t,1),this.parent.children.unshift(this),this.parent._setChildrenIndices(),!0):!1},setZIndex:function(t){if(!this.parent)return void Kinetic.Util.warn('Node has no parent. zIndex parameter is ignored.');var e=this.index;return this.parent.children.splice(e,1),this.parent.children.splice(t,0,this),this.parent._setChildrenIndices(),this},getAbsoluteOpacity:function(){return this._getCache(i,this._getAbsoluteOpacity)},_getAbsoluteOpacity:function(){var t=this.getOpacity();return this.getParent()&&(t*=this.getParent().getAbsoluteOpacity()),t},moveTo:function(t){return Kinetic.Node.prototype.remove.call(this),t.add(this),this},toObject:function(){var e,t,a,o,i=Kinetic.Util,n={},r=this.getAttrs();n.attrs={};for(e in r)t=r[e],i._isFunction(t)||i._isElement(t)||i._isObject(t)&&i._hasMethods(t)||(a=this[e],delete r[e],o=a?a.call(this):null,r[e]=t,o!==t&&(n.attrs[e]=t));return n.className=this.getClassName(),n},toJSON:function(){return JSON.stringify(this.toObject())},getParent:function(){return this.parent},getLayer:function(){var t=this.getParent();return t?t.getLayer():null},getStage:function(){return this._getCache(h,this._getStage)},_getStage:function(){var t=this.getParent();return t?t.getStage():void 0},fire:function(t,e,i){return i?this._fireAndBubble(t,e||{}):this._fire(t,e||{}),this},getAbsoluteTransform:function(e){return e?this._getAbsoluteTransform(e):this._getCache(t,this._getAbsoluteTransform)},_getAbsoluteTransform:function(t){var e,n,i=new Kinetic.Transform;return this._eachAncestorReverse(function(t){e=t.transformsEnabled(),n=t.getTransform(),'all'===e?i.multiply(n):'position'===e&&i.translate(t.x(),t.y())},t),i},getTransform:function(){return this._getCache(e,this._getTransform)},_getTransform:function(){var t=new Kinetic.Transform,e=this.getX(),i=this.getY(),n=Kinetic.getAngle(this.getRotation()),r=this.getScaleX(),a=this.getScaleY(),o=this.getSkewX(),s=this.getSkewY(),c=this.getOffsetX(),h=this.getOffsetY();return(0!==e||0!==i)&&t.translate(e,i),0!==n&&t.rotate(n),(0!==o||0!==s)&&t.skew(o,s),(1!==r||1!==a)&&t.scale(r,a),(0!==c||0!==h)&&t.translate(-1*c,-1*h),t},clone:function(t){var e,r,s,n,a,l=this.getClassName(),o=Kinetic.Util.cloneObject(this.attrs);for(var h in u){var c=u[h];delete o[c]};for(e in t)o[e]=t[e];var i=new Kinetic[l](o);for(e in this.eventListeners)for(r=this.eventListeners[e],s=r.length,n=0;s>n;n++)a=r[n],a.name.indexOf(v)i;i++)n.add(this._createNode(r[i]));return n},Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node,'position'),Kinetic.Factory.addGetterSetter(Kinetic.Node,'x',0),Kinetic.Factory.addGetterSetter(Kinetic.Node,'y',0),Kinetic.Factory.addGetterSetter(Kinetic.Node,'opacity',1),Kinetic.Factory.addGetter(Kinetic.Node,'name'),Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node,'name'),Kinetic.Factory.addGetter(Kinetic.Node,'id'),Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node,'id'),Kinetic.Factory.addGetterSetter(Kinetic.Node,'rotation',0),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Node,'scale',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Node,'scaleX',1),Kinetic.Factory.addGetterSetter(Kinetic.Node,'scaleY',1),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Node,'skew',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Node,'skewX',0),Kinetic.Factory.addGetterSetter(Kinetic.Node,'skewY',0),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Node,'offset',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Node,'offsetX',0),Kinetic.Factory.addGetterSetter(Kinetic.Node,'offsetY',0),Kinetic.Factory.addSetter(Kinetic.Node,'dragDistance'),Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node,'dragDistance'),Kinetic.Factory.addSetter(Kinetic.Node,'width',0),Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node,'width'),Kinetic.Factory.addSetter(Kinetic.Node,'height',0),Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node,'height'),Kinetic.Factory.addGetterSetter(Kinetic.Node,'listening','inherit'),Kinetic.Factory.addGetterSetter(Kinetic.Node,'filters',void 0,function(t){return this._filterUpToDate=!1,t}),Kinetic.Factory.addGetterSetter(Kinetic.Node,'visible','inherit'),Kinetic.Factory.addGetterSetter(Kinetic.Node,'transformsEnabled','all'),Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node,'size'),Kinetic.Factory.backCompat(Kinetic.Node,{rotateDeg:'rotate',setRotationDeg:'setRotation',getRotationDeg:'getRotation'}),Kinetic.Collection.mapMethods(Kinetic.Node)}(),function(){Kinetic.Filters.Grayscale=function(t){var e,n,i=t.data,r=i.length;for(e=0;r>e;e+=4)n=.34*i[e]+.5*i[e+1]+.16*i[e+2],i[e]=n,i[e+1]=n,i[e+2]=n}}(),function(){Kinetic.Filters.Brighten=function(t){var e,n=255*this.brightness(),i=t.data,r=i.length;for(e=0;r>e;e+=4)i[e]+=n,i[e+1]+=n,i[e+2]+=n},Kinetic.Factory.addGetterSetter(Kinetic.Node,'brightness',0,null,Kinetic.Factory.afterSetFilter)}(),function(){Kinetic.Filters.Invert=function(t){var e,i=t.data,n=i.length;for(e=0;n>e;e+=4)i[e]=255-i[e],i[e+1]=255-i[e+1],i[e+2]=255-i[e+2]}}(),function(){function t(){this.r=0,this.g=0,this.b=0,this.a=0,this.next=null};function n(n,r){var S,R,l,c,G,h,U,m,y,w,K,E,F,A,O,C,b,T,x,f,g,p,s,P,a=n.data,L=n.width,B=n.height,j=r+r+1,N=L-1,W=B-1,d=r+1,I=d*(d+1)/2,M=new t,H=null,o=M,u=null,v=null,k=e[r],D=i[r];for(l=1;j>l;l++)o=o.next=new t,l==d&&(H=o);for(o.next=M,U=h=0,R=0;B>R;R++){for(C=b=T=x=m=y=w=K=0,E=d*(f=a[h]),F=d*(g=a[h+1]),A=d*(p=a[h+2]),O=d*(s=a[h+3]),m+=I*f,y+=I*g,w+=I*p,K+=I*s,o=M,l=0;d>l;l++)o.r=f,o.g=g,o.b=p,o.a=s,o=o.next;for(l=1;d>l;l++)c=h+((l>N?N:l)S;S++)a[h+3]=s=K*k>>D,0!==s?(s=255/s,a[h]=(m*k>>D)*s,a[h+1]=(y*k>>D)*s,a[h+2]=(w*k>>D)*s):a[h]=a[h+1]=a[h+2]=0,m-=E,y-=F,w-=A,K-=O,E-=u.r,F-=u.g,A-=u.b,O-=u.a,c=U+((c=S+r+1)S;S++){for(b=T=x=C=y=w=K=m=0,h=Sl;l++)o.r=f,o.g=g,o.b=p,o.a=s,o=o.next;for(G=L,l=1;r>=l;l++)h=G+Sl&&(G+=L);for(h=S,u=M,v=H,R=0;B>R;R++)c=h>D,s>0?(s=255/s,a[c]=(m*k>>D)*s,a[c+1]=(y*k>>D)*s,a[c+2]=(w*k>>D)*s):a[c]=a[c+1]=a[c+2]=0,m-=E,y-=F,w-=A,K-=O,E-=u.r,F-=u.g,A-=u.b,O-=u.a,c=S+((c=R+d)0&&n(t,e)},Kinetic.Factory.addGetterSetter(Kinetic.Node,'blurRadius',0,null,Kinetic.Factory.afterSetFilter)}(),function(){function e(t,e,i){var n=4*(i*t.width+e),r=[];return r.push(t.data[n++],t.data[n++],t.data[n++],t.data[n++]),r};function t(t,e){return Math.sqrt(Math.pow(t[0]-e[0],2)+Math.pow(t[1]-e[1],2)+Math.pow(t[2]-e[2],2))};function i(t){for(var e=[0,0,0],i=0;id?0:255};return l}};function r(t,e){for(var i=0;is;s++)for(var a=0;e>a;a++){for(var v=s*e+a,u=0,r=0;o>r;r++)for(var n=0;o>n;n++){var c=s+r-d,h=a+n-d;if(c>=0&&i>c&&h>=0&&e>h){var g=c*e+h,p=l[r*o+n];u+=t[g]*p}};f[v]=2040===u?255:0};return f};function o(t,e,i){for(var l=[1,1,1,1,1,1,1,1,1],o=Math.round(Math.sqrt(l.length)),d=Math.floor(o/2),f=[],s=0;i>s;s++)for(var a=0;e>a;a++){for(var v=s*e+a,u=0,r=0;o>r;r++)for(var n=0;o>n;n++){var c=s+r-d,h=a+n-d;if(c>=0&&i>c&&h>=0&&e>h){var g=c*e+h,p=l[r*o+n];u+=t[g]*p}};f[v]=u>=1020?255:0};return f};function s(t,e,i){for(var l=[1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9,1/9],o=Math.round(Math.sqrt(l.length)),d=Math.floor(o/2),f=[],s=0;i>s;s++)for(var a=0;e>a;a++){for(var v=s*e+a,u=0,r=0;o>r;r++)for(var n=0;o>n;n++){var c=s+r-d,h=a+n-d;if(c>=0&&i>c&&h>=0&&e>h){var g=c*e+h,p=l[r*o+n];u+=t[g]*p}};f[v]=u};return f};Kinetic.Filters.Mask=function(t){var i=this.threshold(),e=n(t,i);return e&&(e=a(e,t.width,t.height),e=o(e,t.width,t.height),e=s(e,t.width,t.height),r(t,e)),t},Kinetic.Factory.addGetterSetter(Kinetic.Node,'threshold',0,null,Kinetic.Factory.afterSetFilter)}(),function(){Kinetic.Filters.RGB=function(t){var e,n,i=t.data,r=i.length,a=this.red(),o=this.green(),s=this.blue();for(e=0;r>e;e+=4)n=(.34*i[e]+.5*i[e+1]+.16*i[e+2])/255,i[e]=n*a,i[e+1]=n*o,i[e+2]=n*s,i[e+3]=i[e+3]},Kinetic.Factory.addGetterSetter(Kinetic.Node,'red',0,function(t){return this._filterUpToDate=!1,t>255?255:0>t?0:Math.round(t)}),Kinetic.Factory.addGetterSetter(Kinetic.Node,'green',0,function(t){return this._filterUpToDate=!1,t>255?255:0>t?0:Math.round(t)}),Kinetic.Factory.addGetterSetter(Kinetic.Node,'blue',0,Kinetic.Validators.RGBComponent,Kinetic.Factory.afterSetFilter)}(),function(){Kinetic.Filters.HSV=function(t){var e,o,s,c,h,n=t.data,d=n.length,i=Math.pow(2,this.value()),u=Math.pow(2,this.saturation()),l=Math.abs(this.hue()+360)%360,r=i*u*Math.cos(l*Math.PI/180),a=i*u*Math.sin(l*Math.PI/180),f=.299*i+.701*r+.167*a,g=.587*i-.587*r+.33*a,p=.114*i-.114*r-.497*a,v=.299*i-.299*r-.328*a,m=.587*i+.413*r+.035*a,y=.114*i-.114*r+.293*a,w=.299*i-.3*r+1.25*a,K=.587*i-.586*r-1.05*a,S=.114*i+.886*r-.2*a;for(e=0;d>e;e+=4)o=n[e+0],s=n[e+1],c=n[e+2],h=n[e+3],n[e+0]=f*o+g*s+p*c,n[e+1]=v*o+m*s+y*c,n[e+2]=w*o+K*s+S*c,n[e+3]=h},Kinetic.Factory.addGetterSetter(Kinetic.Node,'hue',0,null,Kinetic.Factory.afterSetFilter),Kinetic.Factory.addGetterSetter(Kinetic.Node,'saturation',0,null,Kinetic.Factory.afterSetFilter),Kinetic.Factory.addGetterSetter(Kinetic.Node,'value',0,null,Kinetic.Factory.afterSetFilter)}(),function(){Kinetic.Factory.addGetterSetter(Kinetic.Node,'hue',0,null,Kinetic.Factory.afterSetFilter),Kinetic.Factory.addGetterSetter(Kinetic.Node,'saturation',0,null,Kinetic.Factory.afterSetFilter),Kinetic.Factory.addGetterSetter(Kinetic.Node,'luminance',0,null,Kinetic.Factory.afterSetFilter),Kinetic.Filters.HSL=function(t){var e,o,s,c,u,n=t.data,f=n.length,i=1,l=Math.pow(2,this.saturation()),d=Math.abs(this.hue()+360)%360,h=127*this.luminance(),r=i*l*Math.cos(d*Math.PI/180),a=i*l*Math.sin(d*Math.PI/180),g=.299*i+.701*r+.167*a,p=.587*i-.587*r+.33*a,v=.114*i-.114*r-.497*a,m=.299*i-.299*r-.328*a,y=.587*i+.413*r+.035*a,w=.114*i-.114*r+.293*a,K=.299*i-.3*r+1.25*a,S=.587*i-.586*r-1.05*a,C=.114*i+.886*r-.2*a;for(e=0;f>e;e+=4)o=n[e+0],s=n[e+1],c=n[e+2],u=n[e+3],n[e+0]=g*o+p*s+v*c+h,n[e+1]=m*o+y*s+w*c+h,n[e+2]=K*o+S*s+C*c+h,n[e+3]=u}}(),function(){Kinetic.Filters.Emboss=function(t){var x=10*this.embossStrength(),E=255*this.embossWhiteLevel(),F=this.embossDirection(),A=this.embossBlend(),r=0,a=0,e=t.data,f=t.width,w=t.height,O=4*f,u=w;switch(F){case'top-left':r=-1,a=-1;break;case'top':r=-1,a=0;break;case'top-right':r=-1,a=1;break;case'right':r=0,a=1;break;case'bottom-right':r=1,a=1;break;case'bottom':r=1,a=0;break;case'bottom-left':r=1,a=-1;break;case'left':r=0,a=-1};do{var T=(u-1)*O,h=r;1>u+h&&(h=0),u+h>w&&(h=0);var b=(u-1+h)*f*4,c=f;do{var i=T+4*(c-1),s=a;1>c+s&&(s=0),c+s>f&&(s=0);var m=b+4*(c-1+s),K=e[i]-e[m],l=e[i+1]-e[m+1],d=e[i+2]-e[m+2],n=K,y=n>0?n:-n,S=l>0?l:-l,C=d>0?d:-d;if(S>y&&(n=l),C>y&&(n=d),n*=x,A){var g=e[i]+n,p=e[i+1]+n,v=e[i+2]+n;e[i]=g>255?255:0>g?0:g,e[i+1]=p>255?255:0>p?0:p,e[i+2]=v>255?255:0>v?0:v} else{var o=E-n;0>o?o=0:o>255&&(o=255),e[i]=e[i+1]=e[i+2]=o}} while(--c)} while(--u)},Kinetic.Factory.addGetterSetter(Kinetic.Node,'embossStrength',.5,null,Kinetic.Factory.afterSetFilter),Kinetic.Factory.addGetterSetter(Kinetic.Node,'embossWhiteLevel',.5,null,Kinetic.Factory.afterSetFilter),Kinetic.Factory.addGetterSetter(Kinetic.Node,'embossDirection','top-left',null,Kinetic.Factory.afterSetFilter),Kinetic.Factory.addGetterSetter(Kinetic.Node,'embossBlend',!1,null,Kinetic.Factory.afterSetFilter)}(),function(){function t(t,e,i,n,r){var a,s=i-e,o=r-n;return 0===s?n+o/2:0===o?n:(a=(t-e)/s,a=o*a+n)};Kinetic.Filters.Enhance=function(e){var f,g,p,n,r=e.data,A=r.length,a=r[0],c=a,o=r[1],h=o,s=r[2],u=s,l=r[3],d=l,i=this.enhance();if(0!==i){for(n=0;A>n;n+=4)f=r[n+0],a>f?a=f:f>c&&(c=f),g=r[n+1],o>g?o=g:g>h&&(h=g),p=r[n+2],s>p?s=p:p>u&&(u=p);c===a&&(c=255,a=0),h===o&&(h=255,o=0),u===s&&(u=255,s=0),d===l&&(d=255,l=0);var v,m,y,w,K,S,C,b,E,T,F,x;for(i>0?(m=c+i*(255-c),y=a-i*(a-0),K=h+i*(255-h),S=o-i*(o-0),b=u+i*(255-u),x=s-i*(s-0),F=d+i*(255-d),E=l-i*(l-0)):(v=.5*(c+a),m=c+i*(c-v),y=a+i*(a-v),w=.5*(h+o),K=h+i*(h-w),S=o+i*(o-w),C=.5*(u+s),b=u+i*(u-C),x=s+i*(s-C),T=.5*(d+l),F=d+i*(d-T),E=l+i*(l-T)),n=0;A>n;n+=4)r[n+0]=t(r[n+0],a,c,y,m),r[n+1]=t(r[n+1],o,h,S,K),r[n+2]=t(r[n+2],s,u,x,b)}},Kinetic.Factory.addGetterSetter(Kinetic.Node,'enhance',0,null,Kinetic.Factory.afterSetFilter)}(),function(){Kinetic.Filters.Posterize=function(t){var e,r=Math.round(254*this.levels())+1,i=t.data,a=i.length,n=255/r;for(e=0;a>e;e+=1)i[e]=Math.floor(i[e]/n)*n},Kinetic.Factory.addGetterSetter(Kinetic.Node,'levels',.5,null,Kinetic.Factory.afterSetFilter)}(),function(){Kinetic.Filters.Noise=function(t){var e,r=255*this.noise(),n=t.data,a=n.length,i=r/2;for(e=0;a>e;e+=4)n[e+0]+=i-2*i*Math.random(),n[e+1]+=i-2*i*Math.random(),n[e+2]+=i-2*i*Math.random()},Kinetic.Factory.addGetterSetter(Kinetic.Node,'noise',.2,null,Kinetic.Factory.afterSetFilter)}(),function(){Kinetic.Filters.Pixelate=function(t){var e,i,n,s,c,h,g,u,p,l,v,d,f,a,r=Math.ceil(this.pixelSize()),o=t.width,m=t.height,y=Math.ceil(o/r),w=Math.ceil(m/r);for(t=t.data,d=0;y>d;d+=1)for(f=0;w>f;f+=1){for(s=0,c=0,h=0,g=0,u=d*r,p=u+r,l=f*r,v=l+r,a=0,e=u;p>e;e+=1)if(!(e>=o))for(i=l;v>i;i+=1)i>=m||(n=4*(o*i+e),s+=t[n+0],c+=t[n+1],h+=t[n+2],g+=t[n+3],a+=1);for(s/=a,c/=a,h/=a,e=u;p>e;e+=1)if(!(e>=o))for(i=l;v>i;i+=1)i>=m||(n=4*(o*i+e),t[n+0]=s,t[n+1]=c,t[n+2]=h,t[n+3]=g)}},Kinetic.Factory.addGetterSetter(Kinetic.Node,'pixelSize',8,null,Kinetic.Factory.afterSetFilter)}(),function(){Kinetic.Filters.Threshold=function(t){var e,n=255*this.threshold(),i=t.data,r=i.length;for(e=0;r>e;e+=1)i[e]=i[e]255?255:s,i[e+1]=c>255?255:c,i[e+2]=h>255?255:h,i[e+3]=i[e+3];while(--o)} while(--d)}}(),function(){Kinetic.Filters.Solarize=function(t){var i=t.data,s=t.width,u=t.height,l=4*s,c=u;do{var h=(c-1)*l,o=s;do{var e=h+4*(o-1),n=i[e],r=i[e+1],a=i[e+2];n>127&&(n=255-n),r>127&&(r=255-r),a>127&&(a=255-a),i[e]=n,i[e+1]=r,i[e+2]=a} while(--o)} while(--c)}}(),function(){var e=function(t,e,i){var n,o,s,p,u=t.data,l=e.data,c=t.width,v=t.height,d=i.polarCenterX||c/2,f=i.polarCenterY||v/2,S=0,C=0,b=0,T=0,h=Math.sqrt(d*d+f*f);o=c-d,s=v-f,p=Math.sqrt(o*o+s*s),h=p>h?p:h;var r,a,m,y,g=v,w=c,K=360/w*Math.PI/180;for(a=0;w>a;a+=1)for(m=Math.sin(a*K),y=Math.cos(a*K),r=0;g>r;r+=1)o=Math.floor(d+h*r/g*y),s=Math.floor(f+h*r/g*m),n=4*(s*c+o),S=u[n+0],C=u[n+1],b=u[n+2],T=u[n+3],n=4*(a+r*c),l[n+0]=S,l[n+1]=C,l[n+2]=b,l[n+3]=T},i=function(t,e,i){var n,r,a,c,h,v,u=t.data,l=e.data,o=t.width,d=t.height,f=i.polarCenterX||o/2,g=i.polarCenterY||d/2,K=0,S=0,C=0,b=0,p=Math.sqrt(f*f+g*g);r=o-f,a=d-g,v=Math.sqrt(r*r+a*a),p=v>p?v:p;var m,s,y,w,T=d,x=o,E=i.polarRotation||0;for(r=0;o>r;r+=1)for(a=0;d>a;a+=1)c=r-f,h=a-g,m=Math.sqrt(c*c+h*h)*T/p,s=(180*Math.atan2(h,c)/Math.PI+360+E)%360,s=s*x/360,y=Math.floor(s),w=Math.floor(m),n=4*(w*o+y),K=u[n+0],S=u[n+1],C=u[n+2],b=u[n+3],n=4*(a*o+r),l[n+0]=K,l[n+1]=S,l[n+2]=C,l[n+3]=b},t=Kinetic.Util.createCanvasElement();Kinetic.Filters.Kaleidoscope=function(n){var o,s,C,y,f,g,p,v,c,h,a=n.width,d=n.height,m=Math.round(this.kaleidoscopePower()),T=Math.round(this.kaleidoscopeAngle()),b=Math.floor(a*(T%360)/360);if(!(1>m)){t.width=a,t.height=d;var r=t.getContext('2d').getImageData(0,0,a,d);e(n,r,{polarCenterX:a/2,polarCenterY:d/2});for(var u=a/Math.pow(2,m);8>=u;)u=2*u,m-=1;u=Math.ceil(u);var l=u,w=0,K=l,S=1;for(b+u>a&&(w=l,K=0,S=-1),s=0;d>s;s+=1)for(o=w;o!==K;o+=S)C=Math.round(o+b)%a,c=4*(a*s+C),f=r.data[c+0],g=r.data[c+1],p=r.data[c+2],v=r.data[c+3],h=4*(a*s+o),r.data[h+0]=f,r.data[h+1]=g,r.data[h+2]=p,r.data[h+3]=v;for(s=0;d>s;s+=1)for(l=Math.floor(u),y=0;m>y;y+=1){for(o=0;l+1>o;o+=1)c=4*(a*s+o),f=r.data[c+0],g=r.data[c+1],p=r.data[c+2],v=r.data[c+3],h=4*(a*s+2*l-o-1),r.data[h+0]=f,r.data[h+1]=g,r.data[h+2]=p,r.data[h+3]=v;l*=2};i(r,n,{polarRotation:0})}},Kinetic.Factory.addGetterSetter(Kinetic.Node,'kaleidoscopePower',2,null,Kinetic.Factory.afterSetFilter),Kinetic.Factory.addGetterSetter(Kinetic.Node,'kaleidoscopeAngle',0,null,Kinetic.Factory.afterSetFilter)}(),function(){function r(t){Kinetic.root.setTimeout(t,1e3/60)};function a(){return n.apply(Kinetic.root,arguments)};var i=500,t=function(){return Kinetic.root.performance&&Kinetic.root.performance.now?function(){return Kinetic.root.performance.now()}:function(){return(new Date).getTime()}}(),n=function(){return Kinetic.root.requestAnimationFrame||Kinetic.root.webkitRequestAnimationFrame||Kinetic.root.mozRequestAnimationFrame||Kinetic.root.oRequestAnimationFrame||Kinetic.root.msRequestAnimationFrame||r}();Kinetic.Animation=function(e,i){var n=Kinetic.Animation;this.func=e,this.setLayers(i),this.id=n.animIdCounter++,this.frame={time:0,timeDiff:0,lastTime:t()}},Kinetic.Animation.prototype={setLayers:function(t){var e=[];e=t?t.length>0?t:[t]:[],this.layers=e},getLayers:function(){return this.layers},addLayer:function(t){var n,e,i=this.layers;if(i){for(n=i.length,e=0;n>e;e++)if(i[e]._id===t._id)return!1} else this.layers=[];return this.layers.push(t),!0},isRunning:function(){var t,i=Kinetic.Animation,e=i.animations,n=e.length;for(t=0;n>t;t++)if(e[t].id===this.id)return!0;return!1},start:function(){var e=Kinetic.Animation;this.stop(),this.frame.timeDiff=0,this.frame.lastTime=t(),e._addAnimation(this)},stop:function(){Kinetic.Animation._removeAnimation(this)},_updateFrameObject:function(t){this.frame.timeDiff=t-this.frame.lastTime,this.frame.lastTime=t,this.frame.time+=this.frame.timeDiff,this.frame.frameRate=1e3/this.frame.timeDiff}},Kinetic.Animation.animations=[],Kinetic.Animation.animIdCounter=0,Kinetic.Animation.animRunning=!1,Kinetic.Animation._addAnimation=function(t){this.animations.push(t),this._handleAnimation()},Kinetic.Animation._removeAnimation=function(t){var e,n=t.id,i=this.animations,r=i.length;for(e=0;r>e;e++)if(i[e].id===n){this.animations.splice(e,1);break}},Kinetic.Animation._runFrames=function(){var e,a,o,i,n,c,r,h,s={},u=this.animations;for(i=0;in;n++)r=a[n],void 0!==r._id&&(s[r._id]=r);o&&o.call(e,e.frame)};for(h in s)s[h].draw()},Kinetic.Animation._animationLoop=function(){var t=Kinetic.Animation;t.animations.length?(a(t._animationLoop),t._runFrames()):t.animRunning=!1},Kinetic.Animation._handleAnimation=function(){var t=this;this.animRunning||(this.animRunning=!0,t._animationLoop())};var e=Kinetic.Node.prototype.moveTo;Kinetic.Node.prototype.moveTo=function(t){e.call(this,t)},Kinetic.Layer.prototype.batchDraw=function(){var e=this,n=Kinetic.Animation;this.batchAnim||(this.batchAnim=new n(function(){e.lastBatchDrawTime&&t()-e.lastBatchDrawTime>i&&e.batchAnim.stop()},this)),this.lastBatchDrawTime=t(),this.batchAnim.isRunning()||(this.draw(),this.batchAnim.start())},Kinetic.Stage.prototype.batchDraw=function(){this.getChildren().each(function(t){t.batchDraw()})}}((1,eval)('this')),function(){var n={node:1,duration:1,easing:1,onFinish:1,yoyo:1},r=1,e=2,i=3,a=0;Kinetic.Tween=function(e){var r,s=this,o=e.node,i=o._id,c=e.duration||1,h=e.easing||Kinetic.Easings.Linear,u=!!e.yoyo;this.node=o,this._id=a++,this.anim=new Kinetic.Animation(function(){s.tween.onEnterFrame()},o.getLayer()),this.tween=new t(r,function(t){s._tweenFunc(t)},h,0,1,1e3*c,u),this._addListeners(),Kinetic.Tween.attrs[i]||(Kinetic.Tween.attrs[i]={}),Kinetic.Tween.attrs[i][this._id]||(Kinetic.Tween.attrs[i][this._id]={}),Kinetic.Tween.tweens[i]||(Kinetic.Tween.tweens[i]={});for(r in e)void 0===n[r]&&this._addAttr(r,e[r]);this.reset(),this.onFinish=e.onFinish,this.onReset=e.onReset},Kinetic.Tween.attrs={},Kinetic.Tween.tweens={},Kinetic.Tween.prototype={_addAttr:function(t,e){var n,r,o,i,s,c=this.node,a=c._id;if(o=Kinetic.Tween.tweens[a][t],o&&delete Kinetic.Tween.attrs[a][o][t],n=c.getAttr(t),Kinetic.Util._isArray(e))for(r=[],s=e.length,i=0;s>i;i++)r.push(e[i]-n[i]);else r=e-n;Kinetic.Tween.attrs[a][this._id][t]={start:n,diff:r},Kinetic.Tween.tweens[a][t]=this._id},_tweenFunc:function(t){var r,a,e,o,n,i,s,c=this.node,h=Kinetic.Tween.attrs[c._id][this._id];for(r in h){if(a=h[r],e=a.start,o=a.diff,Kinetic.Util._isArray(e))for(n=[],s=e.length,i=0;s>i;i++)n.push(e[i]+o[i]*t);else n=e+o*t;c.setAttr(r,n)}},_addListeners:function(){var t=this;this.tween.onPlay=function(){t.anim.start()},this.tween.onReverse=function(){t.anim.start()},this.tween.onPause=function(){t.anim.stop()},this.tween.onFinish=function(){t.onFinish&&t.onFinish()},this.tween.onReset=function(){t.onReset&&t.onReset()}},play:function(){return this.tween.play(),this},reverse:function(){return this.tween.reverse(),this},reset:function(){this.node;return this.tween.reset(),this},seek:function(t){this.node;return this.tween.seek(1e3*t),this},pause:function(){return this.tween.pause(),this},finish:function(){this.node;return this.tween.finish(),this},destroy:function(){var e,t=this.node._id,i=this._id,n=Kinetic.Tween.tweens[t];this.pause();for(e in n)delete Kinetic.Tween.tweens[t][e];delete Kinetic.Tween.attrs[t][i]}};var t=function(t,e,i,n,r,a,o){this.prop=t,this.propFunc=e,this.begin=n,this._pos=n,this.duration=a,this._change=0,this.prevPos=0,this.yoyo=o,this._time=0,this._position=0,this._startTime=0,this._finish=0,this.func=i,this._change=r-this.begin,this.pause()};t.prototype={fire:function(t){var e=this[t];e&&e()},setTime:function(t){t>this.duration?this.yoyo?(this._time=this.duration,this.reverse()):this.finish():0>t?this.yoyo?(this._time=0,this.play()):this.reset():(this._time=t,this.update())},getTime:function(){return this._time},setPosition:function(t){this.prevPos=this._pos,this.propFunc(t),this._pos=t},getPosition:function(t){return void 0===t&&(t=this._time),this.func(t,this.begin,this._change,this.duration)},play:function(){this.state=e,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire('onPlay')},reverse:function(){this.state=i,this._time=this.duration-this._time,this._startTime=this.getTimer()-this._time,this.onEnterFrame(),this.fire('onReverse')},seek:function(t){this.pause(),this._time=t,this.update(),this.fire('onSeek')},reset:function(){this.pause(),this._time=0,this.update(),this.fire('onReset')},finish:function(){this.pause(),this._time=this.duration,this.update(),this.fire('onFinish')},update:function(){this.setPosition(this.getPosition(this._time))},onEnterFrame:function(){var t=this.getTimer()-this._startTime;this.state===e?this.setTime(t):this.state===i&&this.setTime(this.duration-t)},pause:function(){this.state=r,this.fire('onPause')},getTimer:function(){return(new Date).getTime()}},Kinetic.Easings={BackEaseIn:function(t,e,i,n){var r=1.70158;return i*(t/=n)*t*((r+1)*t-r)+e},BackEaseOut:function(t,e,i,n){var r=1.70158;return i*((t=t/n-1)*t*((r+1)*t+r)+1)+e},BackEaseInOut:function(t,e,i,n){var r=1.70158;return(t/=n/2)t?-.5*r*Math.pow(2,10*(t-=1))*Math.sin(2*(t*n-o)*Math.PI/a)+e:r*Math.pow(2,-10*(t-=1))*Math.sin(2*(t*n-o)*Math.PI/a)*.5+i+e)},BounceEaseOut:function(t,e,i,n){return(t/=n)t?i*(7.5625*(t-=1.5/2.75)*t+.75)+e:2.5/2.75>t?i*(7.5625*(t-=2.25/2.75)*t+.9375)+e:i*(7.5625*(t-=2.625/2.75)*t+.984375)+e},BounceEaseIn:function(t,e,i,n){return i-Kinetic.Easings.BounceEaseOut(n-t,0,i,n)+e},BounceEaseInOut:function(t,e,i,n){return n/2>t?.5*Kinetic.Easings.BounceEaseIn(2*t,0,i,n)+e:.5*Kinetic.Easings.BounceEaseOut(2*t-n,0,i,n)+.5*i+e},EaseIn:function(t,e,i,n){return i*(t/=n)*t+e},EaseOut:function(t,e,i,n){return-i*(t/=n)*(t-2)+e},EaseInOut:function(t,e,i,n){return(t/=n/2)a)return};e._setDragPosition(t),i.isDragging||(i.isDragging=!0,e.fire('dragstart',{type:'dragstart',target:e,evt:t},!0)),e.fire('dragmove',{type:'dragmove',target:e,evt:t},!0)}},_endDragBefore:function(t){var r,n,e=Kinetic.DD,i=e.node;i&&(r=i.nodeType,n=i.getLayer(),e.anim.stop(),e.isDragging&&(e.isDragging=!1,Kinetic.listenClickTap=!1,t&&(t.dragEndNode=i)),delete e.node,(n||i).draw())},_endDragAfter:function(t){t=t||{};var e=t.dragEndNode;t&&e&&e.fire('dragend',{type:'dragend',target:e,evt:t},!0)}},Kinetic.Node.prototype.startDrag=function(){var t=Kinetic.DD,n=this.getStage(),r=this.getLayer(),e=n.getPointerPosition(),i=this.getAbsolutePosition();e&&(t.node&&t.node.stopDrag(),t.node=this,t.startPointerPos=e,t.offset.x=e.x-i.x,t.offset.y=e.y-i.y,t.anim.setLayers(r||this.getLayers()),t.anim.start(),this._setDragPosition())},Kinetic.Node.prototype._setDragPosition=function(t){var n=Kinetic.DD,i=this.getStage().getPointerPosition(),r=this.getDragBoundFunc();if(i){var e={x:i.x-n.offset.x,y:i.y-n.offset.y};void 0!==r&&(e=r.call(this,e,t)),this.setAbsolutePosition(e)}},Kinetic.Node.prototype.stopDrag=function(){var t=Kinetic.DD,e={};t._endDragBefore(e),t._endDragAfter(e)},Kinetic.Node.prototype.setDraggable=function(t){this._setAttr('draggable',t),this._dragChange()};var e=Kinetic.Node.prototype.destroy;Kinetic.Node.prototype.destroy=function(){var t=Kinetic.DD;t.node&&t.node._id===this._id&&this.stopDrag(),e.call(this)},Kinetic.Node.prototype.isDragging=function(){var t=Kinetic.DD;return t.node&&t.node._id===this._id&&t.isDragging},Kinetic.Node.prototype._listenDrag=function(){var t=this;this._dragCleanup(),'Stage'===this.getClassName()?this.on('contentMousedown.kinetic contentTouchstart.kinetic',function(e){Kinetic.DD.node||t.startDrag(e)}):this.on('mousedown.kinetic touchstart.kinetic',function(e){Kinetic.DD.node||t.startDrag(e)})},Kinetic.Node.prototype._dragChange=function(){if(this.attrs.draggable)this._listenDrag();else{this._dragCleanup();var e=this.getStage(),t=Kinetic.DD;e&&t.node&&t.node._id===this._id&&t.node.stopDrag()}},Kinetic.Node.prototype._dragCleanup=function(){'Stage'===this.getClassName()?(this.off('contentMousedown.kinetic'),this.off('contentTouchstart.kinetic')):(this.off('mousedown.kinetic'),this.off('touchstart.kinetic'))},Kinetic.Factory.addGetterSetter(Kinetic.Node,'dragBoundFunc'),Kinetic.Factory.addGetter(Kinetic.Node,'draggable',!1),Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Node,'draggable');var t=Kinetic.document.documentElement;t.addEventListener('mouseup',Kinetic.DD._endDragBefore,!0),t.addEventListener('touchend',Kinetic.DD._endDragBefore,!0),t.addEventListener('mouseup',Kinetic.DD._endDragAfter,!1),t.addEventListener('touchend',Kinetic.DD._endDragAfter,!1)}(),function(){Kinetic.Util.addMethods(Kinetic.Container,{__init:function(t){this.children=new Kinetic.Collection,Kinetic.Node.call(this,t)},getChildren:function(t){if(t){var e=new Kinetic.Collection;return this.children.each(function(i){t(i)&&e.push(i)}),e};return this.children},hasChildren:function(){return this.getChildren().length>0},removeChildren:function(){for(var t,e=Kinetic.Collection.toCollection(this.children),i=0;i1)){if(t.getParent())return void t.moveTo(this);var i=this.children;return this._validateAdd(t),t.index=i.length,t.parent=this,i.push(t),this._fire('add',{child:t}),this};for(var e=0;en;n++)if(e=h[n],'#'===e.charAt(0))a=this._getNodeById(e.slice(1)),a&&i.push(a);else if('.'===e.charAt(0))s=this._getNodesByName(e.slice(1)),i=i.concat(s);else for(o=this.getChildren(),c=o.length,r=0;c>r;r++)i=i.concat(o[r]._get(e));return Kinetic.Collection.toCollection(i)},_getNodeById:function(t){var e=Kinetic.ids[t];return void 0!==e&&this.isAncestorOf(e)?e:null},_getNodesByName:function(t){var e=Kinetic.names[t]||[];return this._getDescendants(e)},_get:function(t){for(var e=Kinetic.Node.prototype._get.call(this,t),n=this.getChildren(),r=n.length,i=0;r>i;i++)e=e.concat(n[i]._get(t));return e},toObject:function(){var e=Kinetic.Node.prototype.toObject.call(this);e.children=[];for(var i=this.getChildren(),r=i.length,t=0;r>t;t++){var n=i[t];e.children.push(n.toObject())};return e},_getDescendants:function(t){for(var n=[],r=t.length,e=0;r>e;e++){var i=t[e];this.isAncestorOf(i)&&n.push(i)};return n},isAncestorOf:function(t){for(var e=t.getParent();e;){if(e._id===this._id)return!0;e=e.getParent()};return!1},clone:function(t){var e=Kinetic.Node.prototype.clone.call(this,t);return this.getChildren().each(function(t){e.add(t.clone())}),e},getAllIntersections:function(t){var e=[];return this.find('Shape').each(function(i){i.isVisible()&&i.intersects(t)&&e.push(i)}),e},_setChildrenIndices:function(){this.children.each(function(t,e){t.index=e})},drawScene:function(t,e){var n=this.getLayer(),i=t||n&&n.getCanvas(),a=i&&i.getContext(),r=this._cache.canvas,o=r&&r.scene;return this.isVisible()&&(o?this._drawCachedSceneCanvas(a):this._drawChildren(i,'drawScene',e)),this},drawHit:function(t,e){var n=this.getLayer(),i=t||n&&n.hitCanvas,a=i&&i.getContext(),r=this._cache.canvas,o=r&&r.hit;return this.shouldDrawHit()&&(o?this._drawCachedHitCanvas(a):this._drawChildren(i,'drawHit',e)),this},_drawChildren:function(t,e,i){var r,a,o=this.getLayer(),n=t&&t.getContext(),s=this.getClipWidth(),c=this.getClipHeight(),h=s&&c;h&&o&&(r=this.getClipX(),a=this.getClipY(),n.save(),o._applyTransform(this,n),n.beginPath(),n.rect(r,a,s,c),n.clip(),n.reset()),this.children.each(function(n){n[e](t,i)}),h&&n.restore()}}),Kinetic.Util.extend(Kinetic.Container,Kinetic.Node),Kinetic.Container.prototype.get=Kinetic.Container.prototype.find,Kinetic.Factory.addComponentsGetterSetter(Kinetic.Container,'clip',['x','y','width','height']),Kinetic.Factory.addGetterSetter(Kinetic.Container,'clipX'),Kinetic.Factory.addGetterSetter(Kinetic.Container,'clipY'),Kinetic.Factory.addGetterSetter(Kinetic.Container,'clipWidth'),Kinetic.Factory.addGetterSetter(Kinetic.Container,'clipHeight'),Kinetic.Collection.mapMethods(Kinetic.Container)}(),function(){function e(t){t.fill()};function i(t){t.stroke()};function n(t){t.fill()};function r(t){t.stroke()};function a(){this._clearCache(t)};var t='hasShadow';Kinetic.Util.addMethods(Kinetic.Shape,{__init:function(t){this.nodeType='Shape',this._fillFunc=e,this._strokeFunc=i,this._fillFuncHit=n,this._strokeFuncHit=r;for(var o,s=Kinetic.shapes;;)if(o=Kinetic.Util.getRandomColor(),o&&!(o in s))break;this.colorKey=o,s[o]=this,Kinetic.Node.call(this,t),this.on('shadowColorChange.kinetic shadowBlurChange.kinetic shadowOffsetChange.kinetic shadowOpacityChange.kinetic shadowEnabledChange.kinetic',a)},hasChildren:function(){return!1},getChildren:function(){return[]},getContext:function(){return this.getLayer().getContext()},getCanvas:function(){return this.getLayer().getCanvas()},hasShadow:function(){return this._getCache(t,this._hasShadow)},_hasShadow:function(){return this.getShadowEnabled()&&0!==this.getShadowOpacity()&&!!(this.getShadowColor()||this.getShadowBlur()||this.getShadowOffsetX()||this.getShadowOffsetY())},hasFill:function(){return!!(this.getFill()||this.getFillPatternImage()||this.getFillLinearGradientColorStops()||this.getFillRadialGradientColorStops())},hasStroke:function(){return!!(this.stroke()||this.strokeRed()||this.strokeGreen()||this.strokeBlue())},_get:function(t){return this.className===t||this.nodeType===t?[this]:[]},intersects:function(t){var i,n=this.getStage(),e=n.bufferHitCanvas;return e.getContext().clear(),this.drawScene(e),i=e.context.getImageData(Math.round(t.x),Math.round(t.y),1,1).data,i[3]>0},destroy:function(){Kinetic.Node.prototype.destroy.call(this),delete Kinetic.shapes[this.colorKey]},_useBufferCanvas:function(){return(this.hasShadow()||1!==this.getAbsoluteOpacity())&&this.hasFill()&&this.hasStroke()&&this.getStage()},drawScene:function(t,e){var s,r,n,o=this.getLayer(),h=t||o.getCanvas(),i=h.getContext(),u=this._cache.canvas,a=this.sceneFunc(),c=this.hasShadow();return this.isVisible()&&(u?this._drawCachedSceneCanvas(i):a&&(i.save(),this._useBufferCanvas()?(s=this.getStage(),r=s.bufferCanvas,n=r.getContext(),n.clear(),n.save(),n._applyLineJoin(this),o._applyTransform(this,n,e),a.call(this,n),n.restore(),c&&(i.save(),i._applyShadow(this),i.drawImage(r._canvas,0,0),i.restore()),i._applyOpacity(this),i.drawImage(r._canvas,0,0)):(i._applyLineJoin(this),o._applyTransform(this,i,e),c&&(i.save(),i._applyShadow(this),a.call(this,i),i.restore()),i._applyOpacity(this),a.call(this,i)),i.restore())),this},drawHit:function(t,e){var n=this.getLayer(),o=t||n.hitCanvas,i=o.getContext(),r=this.hitFunc()||this.sceneFunc(),a=this._cache.canvas,s=a&&a.hit;return this.shouldDrawHit()&&(s?this._drawCachedHitCanvas(i):r&&(i.save(),i._applyLineJoin(this),n._applyTransform(this,i,e),r.call(this,i),i.restore())),this},drawHitFromCache:function(t){var h,a,o,n,u,r,i,l,g=t||0,p=this._cache.canvas,s=this._getCachedSceneCanvas(),v=s.getContext(),m=p.hit,c=m.getContext(),d=s.getWidth(),f=s.getHeight();c.clear();try{for(h=v.getImageData(0,0,d,f),a=h.data,o=c.getImageData(0,0,d,f),n=o.data,u=a.length,r=Kinetic.Util._hexToRgb(this.colorKey),i=0;u>i;i+=4)l=a[i+3],l>g&&(n[i]=r.r,n[i+1]=r.g,n[i+2]=r.b,n[i+3]=255);c.putImageData(o,0,0)}catch(e){Kinetic.Util.warn('Unable to draw hit graph from cached scene canvas. '+e.message)};return this}}),Kinetic.Util.extend(Kinetic.Shape,Kinetic.Node),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'stroke'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'strokeRed',0,Kinetic.Validators.RGBComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'strokeGreen',0,Kinetic.Validators.RGBComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'strokeBlue',0,Kinetic.Validators.RGBComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'strokeAlpha',1,Kinetic.Validators.alphaComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'strokeWidth',2),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'lineJoin'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'lineCap'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'sceneFunc'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'hitFunc'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'dash'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'shadowColor'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'shadowRed',0,Kinetic.Validators.RGBComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'shadowGreen',0,Kinetic.Validators.RGBComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'shadowBlue',0,Kinetic.Validators.RGBComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'shadowAlpha',1,Kinetic.Validators.alphaComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'shadowBlur'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'shadowOpacity'),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape,'shadowOffset',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'shadowOffsetX',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'shadowOffsetY',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillPatternImage'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fill'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillRed',0,Kinetic.Validators.RGBComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillGreen',0,Kinetic.Validators.RGBComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillBlue',0,Kinetic.Validators.RGBComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillAlpha',1,Kinetic.Validators.alphaComponent),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillPatternX',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillPatternY',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillLinearGradientColorStops'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillRadialGradientStartRadius',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillRadialGradientEndRadius',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillRadialGradientColorStops'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillPatternRepeat','repeat'),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillEnabled',!0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'strokeEnabled',!0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'shadowEnabled',!0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'dashEnabled',!0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'strokeScaleEnabled',!0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillPriority','color'),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape,'fillPatternOffset',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillPatternOffsetX',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillPatternOffsetY',0),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape,'fillPatternScale',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillPatternScaleX',1),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillPatternScaleY',1),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape,'fillLinearGradientStartPoint',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillLinearGradientStartPointX',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillLinearGradientStartPointY',0),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape,'fillLinearGradientEndPoint',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillLinearGradientEndPointX',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillLinearGradientEndPointY',0),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape,'fillRadialGradientStartPoint',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillRadialGradientStartPointX',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillRadialGradientStartPointY',0),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Shape,'fillRadialGradientEndPoint',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillRadialGradientEndPointX',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillRadialGradientEndPointY',0),Kinetic.Factory.addGetterSetter(Kinetic.Shape,'fillPatternRotation',0),Kinetic.Factory.backCompat(Kinetic.Shape,{dashArray:'dash',getDashArray:'getDash',setDashArray:'getDash',drawFunc:'sceneFunc',getDrawFunc:'getSceneFunc',setDrawFunc:'setSceneFunc',drawHitFunc:'hitFunc',getDrawHitFunc:'getHitFunc',setDrawHitFunc:'setHitFunc'}),Kinetic.Collection.mapMethods(Kinetic.Shape)}(),function(){function G(t,e){t.content.addEventListener(e,function(i){t[D+e](i)},!1)};var d='Stage',f='string',n='px',t='mouseout',e='mouseleave',r='mouseover',g='mouseenter',a='mousemove',o='mousedown',s='mouseup',p='click',v='dblclick',c='touchstart',h='touchend',m='tap',y='dbltap',u='touchmove',w='contentMouseout',K='contentMouseover',S='contentMousemove',C='contentMousedown',b='contentMouseup',T='contentClick',x='contentDblclick',E='contentTouchstart',F='contentTouchend',A='contentDbltap',O='contentTouchmove',i='div',P='relative',L='inline-block',I='kineticjs-content',k=' ',D='_',R='container',M='',l=[o,a,s,t,c,u,h,r],N=l.length;Kinetic.Util.addMethods(Kinetic.Stage,{___init:function(t){this.nodeType=d,Kinetic.Container.call(this,t),this._id=Kinetic.idCounter++,this._buildDOM(),this._bindContentEvents(),this._enableNestedTransforms=!1,Kinetic.stages.push(this)},_validateAdd:function(t){'Layer'!==t.getType()&&Kinetic.Util.error('You may only add layers to the stage.')},setContainer:function(t){if(typeof t===f){var e=t;if(t=Kinetic.document.getElementById(t),!t)throw'Can not find container in document with id '+e};return this._setAttr(R,t),this},shouldDrawHit:function(){return!0},draw:function(){return Kinetic.Node.prototype.draw.call(this),this},setHeight:function(t){return Kinetic.Node.prototype.setHeight.call(this,t),this._resizeDOM(),this},setWidth:function(t){return Kinetic.Node.prototype.setWidth.call(this,t),this._resizeDOM(),this},clear:function(){var t,e=this.children,i=e.length;for(t=0;i>t;t++)e[t].clear();return this},clone:function(t){return t||(t={}),t.container=Kinetic.document.createElement(i),Kinetic.Container.prototype.clone.call(this,t)},destroy:function(){var t=this.content;Kinetic.Container.prototype.destroy.call(this),t&&Kinetic.Util._isInDocument(t)&&this.getContainer().removeChild(t);var e=Kinetic.stages.indexOf(this);e>-1&&Kinetic.stages.splice(e,1)},getPointerPosition:function(){return this.pointerPos},getStage:function(){return this},getContent:function(){return this.content},toDataURL:function(t){function o(e){var h=a[e],u=h.toDataURL(),i=new Kinetic.window.Image;i.onload=function(){r.drawImage(i,0,0),e=0;e--)if(i=n[e].getIntersection(t))return i;return null},_resizeDOM:function(){if(this.content){var i,r,t=this.getWidth(),e=this.getHeight(),a=this.getChildren(),o=a.length;for(this.content.style.width=t+n,this.content.style.height=e+n,this.bufferCanvas.setSize(t,e),this.bufferHitCanvas.setSize(t,e),i=0;o>i;i++)r=a[i],r.getCanvas().setSize(t,e),r.hitCanvas.setSize(t,e),r.draw()}},add:function(t){if(!(arguments.length>1))return Kinetic.Container.prototype.add.call(this,t),t._setCanvasSize(this.width(),this.height()),t.draw(),this.content.appendChild(t.canvas._canvas),this;for(var e=0;et;t++)G(this,l[t])},_mouseover:function(t){Kinetic.UA.mobile||(this._setPointerPosition(t),this._fire(K,{evt:t}))},_mouseout:function(i){if(!Kinetic.UA.mobile){this._setPointerPosition(i);var n=this.targetShape;n&&!Kinetic.isDragging()&&(n._fireAndBubble(t,{evt:i}),n._fireAndBubble(e,{evt:i}),this.targetShape=null),this.pointerPos=void 0,this._fire(w,{evt:i})}},_mousemove:function(i){if(!Kinetic.UA.mobile){this._setPointerPosition(i);var o=Kinetic.DD,n=this.getIntersection(this.getPointerPosition());n&&n.isListening()?Kinetic.isDragging()||this.targetShape&&this.targetShape._id===n._id?n._fireAndBubble(a,{evt:i}):(this.targetShape&&(this.targetShape._fireAndBubble(t,{evt:i},n),this.targetShape._fireAndBubble(e,{evt:i},n)),n._fireAndBubble(r,{evt:i},this.targetShape),n._fireAndBubble(g,{evt:i},this.targetShape),this.targetShape=n):this.targetShape&&!Kinetic.isDragging()&&(this.targetShape._fireAndBubble(t,{evt:i}),this.targetShape._fireAndBubble(e,{evt:i}),this.targetShape=null),this._fire(S,{evt:i}),o&&o._drag(i)};i.preventDefault&&i.preventDefault()},_mousedown:function(t){if(!Kinetic.UA.mobile){this._setPointerPosition(t);var e=this.getIntersection(this.getPointerPosition());Kinetic.listenClickTap=!0,e&&e.isListening()&&(this.clickStartShape=e,e._fireAndBubble(o,{evt:t})),this._fire(C,{evt:t})};t.preventDefault&&t.preventDefault()},_mouseup:function(t){if(!Kinetic.UA.mobile){this._setPointerPosition(t);var e=this.getIntersection(this.getPointerPosition()),n=this.clickStartShape,i=!1;Kinetic.inDblClickWindow?(i=!0,Kinetic.inDblClickWindow=!1):Kinetic.inDblClickWindow=!0,setTimeout(function(){Kinetic.inDblClickWindow=!1},Kinetic.dblClickWindow),e&&e.isListening()&&(e._fireAndBubble(s,{evt:t}),Kinetic.listenClickTap&&n&&n._id===e._id&&(e._fireAndBubble(p,{evt:t}),i&&e._fireAndBubble(v,{evt:t}))),this._fire(b,{evt:t}),Kinetic.listenClickTap&&(this._fire(T,{evt:t}),i&&this._fire(x,{evt:t})),Kinetic.listenClickTap=!1};t.preventDefault&&t.preventDefault()},_touchstart:function(t){this._setPointerPosition(t);var e=this.getIntersection(this.getPointerPosition());Kinetic.listenClickTap=!0,e&&e.isListening()&&(this.tapStartShape=e,e._fireAndBubble(c,{evt:t}),e.isListening()&&t.preventDefault&&t.preventDefault()),this._fire(E,{evt:t})},_touchend:function(t){this._setPointerPosition(t);var e=this.getIntersection(this.getPointerPosition()),i=!1;Kinetic.inDblClickWindow?(i=!0,Kinetic.inDblClickWindow=!1):Kinetic.inDblClickWindow=!0,setTimeout(function(){Kinetic.inDblClickWindow=!1},Kinetic.dblClickWindow),e&&e.isListening()&&(e._fireAndBubble(h,{evt:t}),Kinetic.listenClickTap&&e._id===this.tapStartShape._id&&(e._fireAndBubble(m,{evt:t}),i&&e._fireAndBubble(y,{evt:t})),e.isListening()&&t.preventDefault&&t.preventDefault()),Kinetic.listenClickTap&&(this._fire(F,{evt:t}),i&&this._fire(A,{evt:t})),Kinetic.listenClickTap=!1},_touchmove:function(t){this._setPointerPosition(t);var i=Kinetic.DD,e=this.getIntersection(this.getPointerPosition());e&&e.isListening()&&(e._fireAndBubble(u,{evt:t}),e.isListening()&&t.preventDefault&&t.preventDefault()),this._fire(O,{evt:t}),i&&i._drag(t)},_setPointerPosition:function(t){var r,n=this._getContentPosition(),a=t.offsetX,o=t.clientX,e=null,i=null;t=t?t:window.event,void 0!==t.touches?t.touches.length>0&&(r=t.touches[0],e=r.clientX-n.left,i=r.clientY-n.top):void 0!==a?(e=a,i=t.offsetY):'mozilla'===Kinetic.UA.browser?(e=t.layerX,i=t.layerY):void 0!==o&&n&&(e=o-n.left,i=t.clientY-n.top),null!==e&&null!==i&&(this.pointerPos={x:e,y:i})},_getContentPosition:function(){var t=this.content.getBoundingClientRect?this.content.getBoundingClientRect():{top:0,left:0};return{top:t.top,left:t.left}},_buildDOM:function(){var t=this.getContainer();if(!t){if(Kinetic.Util.isBrowser())throw'Stage has not container. But container is required';t=Kinetic.document.createElement(i)};t.innerHTML=M,this.content=Kinetic.document.createElement(i),this.content.style.position=P,this.content.style.display=L,this.content.className=I,this.content.setAttribute('role','presentation'),t.appendChild(this.content),this.bufferCanvas=new Kinetic.SceneCanvas({pixelRatio:1}),this.bufferHitCanvas=new Kinetic.HitCanvas,this._resizeDOM()},_onContent:function(t,e){var i,n,r=t.split(k),a=r.length;for(i=0;a>i;i++)n=r[i],this.content.addEventListener(n,e,!1)},cache:function(){Kinetic.Util.warn('Cache function is not allowed for stage. You may use cache only for layers, groups and shapes.')},clearCache:function(){}}),Kinetic.Util.extend(Kinetic.Stage,Kinetic.Container),Kinetic.Factory.addGetter(Kinetic.Stage,'container'),Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Stage,'container')}(),function(){Kinetic.Util.addMethods(Kinetic.BaseLayer,{___init:function(t){this.nodeType='Layer',Kinetic.Container.call(this,t)},createPNGStream:function(){return this.canvas._canvas.createPNGStream()},getCanvas:function(){return this.canvas},getHitCanvas:function(){return this.hitCanvas},getContext:function(){return this.getCanvas().getContext()},clear:function(t){return this.getContext().clear(t),this.getHitCanvas().getContext().clear(t),this},setZIndex:function(t){Kinetic.Node.prototype.setZIndex.call(this,t);var e=this.getStage();return e&&(e.content.removeChild(this.getCanvas()._canvas),ti;i++){if(a=t[i],n=this._getIntersection({x:e.x+a.x,y:e.y+a.y}),o=n.shape)return o;if(!n.antialiased)return null}},_getIntersection:function(t){var n,r,i=this.hitCanvas.context._context.getImageData(t.x,t.y,1,1).data,a=i[3];return 255===a?(n=Kinetic.Util._rgbToHex(i[0],i[1],i[2]),r=Kinetic.shapes[e+n],{shape:r}):a>0?{antialiased:!0}:{}},drawScene:function(t,e){var r=this.getLayer(),a=t||r&&r.getCanvas();return this._fire(i,{node:this}),this.getClearBeforeDraw()&&a.getContext().clear(),Kinetic.Container.prototype.drawScene.call(this,a,e),this._fire(n,{node:this}),this},_applyTransform:function(t,e,i){var n=t.getAbsoluteTransform(i).getMatrix();e.transform(n[0],n[1],n[2],n[3],n[4],n[5])},drawHit:function(t,e){var i=this.getLayer(),n=t||i&&i.hitCanvas;return i&&i.getClearBeforeDraw()&&i.getHitCanvas().getContext().clear(),Kinetic.Container.prototype.drawHit.call(this,n,e),this},clear:function(t){return this.getContext().clear(t),this.getHitCanvas().getContext().clear(t),this},setVisible:function(t){return Kinetic.Node.prototype.setVisible.call(this,t),t?(this.getCanvas()._canvas.style.display='block',this.hitCanvas._canvas.style.display='block'):(this.getCanvas()._canvas.style.display='none',this.hitCanvas._canvas.style.display='none'),this},enableHitGraph:function(){return this.setHitGraphEnabled(!0),this},disableHitGraph:function(){return this.setHitGraphEnabled(!1),this}}),Kinetic.Util.extend(Kinetic.Layer,Kinetic.BaseLayer),Kinetic.Factory.addGetterSetter(Kinetic.Layer,'hitGraphEnabled',!0),Kinetic.Collection.mapMethods(Kinetic.Layer)}(),function(){Kinetic.Util.addMethods(Kinetic.FastLayer,{____init:function(t){this.nodeType='Layer',this.canvas=new Kinetic.SceneCanvas,Kinetic.BaseLayer.call(this,t)},_validateAdd:function(t){var e=t.getType();'Shape'!==e&&Kinetic.Util.error('You may only add shapes to a fast layer.')},_setCanvasSize:function(t,e){this.canvas.setSize(t,e)},hitGraphEnabled:function(){return!1},getIntersection:function(){return null},drawScene:function(t){var e=this.getLayer(),i=t||e&&e.getCanvas();return this.getClearBeforeDraw()&&i.getContext().clear(),Kinetic.Container.prototype.drawScene.call(this,i),this},_applyTransform:function(t,e,i){if(!i||i._id!==this._id){var n=t.getTransform().getMatrix();e.transform(n[0],n[1],n[2],n[3],n[4],n[5])}},draw:function(){return this.drawScene(),this},clear:function(t){return this.getContext().clear(t),this},setVisible:function(t){return Kinetic.Node.prototype.setVisible.call(this,t),this.getCanvas()._canvas.style.display=t?'block':'none',this}}),Kinetic.Util.extend(Kinetic.FastLayer,Kinetic.BaseLayer),Kinetic.Collection.mapMethods(Kinetic.FastLayer)}(),function(){Kinetic.Util.addMethods(Kinetic.Group,{___init:function(t){this.nodeType='Group',Kinetic.Container.call(this,t)},_validateAdd:function(t){var e=t.getType();'Group'!==e&&'Shape'!==e&&Kinetic.Util.error('You may only add groups and shapes to groups.')}}),Kinetic.Util.extend(Kinetic.Group,Kinetic.Container),Kinetic.Collection.mapMethods(Kinetic.Group)}(),function(){Kinetic.Rect=function(t){this.___init(t)},Kinetic.Rect.prototype={___init:function(t){Kinetic.Shape.call(this,t),this.className='Rect',this.sceneFunc(this._sceneFunc)},_sceneFunc:function(t){var e=this.getCornerRadius(),i=this.getWidth(),n=this.getHeight();t.beginPath(),e?(t.moveTo(e,0),t.lineTo(i-e,0),t.arc(i-e,e,e,3*Math.PI/2,0,!1),t.lineTo(i,n-e),t.arc(i-e,n-e,e,0,Math.PI/2,!1),t.lineTo(e,n),t.arc(e,n-e,e,Math.PI/2,Math.PI,!1),t.lineTo(0,e),t.arc(e,e,e,Math.PI,3*Math.PI/2,!1)):t.rect(0,0,i,n),t.closePath(),t.fillStrokeShape(this)}},Kinetic.Util.extend(Kinetic.Rect,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Rect,'cornerRadius',0),Kinetic.Collection.mapMethods(Kinetic.Rect)}(),function(){var t=2*Math.PI-1e-4,e='Circle';Kinetic.Circle=function(t){this.___init(t)},Kinetic.Circle.prototype={___init:function(t){Kinetic.Shape.call(this,t),this.className=e,this.sceneFunc(this._sceneFunc)},_sceneFunc:function(e){e.beginPath(),e.arc(0,0,this.getRadius(),0,t,!1),e.closePath(),e.fillStrokeShape(this)},getWidth:function(){return 2*this.getRadius()},getHeight:function(){return 2*this.getRadius()},setWidth:function(t){Kinetic.Node.prototype.setWidth.call(this,t),this.setRadius(t/2)},setHeight:function(t){Kinetic.Node.prototype.setHeight.call(this,t),this.setRadius(t/2)}},Kinetic.Util.extend(Kinetic.Circle,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Circle,'radius',0),Kinetic.Collection.mapMethods(Kinetic.Circle)}(),function(){var t=2*Math.PI-1e-4,e='Ellipse';Kinetic.Ellipse=function(t){this.___init(t)},Kinetic.Ellipse.prototype={___init:function(t){Kinetic.Shape.call(this,t),this.className=e,this.sceneFunc(this._sceneFunc)},_sceneFunc:function(e){var n=this.getRadius(),i=n.x,r=n.y;e.beginPath(),e.save(),i!==r&&e.scale(1,r/i),e.arc(0,0,i,0,t,!1),e.restore(),e.closePath(),e.fillStrokeShape(this)},getWidth:function(){return 2*this.getRadius().x},getHeight:function(){return 2*this.getRadius().y},setWidth:function(t){Kinetic.Node.prototype.setWidth.call(this,t),this.setRadius({x:t/2})},setHeight:function(t){Kinetic.Node.prototype.setHeight.call(this,t),this.setRadius({y:t/2})}},Kinetic.Util.extend(Kinetic.Ellipse,Kinetic.Shape),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Ellipse,'radius',['x','y']),Kinetic.Factory.addGetterSetter(Kinetic.Ellipse,'radiusX',0),Kinetic.Factory.addGetterSetter(Kinetic.Ellipse,'radiusY',0),Kinetic.Collection.mapMethods(Kinetic.Ellipse)}(),function(){var t=2*Math.PI-1e-4;Kinetic.Ring=function(t){this.___init(t)},Kinetic.Ring.prototype={___init:function(t){Kinetic.Shape.call(this,t),this.className='Ring',this.sceneFunc(this._sceneFunc)},_sceneFunc:function(e){e.beginPath(),e.arc(0,0,this.getInnerRadius(),0,t,!1),e.moveTo(this.getOuterRadius(),0),e.arc(0,0,this.getOuterRadius(),t,0,!0),e.closePath(),e.fillStrokeShape(this)},getWidth:function(){return 2*this.getOuterRadius()},getHeight:function(){return 2*this.getOuterRadius()},setWidth:function(t){Kinetic.Node.prototype.setWidth.call(this,t),this.setOuterRadius(t/2)},setHeight:function(t){Kinetic.Node.prototype.setHeight.call(this,t),this.setOuterRadius(t/2)}},Kinetic.Util.extend(Kinetic.Ring,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Ring,'innerRadius',0),Kinetic.Factory.addGetterSetter(Kinetic.Ring,'outerRadius',0),Kinetic.Collection.mapMethods(Kinetic.Ring)}(),function(){Kinetic.Wedge=function(t){this.___init(t)},Kinetic.Wedge.prototype={___init:function(t){Kinetic.Shape.call(this,t),this.className='Wedge',this.sceneFunc(this._sceneFunc)},_sceneFunc:function(t){t.beginPath(),t.arc(0,0,this.getRadius(),0,Kinetic.getAngle(this.getAngle()),this.getClockwise()),t.lineTo(0,0),t.closePath(),t.fillStrokeShape(this)}},Kinetic.Util.extend(Kinetic.Wedge,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Wedge,'radius',0),Kinetic.Factory.addGetterSetter(Kinetic.Wedge,'angle',0),Kinetic.Factory.addGetterSetter(Kinetic.Wedge,'clockwise',!1),Kinetic.Factory.backCompat(Kinetic.Wedge,{angleDeg:'angle',getAngleDeg:'getAngle',setAngleDeg:'setAngle'}),Kinetic.Collection.mapMethods(Kinetic.Wedge)}(),function(){Math.PI/180;Kinetic.Arc=function(t){this.___init(t)},Kinetic.Arc.prototype={___init:function(t){Kinetic.Shape.call(this,t),this.className='Arc',this.sceneFunc(this._sceneFunc)},_sceneFunc:function(t){var e=Kinetic.getAngle(this.angle()),i=this.clockwise();t.beginPath(),t.arc(0,0,this.getOuterRadius(),0,e,i),t.arc(0,0,this.getInnerRadius(),e,0,!i),t.closePath(),t.fillStrokeShape(this)}},Kinetic.Util.extend(Kinetic.Arc,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Arc,'innerRadius',0),Kinetic.Factory.addGetterSetter(Kinetic.Arc,'outerRadius',0),Kinetic.Factory.addGetterSetter(Kinetic.Arc,'angle',0),Kinetic.Factory.addGetterSetter(Kinetic.Arc,'clockwise',!1),Kinetic.Collection.mapMethods(Kinetic.Arc)}(),function(){var t='Image';Kinetic.Image=function(t){this.___init(t)},Kinetic.Image.prototype={___init:function(e){Kinetic.Shape.call(this,e),this.className=t,this.sceneFunc(this._sceneFunc),this.hitFunc(this._hitFunc)},_useBufferCanvas:function(){return(this.hasShadow()||1!==this.getAbsoluteOpacity())&&this.hasStroke()},_sceneFunc:function(t){var e,n,r,s,a=this.getWidth(),o=this.getHeight(),i=this.getImage();i&&(e=this.getCrop(),n=e.width,r=e.height,s=n&&r?[i,e.x,e.y,n,r,0,0,a,o]:[i,0,0,a,o]),t.beginPath(),t.rect(0,0,a,o),t.closePath(),t.fillStrokeShape(this),i&&t.drawImage.apply(t,s)},_hitFunc:function(t){var e=this.getWidth(),i=this.getHeight();t.beginPath(),t.rect(0,0,e,i),t.closePath(),t.fillStrokeShape(this)},getWidth:function(){var t=this.getImage();return this.attrs.width||(t?t.width:0)},getHeight:function(){var t=this.getImage();return this.attrs.height||(t?t.height:0)}},Kinetic.Util.extend(Kinetic.Image,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Image,'image'),Kinetic.Factory.addComponentsGetterSetter(Kinetic.Image,'crop',['x','y','width','height']),Kinetic.Factory.addGetterSetter(Kinetic.Image,'cropX',0),Kinetic.Factory.addGetterSetter(Kinetic.Image,'cropY',0),Kinetic.Factory.addGetterSetter(Kinetic.Image,'cropWidth',0),Kinetic.Factory.addGetterSetter(Kinetic.Image,'cropHeight',0),Kinetic.Collection.mapMethods(Kinetic.Image)}(),function(){function K(t){t.fillText(this.partialText,0,0)};function S(t){t.strokeText(this.partialText,0,0)};var t='auto',o='center',s='Change.kinetic',c='2d',h='-',u='',n='left',l='text',d='Text',f='middle',r='normal',g='px ',i=' ',p='right',v='word',m='char',y='none',a=['fontFamily','fontSize','fontStyle','fontVariant','padding','align','lineHeight','text','width','height','wrap'],w=a.length,e=Kinetic.Util.createCanvasElement().getContext(c);Kinetic.Text=function(t){this.___init(t)},Kinetic.Text.prototype={___init:function(e){var n=this;void 0===e.width&&(e.width=t),void 0===e.height&&(e.height=t),Kinetic.Shape.call(this,e),this._fillFunc=K,this._strokeFunc=S,this.className=d;for(var i=0;w>i;i++)this.on(a[i]+s,n._setTextData);this._setTextData(),this.sceneFunc(this._sceneFunc),this.hitFunc(this._hitFunc)},_sceneFunc:function(t){var e,i=this.getPadding(),s=this.getTextHeight(),l=this.getLineHeight()*s,c=this.textArr,d=c.length,h=this.getWidth();for(t.setAttr('font',this._getContextFont()),t.setAttr('textBaseline',f),t.setAttr('textAlign',n),t.save(),t.translate(i,0),t.translate(0,i+s/2),e=0;d>e;e++){var r=c[e],u=r.text,a=r.width;t.save(),this.getAlign()===p?t.translate(h-a-2*i,0):this.getAlign()===o&&t.translate((h-a-2*i)/2,0),this.partialText=u,t.fillStrokeShape(this),t.restore(),t.translate(0,l)};t.restore()},_hitFunc:function(t){var e=this.getWidth(),i=this.getHeight();t.beginPath(),t.rect(0,0,e,i),t.closePath(),t.fillStrokeShape(this)},setText:function(t){var e=Kinetic.Util._isString(t)?t:t.toString();return this._setAttr(l,e),this},getWidth:function(){return this.attrs.width===t?this.getTextWidth()+2*this.getPadding():this.attrs.width},getHeight:function(){return this.attrs.height===t?this.getTextHeight()*this.textArr.length*this.getLineHeight()+2*this.getPadding():this.attrs.height},getTextWidth:function(){return this.textWidth},getTextHeight:function(){return this.textHeight},_getTextSize:function(t){var n,i=e,r=this.getFontSize();return i.save(),i.font=this._getContextFont(),n=i.measureText(t),i.restore(),{width:n.width,height:parseInt(r,10)}},_getContextFont:function(){return this.getFontStyle()+i+this.getFontVariant()+i+this.getFontSize()+g+this.getFontFamily()},_addTextLine:function(t,e){return this.textArr.push({text:t,width:e})},_getTextWidth:function(t){return e.measureText(t).width},_setTextData:function(){var S=this.getText().split('\n'),C=+this.getFontSize(),o=0,c=this.getLineHeight()*C,b=this.attrs.width,T=this.attrs.height,L=b!==t,x=T!==t,E=this.getPadding(),p=b-2*E,F=T-2*E,u=0,A=this.getWrap(),O=A!==y,I=A!==m&&O;this.textArr=[],e.save(),e.font=this._getContextFont();for(var g=0,P=S.length;P>g;++g){var n=S[g],a=this._getTextWidth(n);if(L&&a>p)for(;n.length>0;){for(var s=0,f=n.length,r='',l=0;f>s;){var d=s+f>>>1,w=n.slice(0,d+1),K=this._getTextWidth(w);p>=K?(s=d+1,r=w,l=K):f=d};if(!r)break;if(I){var v=Math.max(r.lastIndexOf(i),r.lastIndexOf(h))+1;v>0&&(s=v,r=r.slice(0,s),l=this._getTextWidth(r))};if(this._addTextLine(r,l),o=Math.max(o,l),u+=c,!O||x&&u+c>F)break;if(n=n.slice(s),n.length>0&&(a=this._getTextWidth(n),p>=a)){this._addTextLine(n,a),u+=c,o=Math.max(o,a);break}} else this._addTextLine(n,a),u+=c,o=Math.max(o,a);if(x&&u+c>F)break};e.restore(),this.textHeight=C,this.textWidth=o}},Kinetic.Util.extend(Kinetic.Text,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Text,'fontFamily','Arial'),Kinetic.Factory.addGetterSetter(Kinetic.Text,'fontSize',12),Kinetic.Factory.addGetterSetter(Kinetic.Text,'fontStyle',r),Kinetic.Factory.addGetterSetter(Kinetic.Text,'fontVariant',r),Kinetic.Factory.addGetterSetter(Kinetic.Text,'padding',0),Kinetic.Factory.addGetterSetter(Kinetic.Text,'align',n),Kinetic.Factory.addGetterSetter(Kinetic.Text,'lineHeight',1),Kinetic.Factory.addGetterSetter(Kinetic.Text,'wrap',v),Kinetic.Factory.addGetter(Kinetic.Text,'text',u),Kinetic.Factory.addOverloadedGetterSetter(Kinetic.Text,'text'),Kinetic.Collection.mapMethods(Kinetic.Text)}(),function(){Kinetic.Line=function(t){this.___init(t)},Kinetic.Line.prototype={___init:function(t){Kinetic.Shape.call(this,t),this.className='Line',this.on('pointsChange.kinetic tensionChange.kinetic closedChange.kinetic',function(){this._clearCache('tensionPoints')}),this.sceneFunc(this._sceneFunc)},_sceneFunc:function(t){var e,r,i,n=this.getPoints(),a=n.length,s=this.getTension(),o=this.getClosed();if(t.beginPath(),t.moveTo(n[0],n[1]),0!==s&&a>4){for(e=this.getTensionPoints(),r=e.length,i=o?0:4,o||t.quadraticCurveTo(e[0],e[1],e[2],e[3]);r-2>i;)t.bezierCurveTo(e[i++],e[i++],e[i++],e[i++],e[i++],e[i++]);o||t.quadraticCurveTo(e[r-2],e[r-1],n[a-2],n[a-1])} else for(i=2;a>i;i+=2)t.lineTo(n[i],n[i+1]);o?(t.closePath(),t.fillStrokeShape(this)):t.strokeShape(this)},getTensionPoints:function(){return this._getCache('tensionPoints',this._getTensionPoints)},_getTensionPoints:function(){return this.getClosed()?this._getTensionPointsClosed():Kinetic.Util._expandPoints(this.getPoints(),this.getTension())},_getTensionPointsClosed:function(){var t=this.getPoints(),e=t.length,r=this.getTension(),a=Kinetic.Util,i=a._getControlPoints(t[e-2],t[e-1],t[0],t[1],t[2],t[3],r),n=a._getControlPoints(t[e-4],t[e-3],t[e-2],t[e-1],t[0],t[1],r),o=Kinetic.Util._expandPoints(t,r),s=[i[2],i[3]].concat(o).concat([n[0],n[1],t[e-2],t[e-1],n[2],n[3],i[0],i[1],t[0],t[1]]);return s}},Kinetic.Util.extend(Kinetic.Line,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Line,'closed',!1),Kinetic.Factory.addGetterSetter(Kinetic.Line,'tension',0),Kinetic.Factory.addGetterSetter(Kinetic.Line,'points'),Kinetic.Collection.mapMethods(Kinetic.Line)}(),function(){Kinetic.Sprite=function(t){this.___init(t)},Kinetic.Sprite.prototype={___init:function(t){Kinetic.Shape.call(this,t),this.className='Sprite',this.anim=new Kinetic.Animation,this.on('animationChange.kinetic',function(){this.frameIndex(0)}),this.on('frameRateChange.kinetic',function(){this.anim.isRunning()&&(clearInterval(this.interval),this._setInterval())}),this.sceneFunc(this._sceneFunc),this.hitFunc(this._hitFunc)},_sceneFunc:function(t){var o=this.getAnimation(),s=this.frameIndex(),e=4*s,i=this.getAnimations()[o],c=i[e+0],h=i[e+1],n=i[e+2],r=i[e+3],a=this.getImage();a&&t.drawImage(a,c,h,n,r,0,0,n,r)},_hitFunc:function(t){var n=this.getAnimation(),r=this.frameIndex(),e=4*r,i=this.getAnimations()[n],a=i[e+2],o=i[e+3];t.beginPath(),t.rect(0,0,a,o),t.closePath(),t.fillShape(this)},_useBufferCanvas:function(){return(this.hasShadow()||1!==this.getAbsoluteOpacity())&&this.hasStroke()},_setInterval:function(){var t=this;this.interval=setInterval(function(){t._updateIndex()},1e3/this.getFrameRate())},start:function(){var t=this.getLayer();this.anim.setLayers(t),this._setInterval(),this.anim.start()},stop:function(){this.anim.stop(),clearInterval(this.interval)},isRunning:function(){return this.anim.isRunning()},_updateIndex:function(){var t=this.frameIndex(),e=this.getAnimation(),i=this.getAnimations(),n=i[e],r=n.length/4;this.frameIndex(r-1>t?t+1:0)}},Kinetic.Util.extend(Kinetic.Sprite,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Sprite,'animation'),Kinetic.Factory.addGetterSetter(Kinetic.Sprite,'animations'),Kinetic.Factory.addGetterSetter(Kinetic.Sprite,'image'),Kinetic.Factory.addGetterSetter(Kinetic.Sprite,'frameIndex',0),Kinetic.Factory.addGetterSetter(Kinetic.Sprite,'frameRate',17),Kinetic.Factory.backCompat(Kinetic.Sprite,{index:'frameIndex',getIndex:'getFrameIndex',setIndex:'setFrameIndex'}),Kinetic.Collection.mapMethods(Kinetic.Sprite)}(),function(){Kinetic.Path=function(t){this.___init(t)},Kinetic.Path.prototype={___init:function(t){this.dataArray=[];var e=this;Kinetic.Shape.call(this,t),this.className='Path',this.dataArray=Kinetic.Path.parsePathData(this.getData()),this.on('dataChange.kinetic',function(){e.dataArray=Kinetic.Path.parsePathData(this.getData())}),this.sceneFunc(this._sceneFunc)},_sceneFunc:function(t){var a=this.dataArray,d=!1;t.beginPath();for(var r=0;rn?i:n,u=i>n?1:i/n,l=i>n?n/i:1;t.translate(o,s),t.rotate(h),t.scale(u,l),t.arc(0,0,p,c,c+f,1-g),t.scale(1/u,1/l),t.rotate(-h),t.translate(-o,-s);break;case'z':t.closePath(),d=!0}};d?t.fillStrokeShape(this):t.strokeShape(this)}},Kinetic.Util.extend(Kinetic.Path,Kinetic.Shape),Kinetic.Path.getLineLength=function(t,e,i,n){return Math.sqrt((i-t)*(i-t)+(n-e)*(n-e))},Kinetic.Path.getPointOnLine=function(t,e,i,n,r,a,o){void 0===a&&(a=e),void 0===o&&(o=i);var s=(r-i)/(n-e+1e-8),c=Math.sqrt(t*t/(1+s*s));e>n&&(c*=-1);var h,u=s*c;if(n===e)h={x:a,y:o+u};else if((o-i)/(a-e+1e-8)===s)h={x:a+c,y:o+u};else{var d,f,g=this.getLineLength(e,i,n,r);if(1e-8>g)return void 0;var l=(a-e)*(n-e)+(o-i)*(r-i);l/=g*g,d=e+l*(n-e),f=i+l*(r-i);var p=this.getLineLength(a,o,d,f),v=Math.sqrt(t*t-p*p);c=Math.sqrt(v*v/(1+s*s)),e>n&&(c*=-1),u=s*c,h={x:d+c,y:f+u}};return h},Kinetic.Path.getPointOnCubicBezier=function(t,e,i,n,r,a,o,s,c){function h(t){return t*t*t};function u(t){return 3*t*t*(1-t)};function l(t){return 3*t*(1-t)*(1-t)};function d(t){return(1-t)*(1-t)*(1-t)};var f=s*h(t)+a*u(t)+n*l(t)+e*d(t),g=c*h(t)+o*u(t)+r*l(t)+i*d(t);return{x:f,y:g}},Kinetic.Path.getPointOnQuadraticBezier=function(t,e,i,n,r,a,o){function s(t){return t*t};function c(t){return 2*t*(1-t)};function h(t){return(1-t)*(1-t)};var u=a*s(t)+n*c(t)+e*h(t),l=o*s(t)+r*c(t)+i*h(t);return{x:u,y:l}},Kinetic.Path.getPointOnEllipticalArc=function(t,e,i,n,r,a){var s=Math.cos(a),c=Math.sin(a),o={x:i*Math.cos(r),y:n*Math.sin(r)};return{x:t+(o.x*s-o.y*c),y:e+(o.x*c+o.y*s)}},Kinetic.Path.parsePathData=function(t){if(!t)return[];var g=t,b=['m','M','l','L','v','V','h','H','z','Z','c','C','q','Q','t','T','s','S','a','A'];g=g.replace(new RegExp(' ','g'),',');for(var l=0;l0&&''===e[0]&&e.shift();for(var C=0;C0&&!isNaN(e[0]);){var s,c,h,p,v,m,y,w,K,S,o=null,r=[],E=i,F=n;switch(d){case'l':i+=e.shift(),n+=e.shift(),o='L',r.push(i,n);break;case'L':i=e.shift(),n=e.shift(),r.push(i,n);break;case'm':var T=e.shift(),x=e.shift();if(i+=T,n+=x,o='M',a.length>2&&'z'===a[a.length-1].command)for(var f=a.length-2;f>=0;f--)if('M'===a[f].command){i=a[f].points[0]+T,n=a[f].points[1]+x;break};r.push(i,n),d='l';break;case'M':i=e.shift(),n=e.shift(),o='M',r.push(i,n),d='L';break;case'h':i+=e.shift(),o='L',r.push(i,n);break;case'H':i=e.shift(),o='L',r.push(i,n);break;case'v':n+=e.shift(),o='L',r.push(i,n);break;case'V':n=e.shift(),o='L',r.push(i,n);break;case'C':r.push(e.shift(),e.shift(),e.shift(),e.shift()),i=e.shift(),n=e.shift(),r.push(i,n);break;case'c':r.push(i+e.shift(),n+e.shift(),i+e.shift(),n+e.shift()),i+=e.shift(),n+=e.shift(),o='C',r.push(i,n);break;case'S':c=i,h=n,s=a[a.length-1],'C'===s.command&&(c=i+(i-s.points[2]),h=n+(n-s.points[3])),r.push(c,h,e.shift(),e.shift()),i=e.shift(),n=e.shift(),o='C',r.push(i,n);break;case's':c=i,h=n,s=a[a.length-1],'C'===s.command&&(c=i+(i-s.points[2]),h=n+(n-s.points[3])),r.push(c,h,i+e.shift(),n+e.shift()),i+=e.shift(),n+=e.shift(),o='C',r.push(i,n);break;case'Q':r.push(e.shift(),e.shift()),i=e.shift(),n=e.shift(),r.push(i,n);break;case'q':r.push(i+e.shift(),n+e.shift()),i+=e.shift(),n+=e.shift(),o='Q',r.push(i,n);break;case'T':c=i,h=n,s=a[a.length-1],'Q'===s.command&&(c=i+(i-s.points[0]),h=n+(n-s.points[1])),i=e.shift(),n=e.shift(),o='Q',r.push(c,h,i,n);break;case't':c=i,h=n,s=a[a.length-1],'Q'===s.command&&(c=i+(i-s.points[0]),h=n+(n-s.points[1])),i+=e.shift(),n+=e.shift(),o='Q',r.push(c,h,i,n);break;case'A':p=e.shift(),v=e.shift(),m=e.shift(),y=e.shift(),w=e.shift(),K=i,S=n,i=e.shift(),n=e.shift(),o='A',r=this.convertEndpointToCenterParameterization(K,S,i,n,y,w,p,v,m);break;case'a':p=e.shift(),v=e.shift(),m=e.shift(),y=e.shift(),w=e.shift(),K=i,S=n,i+=e.shift(),n+=e.shift(),o='A',r=this.convertEndpointToCenterParameterization(K,S,i,n,y,w,p,v,m)};a.push({command:o||d,points:r,start:{x:E,y:F},pathLength:this.calcLength(E,F,o||d,r)})}('z'===d||'Z'===d)&&a.push({command:'z',points:[],start:void 0,pathLength:0})};return a},Kinetic.Path.calcLength=function(t,e,i,n){var c,a,r,o,s=Kinetic.Path;switch(i){case'L':return s.getLineLength(t,e,n[0],n[1]);case'C':for(c=0,a=s.getPointOnCubicBezier(0,t,e,n[0],n[1],n[2],n[3],n[4],n[5]),o=.01;1>=o;o+=.01)r=s.getPointOnCubicBezier(o,t,e,n[0],n[1],n[2],n[3],n[4],n[5]),c+=s.getLineLength(a.x,a.y,r.x,r.y),a=r;return c;case'Q':for(c=0,a=s.getPointOnQuadraticBezier(0,t,e,n[0],n[1],n[2],n[3]),o=.01;1>=o;o+=.01)r=s.getPointOnQuadraticBezier(o,t,e,n[0],n[1],n[2],n[3]),c+=s.getLineLength(a.x,a.y,r.x,r.y),a=r;return c;case'A':c=0;var u=n[4],d=n[5],l=n[4]+d,h=Math.PI/180;if(Math.abs(u-l)d)for(o=u-h;o>l;o-=h)r=s.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],o,0),c+=s.getLineLength(a.x,a.y,r.x,r.y),a=r;else for(o=u+h;l>o;o+=h)r=s.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],o,0),c+=s.getLineLength(a.x,a.y,r.x,r.y),a=r;return r=s.getPointOnEllipticalArc(n[0],n[1],n[2],n[3],l,0),c+=s.getLineLength(a.x,a.y,r.x,r.y)};return 0},Kinetic.Path.convertEndpointToCenterParameterization=function(t,e,i,n,a,s,r,o,w){var u=w*(Math.PI/180),c=Math.cos(u)*(t-i)/2+Math.sin(u)*(e-n)/2,h=-1*Math.sin(u)*(t-i)/2+Math.cos(u)*(e-n)/2,y=c*c/(r*r)+h*h/(o*o);y>1&&(r*=Math.sqrt(y),o*=Math.sqrt(y));var g=Math.sqrt((r*r*o*o-r*r*h*h-o*o*c*c)/(r*r*h*h+o*o*c*c));a===s&&(g*=-1),isNaN(g)&&(g=0);var d=g*r*h/o,f=g*-o*c/r,C=(t+i)/2+Math.cos(u)*d-Math.sin(u)*f,b=(e+n)/2+Math.sin(u)*d+Math.cos(u)*f,K=function(t){return Math.sqrt(t[0]*t[0]+t[1]*t[1])},p=function(t,e){return(t[0]*e[0]+t[1]*e[1])/(K(t)*K(e))},S=function(t,e){return(t[0]*e[1]=1&&(l=0),0===s&&l>0&&(l-=2*Math.PI),1===s&&0>l&&(l+=2*Math.PI),[C,b,r,o,T,l,u,s]},Kinetic.Factory.addGetterSetter(Kinetic.Path,'data'),Kinetic.Collection.mapMethods(Kinetic.Path)}(),function(){function e(t){t.fillText(this.partialText,0,0)};function i(t){t.strokeText(this.partialText,0,0)};var n='',t='normal';Kinetic.TextPath=function(t){this.___init(t)},Kinetic.TextPath.prototype={___init:function(t){var n=this;this.dummyCanvas=Kinetic.Util.createCanvasElement(),this.dataArray=[],Kinetic.Shape.call(this,t),this._fillFunc=e,this._strokeFunc=i,this._fillFuncHit=e,this._strokeFuncHit=i,this.className='TextPath',this.dataArray=Kinetic.Path.parsePathData(this.attrs.data),this.on('dataChange.kinetic',function(){n.dataArray=Kinetic.Path.parsePathData(this.attrs.data)}),this.on('textChange.kinetic textStroke.kinetic textStrokeWidth.kinetic',n._setTextData),n._setTextData(),this.sceneFunc(this._sceneFunc)},_sceneFunc:function(t){t.setAttr('font',this._getContextFont()),t.setAttr('textBaseline','middle'),t.setAttr('textAlign','left'),t.save();for(var i=this.glyphInfo,e=0;e0)return s=t,n[t];'M'==n[t].command&&(i={x:n[t].points[0],y:n[t].points[1]})};return{}},g=function(r){var a=c._getTextSize(r).width,o=0,d=0;for(n=void 0;Math.abs(a-o)/a>.01&&25>d;){d++;for(var l=o;void 0===t;)t=f(),t&&l+t.pathLengtha?n=Kinetic.Path.getPointOnLine(a,i.x,i.y,t.points[0],t.points[1],i.x,i.y):t=void 0;break;case'A':var g=t.points[4],s=t.points[5],u=t.points[4]+s;0===e?e=g+1e-8:a>o?e+=Math.PI/180*s/Math.abs(s):e-=Math.PI/360*s/Math.abs(s),(0>s&&u>e||s>=0&&e>u)&&(e=u,h=!0),n=Kinetic.Path.getPointOnEllipticalArc(t.points[0],t.points[1],t.points[2],t.points[3],e,t.points[6]);break;case'C':0===e?e=a>t.pathLength?1e-8:a/t.pathLength:a>o?e+=(a-o)/t.pathLength:e-=(o-a)/t.pathLength,e>1&&(e=1,h=!0),n=Kinetic.Path.getPointOnCubicBezier(e,t.start.x,t.start.y,t.points[0],t.points[1],t.points[2],t.points[3],t.points[4],t.points[5]);break;case'Q':0===e?e=a/t.pathLength:a>o?e+=(a-o)/t.pathLength:e-=(o-a)/t.pathLength,e>1&&(e=1,h=!0),n=Kinetic.Path.getPointOnQuadraticBezier(e,t.start.x,t.start.y,t.points[0],t.points[1],t.points[2],t.points[3])};void 0!==n&&(o=Kinetic.Path.getLineLength(i.x,i.y,n.x,n.y)),h&&(h=!1,t=void 0)}},r=0;re;e++)r=n*Math.sin(2*e*Math.PI/i),a=-1*n*Math.cos(2*e*Math.PI/i),t.lineTo(r,a);t.closePath(),t.fillStrokeShape(this)}},Kinetic.Util.extend(Kinetic.RegularPolygon,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.RegularPolygon,'radius',0),Kinetic.Factory.addGetterSetter(Kinetic.RegularPolygon,'sides',0),Kinetic.Collection.mapMethods(Kinetic.RegularPolygon)}(),function(){Kinetic.Star=function(t){this.___init(t)},Kinetic.Star.prototype={___init:function(t){Kinetic.Shape.call(this,t),this.className='Star',this.sceneFunc(this._sceneFunc)},_sceneFunc:function(t){var s=this.innerRadius(),r=this.outerRadius(),i=this.numPoints();t.beginPath(),t.moveTo(0,0-r);for(var e=1;2*i>e;e++){var n=e%2===0?r:s,a=n*Math.sin(e*Math.PI/i),o=-1*n*Math.cos(e*Math.PI/i);t.lineTo(a,o)};t.closePath(),t.fillStrokeShape(this)}},Kinetic.Util.extend(Kinetic.Star,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Star,'numPoints',5),Kinetic.Factory.addGetterSetter(Kinetic.Star,'innerRadius',0),Kinetic.Factory.addGetterSetter(Kinetic.Star,'outerRadius',0),Kinetic.Collection.mapMethods(Kinetic.Star)}(),function(){var t=['fontFamily','fontSize','fontStyle','padding','lineHeight','text'],a='Change.kinetic',o='none',e='up',i='right',n='down',r='left',s='Label',c=t.length;Kinetic.Label=function(t){this.____init(t)},Kinetic.Label.prototype={____init:function(t){var e=this;this.className=s,Kinetic.Group.call(this,t),this.on('add.kinetic',function(t){e._addListeners(t.child),e._sync()})},getText:function(){return this.find('Text')[0]},getTag:function(){return this.find('Tag')[0]},_addListeners:function(e){var i,n=this,r=function(){n._sync()};for(i=0;c>i;i++)e.on(t[i]+a,r)},getWidth:function(){return this.getText().getWidth()},getHeight:function(){return this.getText().getHeight()},_sync:function(){var o,s,d,u,t,a,l,h=this.getText(),c=this.getTag();if(h&&c){switch(o=h.getWidth(),s=h.getHeight(),d=c.getPointerDirection(),u=c.getPointerWidth(),l=c.getPointerHeight(),t=0,a=0,d){case e:t=o/2,a=-1*l;break;case i:t=o+u,a=s/2;break;case n:t=o/2,a=s+l;break;case r:t=-1*u,a=s/2};c.setAttrs({x:-1*t,y:-1*a,width:o,height:s}),h.setAttrs({x:-1*t,y:-1*a})}}},Kinetic.Util.extend(Kinetic.Label,Kinetic.Group),Kinetic.Collection.mapMethods(Kinetic.Label),Kinetic.Tag=function(t){this.___init(t)},Kinetic.Tag.prototype={___init:function(t){Kinetic.Shape.call(this,t),this.className='Tag',this.sceneFunc(this._sceneFunc)},_sceneFunc:function(t){var a=this.getWidth(),o=this.getHeight(),h=this.getPointerDirection(),s=this.getPointerWidth(),c=this.getPointerHeight();t.beginPath(),t.moveTo(0,0),h===e&&(t.lineTo((a-s)/2,0),t.lineTo(a/2,-1*c),t.lineTo((a+s)/2,0)),t.lineTo(a,0),h===i&&(t.lineTo(a,(o-c)/2),t.lineTo(a+s,o/2),t.lineTo(a,(o+c)/2)),t.lineTo(a,o),h===n&&(t.lineTo((a+s)/2,o),t.lineTo(a/2,o+c),t.lineTo((a-s)/2,o)),t.lineTo(0,o),h===r&&(t.lineTo(0,(o+c)/2),t.lineTo(-1*s,o/2),t.lineTo(0,(o-c)/2)),t.closePath(),t.fillStrokeShape(this)}},Kinetic.Util.extend(Kinetic.Tag,Kinetic.Shape),Kinetic.Factory.addGetterSetter(Kinetic.Tag,'pointerDirection',o),Kinetic.Factory.addGetterSetter(Kinetic.Tag,'pointerWidth',0),Kinetic.Factory.addGetterSetter(Kinetic.Tag,'pointerHeight',0),Kinetic.Factory.addGetterSetter(Kinetic.Tag,'cornerRadius',0),Kinetic.Collection.mapMethods(Kinetic.Tag)}();var CountdownCanvas=function(){this.stage=null;this.layer=null};CountdownCanvas.DefaultConfig={showLabels:!0,showValues:!0,showLabelsBelow:!0,showArcs:!1,showColons:!0,fontFamily:'\'Roboto\', sans-serif',fontColor:'rgb(0, 0, 0)',fontWeight:'400',fontSize:20,arcWidth:7,arcColor:'rgb(0, 0, 0)',textAlignment:'left',textDateDisplay:{day:!0,date:!0,year:!1,time:!0}};CountdownCanvas.init=function(t,e,i){var n=new CountdownCanvas();n.initStage(t,e,i);n.initLayer();n.stage.add(n.layer);return n};CountdownCanvas.prototype.initStage=function(t,e,i){this.stage=new Kinetic.Stage({container:t[0],width:e,height:i})};CountdownCanvas.prototype.initLayer=function(){this.layer=new Kinetic.Layer()};CountdownCanvas.prototype.clearStage=function(){this.stage.destroyChildren()};CountdownCanvas.prototype.clearLayer=function(){this.layer.destroyChildren()};CountdownCanvas.prototype.getTimeLeft=function(t){return{days:t?t.totalDays:0,hours:t?t.hours:0,minutes:t?t.minutes:0,seconds:t?t.seconds:0}};CountdownCanvas.prototype.getConfig=function(t){var e={};if(undefined!==t.skinConfig.showLabels){e.showLabels=t.skinConfig.showLabels} else{e.showLabels=CountdownCanvas.DefaultConfig.showLabels};if(undefined!==t.skinConfig.showValues){e.showValues=t.skinConfig.showValues} else{e.showValues=CountdownCanvas.DefaultConfig.showValues};if(undefined!==t.skinConfig.showLabelsBelow){e.showLabelsBelow=t.skinConfig.showLabelsBelow} else{e.showLabelsBelow=CountdownCanvas.DefaultConfig.showLabelsBelow};e.showArcs='circular'===t.skin;e.showColons='simple'===t.skin;e.fontFamily=t.skinConfig.fontFamily||CountdownCanvas.DefaultConfig.fontFamily;e.fontColor=t.skinConfig.fontColor||CountdownCanvas.DefaultConfig.fontColor;e.fontWeight=t.skinConfig.fontWeight||CountdownCanvas.DefaultConfig.fontWeight;e.fontSize=t.skinConfig.fontSize||CountdownCanvas.DefaultConfig.fontSize;e.arcWidth=t.skinConfig.arcWidth||CountdownCanvas.DefaultConfig.arcWidth;e.arcColor=t.skinConfig.arcColor||CountdownCanvas.DefaultConfig.arcColor;e.isTextView='expire'===t.skin;e.textAlignment=t.skinConfig.textAlignment||CountdownCanvas.DefaultConfig.textAlignment;e.textDateDisplay=t.skinConfig.textDateDisplay||CountdownCanvas.DefaultConfig.textDateDisplay;return e};CountdownCanvas.prototype.getH=function(t,e){return Math.min(e,t/4)};CountdownCanvas.prototype.drawArc=function(t,e,i,n,r){return new Kinetic.Arc(this._mergeOpts(t,{angle:(e/i)*360,x:n*r}))};CountdownCanvas.prototype.drawText=function(t,e,i,n,r){return new Kinetic.Text(this._mergeOpts(t,{text:e,x:i*n-r*0.4}))};CountdownCanvas.prototype.drawArcs=function(t,e,i,n,r){var o={fillEnabled:!1,innerRadius:r.h*0.4,outerRadius:r.h*0.4,stroke:n.arcColor,strokeWidth:n.arcWidth,y:e*0.5,rotation:-90};var a=CountdownCanvas.Constants.COMMON;return[this.drawArc(o,i.days,r.daysMax,a.DAYS_OFFSET,t),this.drawArc(o,i.hours,a.HOURS_MAX,a.HOURS_OFFSET,t),this.drawArc(o,i.minutes,a.MINS_MAX,a.MINS_OFFSET,t),this.drawArc(o,i.seconds,a.SECS_MAX,a.SECS_OFFSET,t)]};CountdownCanvas.prototype.drawValues=function(t,e,i,n,r){var o={align:'center',fill:n.fontColor,y:e*0.5+r.h*r.valueYOffsetRatio,fontSize:r.h*r.valueSizeRatio,fontStyle:n.fontWeight,width:r.textWidthBase*0.8,fontFamily:n.fontFamily};var a=CountdownCanvas.Constants.COMMON;return[this.drawText(o,i.days,a.DAYS_OFFSET,t,r.textWidthBase),this.drawText(o,i.hours,a.HOURS_OFFSET,t,r.textWidthBase),this.drawText(o,i.minutes,a.MINS_OFFSET,t,r.textWidthBase),this.drawText(o,i.seconds,a.SECS_OFFSET,t,r.textWidthBase)]};CountdownCanvas.prototype.drawLabels=function(t,e,i,n){var a={align:'center',fill:i.fontColor,fontSize:n.h*n.labelSizeRatio,fontStyle:i.fontWeight,width:n.textWidthBase*0.8,y:e*0.5+n.h*n.labelYOffsetRatio,fontFamily:i.fontFamily};var r=CountdownCanvas.Constants.COMMON;return[this.drawText(a,'days',r.DAYS_OFFSET,t,n.textWidthBase),this.drawText(a,'hours',r.HOURS_OFFSET,t,n.textWidthBase),this.drawText(a,'mins',r.MINS_OFFSET,t,n.textWidthBase),this.drawText(a,'secs',r.SECS_OFFSET,t,n.textWidthBase)]};CountdownCanvas.prototype.drawColons=function(t,e,i,n){var a={align:'center',fill:i.fontColor,y:e*0.5+n.h*n.valueYOffsetRatio,fontSize:n.h*n.valueSizeRatio,fontStyle:i.fontWeight,width:n.textWidthBase*0.8,fontFamily:i.fontFamily};var r=CountdownCanvas.Constants.COMMON;return[this.drawText(a,':',r.COLON1_OFFSET,t,n.textWidthBase),this.drawText(a,':',r.COLON2_OFFSET,t,n.textWidthBase),this.drawText(a,':',r.COLON3_OFFSET,t,n.textWidthBase)]};CountdownCanvas.prototype.getTextDate=function(t,e){var n='en-US',i='';if(e.day){var c=t.toLocaleString(n,{weekday:'long',});i+=c;if(e.date||e.year||e.time){i+=', '}};if(e.date){var s=t.toLocaleString(n,{month:'long',});var o=t.toLocaleString(n,{day:'numeric',});i+=s+' '+o+'th '};if(e.year){var a=t.getFullYear();i+=a+' '};if(e.time){var r=t.toLocaleString(n,{hour:'numeric',minute:'numeric',hour12:!0,});if(''!==i){i+='at '};i+=r};return i};CountdownCanvas.Constants={COMMON:{DAYS_OFFSET:0.125,HOURS_OFFSET:0.375,MINS_OFFSET:0.625,SECS_OFFSET:0.875,COLON1_OFFSET:0.25,COLON2_OFFSET:0.5,COLON3_OFFSET:0.75,HOURS_MAX:24,MINS_MAX:60,SECS_MAX:60},WITH_ARCS:{VALUE_SIZE_RATIO:0.3,LABEL_SIZE_RATIO:0.15,WITH_LABELS_BELOW:{VALUE_Y_OFFSET_RATIO:-0.15,LABEL_Y_OFFSET_RATIO:0.15},WITH_LABELS_ABOVE:{VALUE_Y_OFFSET_RATIO:-0.15,LABEL_Y_OFFSET_RATIO:-0.3},WITHOUT_LABELS:{VALUE_Y_OFFSET_RATIO:-0.3},WITHOUT_VALUES:{LABEL_Y_OFFSET_RATIO:-0.075}},WITHOUT_ARCS:{VALUE_SIZE_RATIO:0.6,LABEL_SIZE_RATIO:0.3,WITH_LABELS_BELOW:{VALUE_Y_OFFSET_RATIO:-0.45,LABEL_Y_OFFSET_RATIO:0.15},WITH_LABELS_ABOVE:{VALUE_Y_OFFSET_RATIO:-0.15,LABEL_Y_OFFSET_RATIO:-0.45},WITHOUT_LABELS:{VALUE_Y_OFFSET_RATIO:-0.3}},EXPIRE_SKIN:{PADDING_RATIO:0.4,VALUE_X_OFFSET_RATIO:0,VALUE_Y_OFFSET_RATIO:0,VALUE_HEIGHT_RATIO:0.5,DATE_PARTS:{DAY_WIDTH_RATIO:5.7,DAY_COMMA_WIDTH_RATIO:0.3,DATE_WIDTH_RATIO:8.25,TIME_WIDTH_RATIO:4.75,TIME_AT_WIDTH_RATIO:1,YEAR_WIDTH_RATIO:2.85,BOX_PADDING_RATIO:0.8}}};CountdownCanvas.prototype.getNumData=function(t,e,i,n){return{h:this.getH(t,e),daysMax:Math.ceil(i.days/365)*365}};CountdownCanvas.prototype.getArcsNumData=function(t,e,i,n){var r=this.getNumData(t,e,i,n),a=CountdownCanvas.Constants.WITH_ARCS;r.textWidthBase=this.getH(t,e);r.valueSizeRatio=a.VALUE_SIZE_RATIO;r.labelSizeRatio=a.LABEL_SIZE_RATIO;if(n.showValues&&n.showLabels&&n.showLabelsBelow){r.valueYOffsetRatio=a.WITH_LABELS_BELOW.VALUE_Y_OFFSET_RATIO;r.labelYOffsetRatio=a.WITH_LABELS_BELOW.LABEL_Y_OFFSET_RATIO} else if(n.showValues&&n.showLabels){r.valueYOffsetRatio=a.WITH_LABELS_ABOVE.VALUE_Y_OFFSET_RATIO;r.labelYOffsetRatio=a.WITH_LABELS_ABOVE.LABEL_Y_OFFSET_RATIO} else if(n.showValues){r.valueYOffsetRatio=a.WITHOUT_LABELS.VALUE_Y_OFFSET_RATIO} else if(n.showLabels){r.labelYOffsetRatio=a.WITHOUT_VALUES.LABEL_Y_OFFSET_RATIO};return r};CountdownCanvas.prototype.getNoArcsNumData=function(t,e,i,n){var r=this.getNumData(t,e,i,n),a=CountdownCanvas.Constants.WITHOUT_ARCS;r.textWidthBase=t/4;r.valueSizeRatio=a.VALUE_SIZE_RATIO;r.labelSizeRatio=a.LABEL_SIZE_RATIO;if(n.showLabels&&n.showLabelsBelow){r.valueYOffsetRatio=a.WITH_LABELS_BELOW.VALUE_Y_OFFSET_RATIO;r.labelYOffsetRatio=a.WITH_LABELS_BELOW.LABEL_Y_OFFSET_RATIO} else if(n.showLabels){r.valueYOffsetRatio=a.WITH_LABELS_ABOVE.VALUE_Y_OFFSET_RATIO;r.labelYOffsetRatio=a.WITH_LABELS_ABOVE.LABEL_Y_OFFSET_RATIO} else{r.valueYOffsetRatio=a.WITHOUT_LABELS.VALUE_Y_OFFSET_RATIO};return r};CountdownCanvas.prototype.getLayerChildren=function(t,e,i,n){n=n||CountdownCanvas.DefaultConfig;var r=[],a=n.showArcs?this.getArcsNumData(t,e,i,n):this.getNoArcsNumData(t,e,i,n);if(n.isTextView){return this.getLayerTextChildren(t,e,i,n)};if(n.showArcs){r=r.concat(this.drawArcs(t,e,i,n,a))};if(n.showValues){r=r.concat(this.drawValues(t,e,i,n,a))};if(n.showLabels){r=r.concat(this.drawLabels(t,e,n,a))};if(n.showColons){r=r.concat(this.drawColons(t,e,n,a))};return r};CountdownCanvas.prototype.getLayerTextChildren=function(t,e,i,n){var r=new Date(),a=CountdownCanvas.Constants.EXPIRE_SKIN,s={align:n.textAlignment,fill:n.fontColor,fontSize:n.fontSize,fontStyle:n.fontWeight,width:t,padding:n.fontSize*a.PADDING_RATIO,fontFamily:n.fontFamily},c=new Date(r.getFullYear(),r.getMonth(),r.getDate()+i.days,r.getHours()+i.hours,r.getMinutes()+i.minutes,r.getSeconds()+i.seconds);var o=this.getTextDate(c,n.textDateDisplay);return[this.drawText(s,o,a.VALUE_X_OFFSET_RATIO,t,a.VALUE_Y_OFFSET_RATIO)]};CountdownCanvas.prototype.draw=function(t,e,i,n,r){this.clearLayer();var o=this.getLayerChildren(e,i,n,r);for(var a=0;aa;++a){var n=o[a].match(/%(-|!)?([a-zA-Z]{1})(:[^;]+;)?/),u=s(n[0]),c=n[1]||'',l=n[3]||'',i=null;n=n[2],r.hasOwnProperty(n)&&(i=r[n],i=Number(t[i])),null!==i&&('!'===c&&(i=h(l,i)),''===c&&10>i&&(i='0'+i.toString()),e=e.replace(u,i.toString()))};return e=e.replace(/%%/,'%')}};function h(t,e){var i='s',n='';return t&&(t=t.replace(/(:|;|\s)/gi,'').split(/\,/),1===t.length?i=t[0]:(n=t[0],i=t[1])),1===Math.abs(e)?n:i};var i=[],e=[],a={precision:100,elapse:!1};e.push(/^[0-9]*$/.source),e.push(/([0-9]{1,2}\/){2}[0-9]{4}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),e.push(/[0-9]{4}([\/\-][0-9]{1,2}){2}( [0-9]{1,2}(:[0-9]{2}){2})?/.source),e=new RegExp(e.join('|'));var r={Y:'years',m:'months',n:'daysToMonth',w:'weeks',d:'daysToWeek',D:'totalDays',H:'hours',M:'minutes',S:'seconds'},n=function(e,n,r){this.el=e,this.$el=t(e),this.interval=null,this.offset={},this.options=t.extend({},a),this.instanceNumber=i.length,i.push(this),this.$el.data('countdown-instance',this.instanceNumber),r&&('function'==typeof r?(this.$el.on('update.countdown',r),this.$el.on('stoped.countdown',r),this.$el.on('finish.countdown',r)):this.options=t.extend({},a,r)),this.setFinalDate(n),this.start()};t.extend(n.prototype,{start:function(){null!==this.interval&&clearInterval(this.interval);var t=this;this.update(),this.interval=setInterval(function(){t.update.call(t)},this.options.precision)},stop:function(){clearInterval(this.interval),this.interval=null,this.dispatchEvent('stoped')},toggle:function(){this.interval?this.stop():this.start()},pause:function(){this.stop()},resume:function(){this.start()},remove:function(){this.stop.call(this),i[this.instanceNumber]=null,delete this.$el.data().countdownInstance},setFinalDate:function(t){this.finalDate=o(t)},update:function(){if(0===this.$el.closest('html').length)return void this.remove();var e,n=void 0!==t._data(this.el,'events'),i=new Date;e=this.finalDate.getTime()-i.getTime(),e=Math.ceil(e/1e3),e=!this.options.elapse&&0>e?0:Math.abs(e),this.totalSecsLeft!==e&&n&&(this.totalSecsLeft=e,this.elapsed=i>=this.finalDate,this.offset={seconds:this.totalSecsLeft%60,minutes:Math.floor(this.totalSecsLeft/60)%60,hours:Math.floor(this.totalSecsLeft/60/60)%24,days:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToWeek:Math.floor(this.totalSecsLeft/60/60/24)%7,daysToMonth:Math.floor(this.totalSecsLeft/60/60/24%30.4368),totalDays:Math.floor(this.totalSecsLeft/60/60/24),weeks:Math.floor(this.totalSecsLeft/60/60/24/7),months:Math.floor(this.totalSecsLeft/60/60/24/30.4368),years:Math.abs(this.finalDate.getFullYear()-i.getFullYear())},this.options.elapse||0!==this.totalSecsLeft?this.dispatchEvent('update'):(this.stop(),this.dispatchEvent('finish')))},dispatchEvent:function(e){var i=t.Event(e+'.countdown');i.finalDate=this.finalDate,i.elapsed=this.elapsed,i.offset=t.extend({},this.offset),i.strftime=c(this.offset),this.$el.trigger(i)}}),t.fn.countdown=function(){var e=Array.prototype.slice.call(arguments,0);return this.each(function(){var o=t(this).data('countdown-instance');if(void 0!==o){var r=i[o],a=e[0];n.prototype.hasOwnProperty(a)?r[a].apply(r,e.slice(1)):null===String(a).match(/^[$A-Z_][0-9A-Z_$]*$/i)?(r.setFinalDate.call(r,a),r.start()):t.error('Method %s does not exist on jQuery.countdown'.replace(/\%s/gi,a))} else new n(this,e[0],e[1])})}})});needsJQuery.ready(function(t){t.fn.initResizeListener=function(e,i,n){i=i||'cvt-element-resize';n=n||100;e=e||t.noop;var r,a;setInterval(function(){var n=t(this),o=!1;if(r!=n.width()){o=!0;r=n.width()};if(a!=n.height()){o=!0;a=n.height()};if(o){n.trigger(i);e.call(this)}}.bind(this),n)}});var UrlUtils=UrlUtils||{};UrlUtils.getURLParameters=function(t){var i=t.split('?',2);if(i.length=1){e[match[1]]=match[2]}};return e};UrlUtils.generateUrlWithParams=function(t,e){if(!t)return'';var i=[],r=t.split('?',1)[0];for(var n in e){i.push(n+'='+e[n])};return i.length?r+'?'+i.join('&'):t};UrlUtils.mergeUrlParams=function(t,e){var n=e||[];for(var i in t){n[i]=t[i]};return n};UrlUtils.mergeUrlWithRequestParams=function(t){var i=UrlUtils.getURLParameters(location.search),e=UrlUtils.getURLParameters(t);e=UrlUtils.mergeUrlParams(i,e);return UrlUtils.generateUrlWithParams(t,e)};var Countdown=Countdown||{};Countdown.OnExpiry={Hide:1,Show:2,Redirect:3};Countdown.fixUrl=function(t){var e=/^[a-z][a-z0-9\-\+\.]*:/,i=/^\/\//;if(t.match(e)||t.match(i)){return t};return'//'+t};Countdown.hasExpired=function(t){return t.endAt0){e.setDate(e.getDate()+CONVERTRI_CONSTANTS.AUTOWEBINAR_REPLAY_AVAILABLE)};return e.getTime()};Countdown.getScheduledEndAt=function(t,e){if(!t)return c();var a=Countdown.getWeekDays(),h=e||Date.now(),i=new Date(h),o=i.getUTCDay(),u=i.getUTCHours(),s=0,n=null;do{var r=a[o];if(t[r]&&t[r].length>0){n=l(t[r],s)};if(!n){o=(++o)%a.length;s++}} while(!n&&s0||ut.hours)return!0;if(nowWithTimezone.getHours()=t.minutes};needsJQuery.ready(function(t){t('[data-countdown]').each(function(){var I=1000*60*60*24*365*5,i=t(this),e={width:i.width(),height:i.height(),config:t.parseJSON(i.attr('data-countdown-config')),skinConfig:t.parseJSON(i.attr('data-countdown-skin-config')),skin:i.attr('data-countdown-skin')};var o=w();if('Fixed'===o){e.endAt=n(i,'data-countdown-end-at')} else if('Periodic'===o){var L=JSON.parse(CONVERTRI_CONSTANTS.AUTOWEBINAR_PERIODIC_SCHEDULE);e.endAt=Countdown.getScheduledEndAt(L)} else if('Replay'===o){var y=parseInt(s());if(!Number.isNaN(y)){e.endAt=Countdown.getReplayEndAt(y)} else{var m=c(i);if(m){e.endAt=parseInt(m)} else{e.endAt=Countdown.getReplayEndAt(Date.now())}}} else if('Restart'===o){if(k(i)){return};var P=i.attr('data-countdown-restart-mode'),v=n(i,'data-countdown-timezone-offset');switch(P){case'fourHour':e.endAt=Countdown.getRestartTopFourHourEndAt();break;case'hour':e.endAt=Countdown.getRestartTopHourEndAt();break;case'halfHour':e.endAt=Countdown.getRestartHalfHourEndAt();break;case'quarterHour':e.endAt=Countdown.getRestartQuarterHourEndAt();break;case'fiveMinutes':e.endAt=Countdown.getRestartFiveMinutesEndAt();break;case'oncePerDay':var d=n(i,'data-countdown-duration-hours');var f=n(i,'data-countdown-duration-minutes');e.endAt=Countdown.getRestartOncePerDayEndAt({hours:d,minutes:f},v);break;case'twicePerDay':var O=n(i,'data-countdown-duration-first-hours');var E=n(i,'data-countdown-duration-first-minutes'),F=n(i,'data-countdown-duration-second-hours'),A=n(i,'data-countdown-duration-second-minutes');e.endAt=Countdown.getRestartTwicePerDayEndAt({hours:O,minutes:E},{hours:F,minutes:A},v);break}} else{var T=n(i,'data-countdown-duration-days'),d=n(i,'data-countdown-duration-hours'),f=n(i,'data-countdown-duration-minutes'),x=n(i,'data-countdown-duration-seconds'),p=c(i);if(p){e.endAt=parseInt(p)} else{var l=new Date();e.endAt=l.getTime()+1000*x+1000*60*f+1000*60*60*d+1000*60*60*24*T}};var l=new Date(),a=new Date();a.setTime(e.endAt+I);var C=h(i)===G()&&'Restart'===o,b=e.config.rootTimer&&!s();if(b||C){K(e.endAt,a.toUTCString(),i)} else if(e.config.subTimer&&s()){e.endAt=parseInt(s())};U(i,e.endAt,a.toUTCString());W(i,l.getTime(),a.toUTCString());i.initResizeListener(function(){e.width=t(this).width();e.height=t(this).height();if(Countdown.hasExpired(e)){return};t(this).countdown('stop');t(this).countdown(e.endAt+1000);t(this).countdown(e.endAt);t(this).countdown('start')});var r=CountdownCanvas.init(i,e.width,e.height);if(Countdown.hasExpired(e)&&Countdown.showOnExpiry(e)){var g=r.getTimeLeft(null);Countdown.drawCanvas(r,i,e,g);setInterval(function(){Countdown.drawCanvas(r,i,e,g)},1000);return};i.countdown(e.endAt).on('update.countdown',M).on('finish.countdown',D).on('override.countdown',R);function k(t){var i=new Date(),e=parseInt(c(t)),u=B(t),r=t.attr('data-countdown-delay-mode');if(''===r||!u||!e){return!1};if('never'===r){return ei.getTime()};function w(){return i.attr('data-countdown-mode')};function D(t){switch(e.config.onExpiry){case Countdown.OnExpiry.Hide:Countdown.drawEmptyCanvas(r,i,e);break;case Countdown.OnExpiry.Show:var a=r.getTimeLeft(t.offset);Countdown.drawCanvas(r,i,e,a);i.timeoutIntervalId=setInterval(function(){Countdown.drawCanvas(r,i,e,a)},1000);break;case Countdown.OnExpiry.Redirect:if(e.config.redirectUrl){var n=Countdown.fixUrl(e.config.redirectUrl);if(e.config.passUrlParameters){n=UrlUtils.mergeUrlWithRequestParams(n)};window.location.assign(n)};break}};function R(t){var n=e.endAt=Date.now()&&e.config.onExpiry===Countdown.OnExpiry.Hide;e.endAt=parseInt(t.endAt);i.countdown('stop');i.countdown(e.endAt+1000);i.countdown(e.endAt);i.countdown('start');if(i.timeoutIntervalId){clearInterval(i.timeoutIntervalId);i.timeoutIntervalId=null};if(n){r=CountdownCanvas.init(i,e.width,e.height)};K(e.endAt,a.toUTCString(),i)};function M(t){var n=r.getTimeLeft(t.offset);Countdown.drawCanvas(r,i,e,n);if(w()==='Replay'){e.config.onExpiry=Countdown.OnExpiry.Hide}};function n(t,e){return parseInt(t.attr(e))};function N(t,e){var i=CONVERTRI_CONSTANTS.PAGESET_IDENTIFIER+'_master_timer='+t+';path=/;expires='+e;document.cookie=i};function G(){return u(CONVERTRI_CONSTANTS.PAGESET_IDENTIFIER+'_master_timer')};function K(t,e,i){N(h(i),e);var n=CONVERTRI_CONSTANTS.PAGESET_IDENTIFIER+'_end_time='+t+';path=/;expires='+e;document.cookie=n};function s(){return u(CONVERTRI_CONSTANTS.PAGESET_IDENTIFIER+'_end_time')};function c(t){return u(h(t))};function U(t,e,i){var n=h(t)+'='+e+';path='+location.pathname+';expires='+i;document.cookie=n};function h(t){return t.attr('data-countdown-id').replace(/-/g,'')};function S(t){return c(t)+'_visit_at'};function B(t){return u(S(t))};function W(t,e,i){var n=S(t)+'='+e+';path='+location.pathname+';expires='+i;document.cookie=n};function H(t,e){switch(t){case'twoMinutes':return 2*60;case'fiveMinutes':return 5*60;case'tenMinutes':return 10*60;case'custom':return 60*e.minutes+60*60*e.hours+60*60*24*e.days};return 0};function u(t){var i='; '+document.cookie,e=i.split('; '+t+'=');if(e.length==2){return e.pop().split(';').shift()};return null}})});needsJQuery.ready(function(t){t('a[href^="#"]:not([href="#"])').click(function(e){var i=this.hash.slice(1),n=t('[name=\''+decodeURI(i)+'\']');if(!n.length){return};var a=n.offset().top,o=navigator.userAgent.match(/(Windows Phone)/);if(o){r(i);return};t('html, body').animate({scrollTop:a},{duration:500,complete:function(){r(i)}});e.preventDefault();function r(t){window.location.hash=t}})});needsJQuery.ready(function(t){ViewportResizer.init(convertriParameters.tabletModeWidth)});var ViewportResizer=function(t){t=t||960;var e=function(){};this.states={phone:{viewportWidth:'device-width',enter:e,leave:e,},tablet:{viewportWidth:t,enter:this.tabletModeOn.bind(this),leave:this.tabletModeOff.bind(this),},desktop:{viewportWidth:'device-width',enter:e,leave:e,}};this.state=this.states.phone;this.lastClientSize={width:null,height:null,}};ViewportResizer.META_ID='viewport-meta';ViewportResizer.prototype.performCheck=function(){var e=document.documentElement.clientWidth,i=document.documentElement.clientHeight;if(this.lastClientSize.width===e&&this.lastClientSize.height===i){return};this.lastClientSize={width:e,height:i,};var t=this.getNaturalClientWidth();if(t');t('body').append(e);var i=e.css('font-size'),n=r/parseFloat(i);e.remove();return n};function d(){var e=r();t('html').css('text-size-adjust',Math.round(100*e)+'%')};function f(){var e=r();e=e*e;t('.te-scope-mobile span, .te-scope-desktop span').each(function(){i(t(this));s(t(this))});var a=uniqueSelector('.element-body'),o=uniqueSelector('.credit-card-input-icon');t('input'+a+', '+o).each(function(){i(t(this))});function i(t){n(t,'font-size')};function s(t){n(t,'line-height')};function n(t,i){var n=parseFloat(t.css(i)),r=n*e;t.css(i,r+'px')}};function e(t){return i.indexOf(t)!==-1};function a(t){return!!i.match(t)}});function visibilityChanged(t){if(window.manageIframesState){window.manageIframesState(t)};if(window.manageHtmlVideosPlayback){window.manageHtmlVideosPlayback(t)};if(window.manageYtVideosPlayback){window.manageYtVideosPlayback(t)};if(window.manageVimeoVideosPlayback){window.manageVimeoVideosPlayback(t)};if(window.manageWistiaVideosPlayback){window.manageWistiaVideosPlayback(t)};if(window.managePrestoVideosPlayback){window.managePrestoVideosPlayback(t)};if(window.manageLayerScrollbars){window.manageLayerScrollbars(t)};if(window.manageCarousels){window.manageCarousels(t)};$(t).trigger('visibilityChanged')};var MobileDetector={MOBILE_VARIANT:'mobile',isMobile:function(){var e=window.getComputedStyle(document.body,':after'),t=e.getPropertyValue('content');t=t.replace(new RegExp('"','g'),'');return MobileDetector.MOBILE_VARIANT===t}};(function(t){function l(t){if(1/t==-Infinity&&(t=0),t>Math.pow(2,32)-1)throw new RangeError('Invalid array length');var e=[];return e.length=t,e};function o(t,e){var i=arguments.length>2?arguments[2]:[];if(!1===r(t))throw new TypeError(Object.prototype.toString.call(t)+'is not a function.');return t.apply(e,i)};function e(t,e){return t[e]};function c(t,e){return e in t};function d(t){return'[object Array]'===Object.prototype.toString.call(t)};function r(t){return'function'==typeof t};function f(t){return Boolean(t)};function g(t){var e=Number(t);return isNaN(e)?0:1/e===Infinity||1/e==-Infinity||e===Infinity||e===-Infinity?e:(e1?arguments[1]:t;if('object'===n(e)){if(arguments.length1?arguments[1]:t,u=0;u

=r)return-1;if(n>=0)var i=-0===n?0:n;else{var i=r+n;i1?arguments[1]:t,n=0;n

=0&&'[object Function]'===n.call(t.callee)),e};var i=Object.prototype.hasOwnProperty,n=Object.prototype.toString,o=Object.prototype.propertyIsEnumerable,s=!o.call({toString:null},'toString'),c=o.call(function(){},'prototype'),r=['toString','toLocaleString','valueOf','hasOwnProperty','isPrototypeOf','propertyIsEnumerable','constructor'],a=function(t){var e=t.constructor;return e&&e.prototype===t},h={$console:!0,$external:!0,$frame:!0,$frameElement:!0,$frames:!0,$innerHeight:!0,$innerWidth:!0,$outerHeight:!0,$outerWidth:!0,$pageXOffset:!0,$pageYOffset:!0,$parent:!0,$scrollLeft:!0,$scrollTop:!0,$scrollX:!0,$scrollY:!0,$self:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0,$window:!0},u=function(){if('undefined'==typeof window)return!1;for(var e in window)try{if(!h['$'+e]&&i.call(window,e)&&null!==window[e]&&'object'==typeof window[e])try{a(window[e])}catch(t){return!0}}catch(t){return!0};return!1}(),l=function(t){if('undefined'==typeof window||!u)return a(t);try{return a(t)}catch(e){return!1}};return function e(a){var v='[object Function]'===n.call(a),m=d(a),y='[object String]'===n.call(a),e=[];if(a===t||null===a)throw new TypeError('Cannot convert undefined or null to object');var p=c&&v;if(y&&a.length>0&&!i.call(a,0))for(var f=0;f0)for(var u=0;u2?arguments[2]:t,i=arguments.length>1?arguments[1]:[];if(!u(t))throw new TypeError('F must be a constructor.');if(!u(e))throw new TypeError('newTarget must be a constructor.');if(e===t)return new(Function.prototype.bind.apply(t,[null].concat(i)));var n=b(e,Object.prototype);return o(t,n,i)};function v(i,r){if(1/r==-Infinity&&(r=0),!1===d(i))return l(r);var a=e(i,'constructor');if('object'===n(a)&&null===(a='Symbol'in this&&'species'in this.Symbol?e(a,this.Symbol.species):t)&&(a=t),a===t)return l(r);if(!u(a))throw new TypeError('C must be a constructor');return T(a,[r])};if(!('filter'in Array.prototype)){i(Array.prototype,'filter',function(i){var n=s(this),w=h(e(n,'length'));if(!1===r(i))throw new TypeError(i+' is not a function');for(var y=arguments.length>1?arguments[1]:t,g=v(n,0),u=0,m=0;u1?arguments[1]:t,d=v(n,f),u=0;u=0&&s>=0&&{top:i,bottom:n,left:r,right:a,width:o,height:s}};function r(t){var i;try{i=t.getBoundingClientRect()}catch(e){};return i?(i.width&&i.height||(i={top:i.top,right:i.right,bottom:i.bottom,left:i.left,width:i.right-i.left,height:i.bottom-i.top}),i):a()};function a(){return{top:0,bottom:0,left:0,right:0,width:0,height:0}};function u(t,e){for(var i=e;i;){if(i==t)return!0;i=o(i)};return!1};function o(t){var e=t.parentNode;return e&&11==e.nodeType&&e.host?e.host:e&&e.assignedSlot?e.assignedSlot.parentNode:e};var n=[];i.prototype.THROTTLE_TIMEOUT=100,i.prototype.POLL_INTERVAL=null,i.prototype.USE_MUTATION_OBSERVER=!0,i.prototype.observe=function(t){if(!this._observationTargets.some(function(e){return e.element==t})){if(!t||1!=t.nodeType)throw new Error('target must be an Element');this._registerInstance(),this._observationTargets.push({element:t,entry:null}),this._monitorIntersections(),this._checkForIntersections()}},i.prototype.unobserve=function(t){this._observationTargets=this._observationTargets.filter(function(e){return e.element!=t}),this._observationTargets.length||(this._unmonitorIntersections(),this._unregisterInstance())},i.prototype.disconnect=function(){this._observationTargets=[],this._unmonitorIntersections(),this._unregisterInstance()},i.prototype.takeRecords=function(){var t=this._queuedEntries.slice();return this._queuedEntries=[],t},i.prototype._initThresholds=function(t){var e=t||[0];return Array.isArray(e)||(e=[e]),e.sort().filter(function(t,e,i){if('number'!=typeof t||isNaN(t)||t1)throw new Error('threshold must be a number between 0 and 1 inclusively');return t!==i[e-1]})},i.prototype._parseRootMargin=function(t){var i=t||'0px',e=i.split(/\s+/).map(function(t){var e=/^(-?\d*\.?\d+)(px|%)$/.exec(t);if(!e)throw new Error('rootMargin must be specified in pixels or percent');return{value:parseFloat(e[1]),unit:e[2]}});return e[1]=e[1]||e[0],e[2]=e[2]||e[0],e[3]=e[3]||e[1],e},i.prototype._monitorIntersections=function(){this._monitoringIntersections||(this._monitoringIntersections=!0,this.POLL_INTERVAL?this._monitoringInterval=setInterval(this._checkForIntersections,this.POLL_INTERVAL):(c(t,'resize',this._checkForIntersections,!0),c(e,'scroll',this._checkForIntersections,!0),this.USE_MUTATION_OBSERVER&&'MutationObserver'in t&&(this._domObserver=new MutationObserver(this._checkForIntersections),this._domObserver.observe(e,{attributes:!0,childList:!0,characterData:!0,subtree:!0}))))},i.prototype._unmonitorIntersections=function(){this._monitoringIntersections&&(this._monitoringIntersections=!1,clearInterval(this._monitoringInterval),this._monitoringInterval=null,h(t,'resize',this._checkForIntersections,!0),h(e,'scroll',this._checkForIntersections,!0),this._domObserver&&(this._domObserver.disconnect(),this._domObserver=null))},i.prototype._checkForIntersections=function(){var t=this._rootIsInDom(),e=t?this._getRootRect():a();this._observationTargets.forEach(function(i){var n=i.element,h=r(n),c=this._rootContainsTarget(n),a=i.entry,u=t&&c&&this._computeTargetAndRootIntersection(n,e),o=i.entry=new s({time:l(),target:n,boundingClientRect:h,rootBounds:e,intersectionRect:u});a?t&&c?this._hasCrossedThreshold(a,o)&&this._queuedEntries.push(o):a&&a.isIntersecting&&this._queuedEntries.push(o):this._queuedEntries.push(o)},this),this._queuedEntries.length&&this._callback(this.takeRecords(),this)},i.prototype._computeTargetAndRootIntersection=function(i,n){if('none'!=t.getComputedStyle(i).display){for(var l=r(i),c=l,a=o(i),u=!1;!u;){var s=null,h=1==a.nodeType?t.getComputedStyle(a):{};if('none'==h.display)return;if(a==this.root||a==e?(u=!0,s=n):a!=e.body&&a!=e.documentElement&&'visible'!=h.overflow&&(s=r(a)),s&&!(c=f(s,c)))break;a=o(a)};return c}},i.prototype._getRootRect=function(){var n;if(this.root)n=r(this.root);else{var t=e.documentElement,i=e.body;n={top:0,left:0,right:t.clientWidth||i.clientWidth,width:t.clientWidth||i.clientWidth,bottom:t.clientHeight||i.clientHeight,height:t.clientHeight||i.clientHeight}};return this._expandRectByRootMargin(n)},i.prototype._expandRectByRootMargin=function(t){var i=this._rootMarginValues.map(function(e,i){return'px'==e.unit?e.value:e.value*(i%2?t.width:t.height)/100}),e={top:t.top-i[0],right:t.right+i[1],bottom:t.bottom+i[2],left:t.left-i[3]};return e.width=e.right-e.left,e.height=e.bottom-e.top,e},i.prototype._hasCrossedThreshold=function(t,e){var r=t&&t.isIntersecting?t.intersectionRatio||0:-1,a=e.isIntersecting?e.intersectionRatio||0:-1;if(r!==a)for(var n=0;n0}})}}).call('object'===typeof window&&window||'object'===typeof self&&self||'object'===typeof global&&global||{});'use strict';function yall(t){t=t||{};var S=t.lazyClass||'lazy',u=t.lazyBackgroundClass||'lazy-bg',g='idleLoadTimeout' in t?t.idleLoadTimeout:200,p=t.observeChanges||!1,c=t.events||{};var i=window,l='requestIdleCallback',a='IntersectionObserver',o=['srcset','src','poster'],m=[],s=function(t,e){return m.slice.call((e||document).querySelectorAll(t||'.'+u))},h=function(e){var a=e.parentNode,r;if(a.nodeName=='PICTURE'){r=a};if(e.nodeName=='VIDEO'){r=e};n(s('source',r),f);f(e);if(e.autoplay){e.load()};var i=e.classList;if(i.contains(u)){i.remove(u);i.add(t.lazyBackgroundLoaded||'lazy-bg-loaded')}},d=function(t){for(var e in c){t.addEventListener(e,c[e].listener||c[e],c[e].options||undefined)}},f=function(t){for(var e in o){if(!t.dataset){continue};if(o[e]in t.dataset){i['requestAnimationFrame'](function(){return t.setAttribute(o[e],t.dataset[o[e]])})}}},n=function(t,e){for(var n in t){e instanceof i[a]?e.observe(t[n]):e(t[n])}},y=function(t){if(t.isIntersecting||t.intersectionRatio){var n=t.target;if(l in i&&g){i[l](function(){return h(n)},{timeout:g})} else{h(n)};n.classList.remove(S);r.unobserve(n);e=e.filter(function(t){return t!=n});if(!e.length&&!p){r.disconnect()}}},w=function(t){if(e.indexOf(t)=s)return;var o=t(i).data('bg-image');e=s+a;n=r;o+='?auto=compress%2Cformat&fit=crop&w='+r+'+&h='+e;t(i).css('width',r+'px');t(i).css('height',e+'px');t(i).css('background-image','url('+o+')')}});function uniqueSelector(t){var e=/^([.#])\w/;if(!e.test(t)){return CONVERTRI_CONSTANTS.CSS_PREFIX+t};return t.substr(0,1)+CONVERTRI_CONSTANTS.CSS_PREFIX+t.substr(1)};needsJQuery.ready(function(t){var e=uniqueSelector('#the-wrapper'),i=t(e).find('.layer-scrollable:visible');if(i.length){t('body').addClass('no-scroll')}});function manageLayerScrollbars(t){var e=$(t),n=e.hasClass('layer-scrollable');if(!n){return};if(e.is(':visible')){var i=$('html').scrollTop()?$('html').scrollTop():$('body').scrollTop();e.data('scrollPosition',i);$('body').addClass('no-scroll').css('top',-i+'px')} else{$('body').removeClass('no-scroll');$('html, body').scrollTop(e.data('scrollPosition'))}};needsJQuery.ready(function(t){var e=uniqueSelector('.box a[pass-params]');t(e).each(function(e,i){var n=t(i).attr('href');if(!n)return;t(i).attr('href',UrlUtils.mergeUrlWithRequestParams(n))})});