About Us

Providing a personal service is what matters most to us.

We are proud to be the providers of a mix of printing services throughout Singapore that take care of your every need.  Whether you are looking for invitations, cards, business printing, brochures or anything else, we are your one-stop go-to shop.

We are confident of dealing expertly with all of your requirements as well as keeping our promise; this is to provide you with a service that is affordable and professional, delivered by a printing team that care.

PrintVolution - Model
PrintVolution - View of Tote Bag

5 Star Quality

Experts in the field of printing, we pay careful attention to each aspect of the printing process from beginning to end.   Once you have placed your order with us, if we spot any errors, we will let you know. Design changes and mistakes in text will be notified by us.  Equally, if you detect a problem after you have placed your order, let us know as quickly as possible.  This way, we may be able to attend to it before your order is put into production.

You have full peace of mind, knowing that the whole procedure is going to be stress free and 5-star when it comes to quality.

Our Goals

Customer Focus

You are important to us and at the forefront of all that we do.

Integrity & Trust

Transparent services with honesty pervading our every action

Proactiveness

When there is a problem, we find a way to resolve it.

First Class Service

By getting it right, you are happy and so are we.

Our goals

Our goal is to provide you with outstanding value, attention to detail and a printing service that outclasses all others.  By getting it right first time, you are happy and so are we.

PrintVolution - Team
Contact Us
Feel free to leave as a note. A letter. A word. No matter. Lorem ipsum dolor isamet and so on. So keep in touch. Leave a message. You know what I'm saying.
2018 (C) All rights reserved.
CiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPSdnZl9icm93c2VyX3Vua25vd24gZ2Zvcm1fd3JhcHBlcicgaWQ9J2dmb3JtX3dyYXBwZXJfMjgnID48ZGl2IGlkPSdnZl8yOCcgY2xhc3M9J2dmb3JtX2FuY2hvcicgdGFiaW5kZXg9Jy0xJz48L2Rpdj48Zm9ybSBtZXRob2Q9J3Bvc3QnIGVuY3R5cGU9J211bHRpcGFydC9mb3JtLWRhdGEnIHRhcmdldD0nZ2Zvcm1fYWpheF9mcmFtZV8yOCcgaWQ9J2dmb3JtXzI4JyAgYWN0aW9uPScvYWJvdXQtdXMvI2dmXzI4Jz4KICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1faGVhZGluZyc+CiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3M9J2dmb3JtX3RpdGxlJz5DYXJkYm9hcmQgU3RhbmRlZSBFbnF1aXJ5PC9oMz4KICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+CiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9J2dmb3JtX2JvZHknPjx1bCBpZD0nZ2Zvcm1fZmllbGRzXzI4JyBjbGFzcz0nZ2Zvcm1fZmllbGRzIHRvcF9sYWJlbCBmb3JtX3N1YmxhYmVsX2JlbG93IGRlc2NyaXB0aW9uX2JlbG93Jz48bGkgaWQ9J2ZpZWxkXzI4XzIwJyAgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZScgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzI4XzIwJyA+TmFtZTxzcGFuIGNsYXNzPSdnZmllbGRfcmVxdWlyZWQnPio8L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfdGV4dCc+PGlucHV0IG5hbWU9J2lucHV0XzIwJyBpZD0naW5wdXRfMjhfMjAnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nICAgICBhcmlhLXJlcXVpcmVkPSJ0cnVlIiBhcmlhLWludmFsaWQ9ImZhbHNlIiAvPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yOF8yJyAgY2xhc3M9J2dmaWVsZCBnZmllbGRfY29udGFpbnNfcmVxdWlyZWQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZScgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyBmb3I9J2lucHV0XzI4XzInID5FbWFpbDxzcGFuIGNsYXNzPSdnZmllbGRfcmVxdWlyZWQnPio8L3NwYW4+PC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfZW1haWwnPgogICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IG5hbWU9J2lucHV0XzInIGlkPSdpbnB1dF8yOF8yJyB0eXBlPSd0ZXh0JyB2YWx1ZT0nJyBjbGFzcz0nbWVkaXVtJyAgICBhcmlhLXJlcXVpcmVkPSJ0cnVlIiBhcmlhLWludmFsaWQ9ImZhbHNlIiAvPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj48L2xpPjxsaSBpZD0nZmllbGRfMjhfMycgIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yOF8zJyA+UGhvbmU8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3Bob25lJz48aW5wdXQgbmFtZT0naW5wdXRfMycgaWQ9J2lucHV0XzI4XzMnIHR5cGU9J3RleHQnIHZhbHVlPScnIGNsYXNzPSdtZWRpdW0nICAgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgYXJpYS1pbnZhbGlkPSJmYWxzZSIgIC8+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzI4XzQnICBjbGFzcz0nZ2ZpZWxkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yOF80JyA+Q29tcGFueTwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3RleHQnPjxpbnB1dCBuYW1lPSdpbnB1dF80JyBpZD0naW5wdXRfMjhfNCcgdHlwZT0ndGV4dCcgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgICAgICBhcmlhLWludmFsaWQ9ImZhbHNlIiAvPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yOF8xNicgIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yOF8xNicgPkxhbWluYXRpb248c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3NlbGVjdCc+PHNlbGVjdCBuYW1lPSdpbnB1dF8xNicgaWQ9J2lucHV0XzI4XzE2JyBjbGFzcz0nbWVkaXVtIGdmaWVsZF9zZWxlY3QnICAgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgYXJpYS1pbnZhbGlkPSJmYWxzZSI+PG9wdGlvbiB2YWx1ZT0nTm8gTGFtaW5hdGlvbicgPk5vIExhbWluYXRpb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSdNYXR0IExhbWluYXRpb24nID5NYXR0IExhbWluYXRpb248L29wdGlvbj48b3B0aW9uIHZhbHVlPSdHbG9zcyBMYW1pbmF0aW9uJyA+R2xvc3MgTGFtaW5hdGlvbjwvb3B0aW9uPjwvc2VsZWN0PjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yOF8xNycgIGNsYXNzPSdnZmllbGQgZ2ZpZWxkX2NvbnRhaW5zX3JlcXVpcmVkIGZpZWxkX3N1YmxhYmVsX2JlbG93IGZpZWxkX2Rlc2NyaXB0aW9uX2JlbG93IGdmaWVsZF92aXNpYmlsaXR5X3Zpc2libGUnID48bGFiZWwgY2xhc3M9J2dmaWVsZF9sYWJlbCcgZm9yPSdpbnB1dF8yOF8xNycgPlNpemU8c3BhbiBjbGFzcz0nZ2ZpZWxkX3JlcXVpcmVkJz4qPC9zcGFuPjwvbGFiZWw+PGRpdiBjbGFzcz0nZ2lucHV0X2NvbnRhaW5lciBnaW5wdXRfY29udGFpbmVyX3NlbGVjdCc+PHNlbGVjdCBuYW1lPSdpbnB1dF8xNycgaWQ9J2lucHV0XzI4XzE3JyBjbGFzcz0nbWVkaXVtIGdmaWVsZF9zZWxlY3QnICAgYXJpYS1yZXF1aXJlZD0idHJ1ZSIgYXJpYS1pbnZhbGlkPSJmYWxzZSI+PG9wdGlvbiB2YWx1ZT0nQTUnID5BNTwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0E0JyA+QTQ8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBMycgPkEzPC9vcHRpb24+PG9wdGlvbiB2YWx1ZT0nQTInID5BMjwvb3B0aW9uPjxvcHRpb24gdmFsdWU9J0ExJyA+QTE8L29wdGlvbj48b3B0aW9uIHZhbHVlPSdBMCcgPkEwPC9vcHRpb24+PC9zZWxlY3Q+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzI4XzcnICBjbGFzcz0nZ2ZpZWxkIGdmaWVsZF9jb250YWluc19yZXF1aXJlZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjhfNycgPlF1YW50aXR5PHNwYW4gY2xhc3M9J2dmaWVsZF9yZXF1aXJlZCc+Kjwvc3Bhbj48L2xhYmVsPjxkaXYgY2xhc3M9J2dpbnB1dF9jb250YWluZXIgZ2lucHV0X2NvbnRhaW5lcl9udW1iZXInPjxpbnB1dCBuYW1lPSdpbnB1dF83JyBpZD0naW5wdXRfMjhfNycgdHlwZT0ndGV4dCcgICAgdmFsdWU9JycgY2xhc3M9J21lZGl1bScgICAgIGFyaWEtcmVxdWlyZWQ9InRydWUiIGFyaWEtaW52YWxpZD0iZmFsc2UiIC8+PC9kaXY+PC9saT48bGkgaWQ9J2ZpZWxkXzI4XzEwJyAgY2xhc3M9J2dmaWVsZCBmaWVsZF9zdWJsYWJlbF9iZWxvdyBmaWVsZF9kZXNjcmlwdGlvbl9iZWxvdyBnZmllbGRfdmlzaWJpbGl0eV92aXNpYmxlJyA+PGxhYmVsIGNsYXNzPSdnZmllbGRfbGFiZWwnIGZvcj0naW5wdXRfMjhfMTAnID5BZGRpdGlvbmFsIEluZm9ybWF0aW9uPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfdGV4dGFyZWEnPjx0ZXh0YXJlYSBuYW1lPSdpbnB1dF8xMCcgaWQ9J2lucHV0XzI4XzEwJyBjbGFzcz0ndGV4dGFyZWEgbWVkaXVtJyAgICAgIGFyaWEtaW52YWxpZD0iZmFsc2UiICAgcm93cz0nMTAnIGNvbHM9JzUwJz48L3RleHRhcmVhPjwvZGl2PjwvbGk+PGxpIGlkPSdmaWVsZF8yOF8xOCcgIGNsYXNzPSdnZmllbGQgZmllbGRfc3VibGFiZWxfYmVsb3cgZmllbGRfZGVzY3JpcHRpb25fYmVsb3cgZ2ZpZWxkX3Zpc2liaWxpdHlfdmlzaWJsZScgPjxsYWJlbCBjbGFzcz0nZ2ZpZWxkX2xhYmVsJyAgPkFydHdvcmsgVXBsb2FkPC9sYWJlbD48ZGl2IGNsYXNzPSdnaW5wdXRfY29udGFpbmVyIGdpbnB1dF9jb250YWluZXJfZmlsZXVwbG9hZCc+PGRpdiBpZD0nZ2Zvcm1fbXVsdGlmaWxlX3VwbG9hZF8yOF8xOCcgZGF0YS1zZXR0aW5ncz0neyZxdW90O3J1bnRpbWVzJnF1b3Q7OiZxdW90O2h0bWw1LGZsYXNoLGh0bWw0JnF1b3Q7LCZxdW90O2Jyb3dzZV9idXR0b24mcXVvdDs6JnF1b3Q7Z2Zvcm1fYnJvd3NlX2J1dHRvbl8yOF8xOCZxdW90OywmcXVvdDtjb250YWluZXImcXVvdDs6JnF1b3Q7Z2Zvcm1fbXVsdGlmaWxlX3VwbG9hZF8yOF8xOCZxdW90OywmcXVvdDtkcm9wX2VsZW1lbnQmcXVvdDs6JnF1b3Q7Z2Zvcm1fZHJhZ19kcm9wX2FyZWFfMjhfMTgmcXVvdDssJnF1b3Q7ZmlsZWxpc3QmcXVvdDs6JnF1b3Q7Z2Zvcm1fcHJldmlld18yOF8xOCZxdW90OywmcXVvdDt1bmlxdWVfbmFtZXMmcXVvdDs6dHJ1ZSwmcXVvdDtmaWxlX2RhdGFfbmFtZSZxdW90OzomcXVvdDtmaWxlJnF1b3Q7LCZxdW90O3VybCZxdW90OzomcXVvdDtodHRwczpcL1wvcHJpbnR2b2x1dGlvbi5zZ1wvP2dmX3BhZ2U9NWU3YWYwMWM1ZTEyNWU5JnF1b3Q7LCZxdW90O2ZsYXNoX3N3Zl91cmwmcXVvdDs6JnF1b3Q7aHR0cHM6XC9cL3ByaW50dm9sdXRpb24uc2dcL3dwLWluY2x1ZGVzXC9qc1wvcGx1cGxvYWRcL3BsdXBsb2FkLmZsYXNoLnN3ZiZxdW90OywmcXVvdDtzaWx2ZXJsaWdodF94YXBfdXJsJnF1b3Q7OiZxdW90O2h0dHBzOlwvXC9wcmludHZvbHV0aW9uLnNnXC93cC1pbmNsdWRlc1wvanNcL3BsdXBsb2FkXC9wbHVwbG9hZC5zaWx2ZXJsaWdodC54YXAmcXVvdDssJnF1b3Q7ZmlsdGVycyZxdW90Ozp7JnF1b3Q7bWltZV90eXBlcyZxdW90OzpbeyZxdW90O3RpdGxlJnF1b3Q7OiZxdW90O0FsbG93ZWQgRmlsZXMmcXVvdDssJnF1b3Q7ZXh0ZW5zaW9ucyZxdW90OzomcXVvdDsqJnF1b3Q7fV0sJnF1b3Q7bWF4X2ZpbGVfc2l6ZSZxdW90OzomcXVvdDszMzU1NDQzMmImcXVvdDt9LCZxdW90O211bHRpcGFydCZxdW90Ozp0cnVlLCZxdW90O3VybHN0cmVhbV91cGxvYWQmcXVvdDs6ZmFsc2UsJnF1b3Q7bXVsdGlwYXJ0X3BhcmFtcyZxdW90Ozp7JnF1b3Q7Zm9ybV9pZCZxdW90OzoyOCwmcXVvdDtmaWVsZF9pZCZxdW90OzoxOH0sJnF1b3Q7Z2ZfdmFycyZxdW90Ozp7JnF1b3Q7bWF4X2ZpbGVzJnF1b3Q7OjAsJnF1b3Q7bWVzc2FnZV9pZCZxdW90OzomcXVvdDtnZm9ybV9tdWx0aWZpbGVfbWVzc2FnZXNfMjhfMTgmcXVvdDssJnF1b3Q7ZGlzYWxsb3dlZF9leHRlbnNpb25zJnF1b3Q7OlsmcXVvdDtwaHAmcXVvdDssJnF1b3Q7YXNwJnF1b3Q7LCZxdW90O2FzcHgmcXVvdDssJnF1b3Q7Y21kJnF1b3Q7LCZxdW90O2NzaCZxdW90OywmcXVvdDtiYXQmcXVvdDssJnF1b3Q7aHRtbCZxdW90OywmcXVvdDtodG0mcXVvdDssJnF1b3Q7aHRhJnF1b3Q7LCZxdW90O2phciZxdW90OywmcXVvdDtleGUmcXVvdDssJnF1b3Q7Y29tJnF1b3Q7LCZxdW90O2pzJnF1b3Q7LCZxdW90O2xuayZxdW90OywmcXVvdDtodGFjY2VzcyZxdW90OywmcXVvdDtwaHRtbCZxdW90OywmcXVvdDtwczEmcXVvdDssJnF1b3Q7cHMyJnF1b3Q7LCZxdW90O3BocDMmcXVvdDssJnF1b3Q7cGhwNCZxdW90OywmcXVvdDtwaHA1JnF1b3Q7LCZxdW90O3BocDYmcXVvdDssJnF1b3Q7cHkmcXVvdDssJnF1b3Q7cmImcXVvdDssJnF1b3Q7dG1wJnF1b3Q7XX19JyBjbGFzcz0nZ2Zvcm1fZmlsZXVwbG9hZF9tdWx0aWZpbGUnPgoJCQkJCQkJCQkJPGRpdiBpZD0nZ2Zvcm1fZHJhZ19kcm9wX2FyZWFfMjhfMTgnIGNsYXNzPSdnZm9ybV9kcm9wX2FyZWEnPgoJCQkJCQkJCQkJCTxzcGFuIGNsYXNzPSdnZm9ybV9kcm9wX2luc3RydWN0aW9ucyc+RHJvcCBmaWxlcyBoZXJlIG9yIDwvc3Bhbj4KCQkJCQkJCQkJCQk8aW5wdXQgaWQ9J2dmb3JtX2Jyb3dzZV9idXR0b25fMjhfMTgnIHR5cGU9J2J1dHRvbicgdmFsdWU9J1NlbGVjdCBmaWxlcycgY2xhc3M9J2J1dHRvbiBnZm9ybV9idXR0b25fc2VsZWN0X2ZpbGVzJyBhcmlhLWRlc2NyaWJlZGJ5PSdleHRlbnNpb25zX21lc3NhZ2VfMjhfMTgnICAvPgoJCQkJCQkJCQkJPC9kaXY+CgkJCQkJCQkJCTwvZGl2PjxzcGFuIGlkPSdleHRlbnNpb25zX21lc3NhZ2VfMjhfMTgnIGNsYXNzPSdzY3JlZW4tcmVhZGVyLXRleHQnPjwvc3Bhbj48ZGl2IGNsYXNzPSd2YWxpZGF0aW9uX21lc3NhZ2UnPgoJCQkJCQkJCTx1bCBpZD0nZ2Zvcm1fbXVsdGlmaWxlX21lc3NhZ2VzXzI4XzE4Jz4KCQkJCQkJCQk8L3VsPgoJCQkJCQkJPC9kaXY+PC9kaXY+PGRpdiBpZD0nZ2Zvcm1fcHJldmlld18yOF8xOCc+PC9kaXY+PC9saT4KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdWw+PC9kaXY+CiAgICAgICAgPGRpdiBjbGFzcz0nZ2Zvcm1fZm9vdGVyIHRvcF9sYWJlbCc+IDxpbnB1dCB0eXBlPSdzdWJtaXQnIGlkPSdnZm9ybV9zdWJtaXRfYnV0dG9uXzI4JyBjbGFzcz0nZ2Zvcm1fYnV0dG9uIGJ1dHRvbicgdmFsdWU9J1N1Ym1pdCcgIG9uY2xpY2s9J2lmKHdpbmRvd1siZ2Zfc3VibWl0dGluZ18yOCJdKXtyZXR1cm4gZmFsc2U7fSAgd2luZG93WyJnZl9zdWJtaXR0aW5nXzI4Il09dHJ1ZTsgICcgb25rZXlwcmVzcz0naWYoIGV2ZW50LmtleUNvZGUgPT0gMTMgKXsgaWYod2luZG93WyJnZl9zdWJtaXR0aW5nXzI4Il0pe3JldHVybiBmYWxzZTt9IHdpbmRvd1siZ2Zfc3VibWl0dGluZ18yOCJdPXRydWU7ICBqUXVlcnkoIiNnZm9ybV8yOCIpLnRyaWdnZXIoInN1Ym1pdCIsW3RydWVdKTsgfScgLz4gPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fYWpheCcgdmFsdWU9J2Zvcm1faWQ9MjgmYW1wO3RpdGxlPTEmYW1wO2Rlc2NyaXB0aW9uPSZhbXA7dGFiaW5kZXg9MCcgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0naXNfc3VibWl0XzI4JyB2YWx1ZT0nMScgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgY2xhc3M9J2dmb3JtX2hpZGRlbicgbmFtZT0nZ2Zvcm1fc3VibWl0JyB2YWx1ZT0nMjgnIC8+CiAgICAgICAgICAgIAogICAgICAgICAgICA8aW5wdXQgdHlwZT0naGlkZGVuJyBjbGFzcz0nZ2Zvcm1faGlkZGVuJyBuYW1lPSdnZm9ybV91bmlxdWVfaWQnIHZhbHVlPScnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J3N0YXRlXzI4JyB2YWx1ZT0nV3lKYlhTSXNJak5sWldVd1pqWXhZbVUyT1Raa1ptVmxNREZrWW1WbFptWTROREF5WVRNMElsMD0nIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl8yOCcgaWQ9J2dmb3JtX3RhcmdldF9wYWdlX251bWJlcl8yOCcgdmFsdWU9JzAnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIGNsYXNzPSdnZm9ybV9oaWRkZW4nIG5hbWU9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl8yOCcgaWQ9J2dmb3JtX3NvdXJjZV9wYWdlX251bWJlcl8yOCcgdmFsdWU9JzEnIC8+CiAgICAgICAgICAgIDxpbnB1dCB0eXBlPSdoaWRkZW4nIG5hbWU9J2dmb3JtX2ZpZWxkX3ZhbHVlcycgdmFsdWU9JycgLz4KICAgICAgICAgICAgPGlucHV0IHR5cGU9J2hpZGRlbicgbmFtZT0nZ2Zvcm1fdXBsb2FkZWRfZmlsZXMnIGlkPSdnZm9ybV91cGxvYWRlZF9maWxlc18yOCcgdmFsdWU9JycgLz4KICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgICAgICAgICAgPC9mb3JtPgogICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4KICAgICAgICAgICAgICAgIDxpZnJhbWUgc3R5bGU9J2Rpc3BsYXk6bm9uZTt3aWR0aDowcHg7aGVpZ2h0OjBweDsnIHNyYz0nYWJvdXQ6YmxhbmsnIG5hbWU9J2dmb3JtX2FqYXhfZnJhbWVfMjgnIGlkPSdnZm9ybV9hamF4X2ZyYW1lXzI4Jz5UaGlzIGlmcmFtZSBjb250YWlucyB0aGUgbG9naWMgcmVxdWlyZWQgdG8gaGFuZGxlIEFqYXggcG93ZXJlZCBHcmF2aXR5IEZvcm1zLjwvaWZyYW1lPgogICAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSd0ZXh0L2phdmFzY3JpcHQnPmpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oJCl7Z2Zvcm1Jbml0U3Bpbm5lciggMjgsICdodHRwczovL3ByaW50dm9sdXRpb24uc2cvd3AtY29udGVudC9wbHVnaW5zL2dyYXZpdHlmb3Jtcy9pbWFnZXMvc3Bpbm5lci5naWYnICk7alF1ZXJ5KCcjZ2Zvcm1fYWpheF9mcmFtZV8yOCcpLm9uKCdsb2FkJyxmdW5jdGlvbigpe3ZhciBjb250ZW50cyA9IGpRdWVyeSh0aGlzKS5jb250ZW50cygpLmZpbmQoJyonKS5odG1sKCk7dmFyIGlzX3Bvc3RiYWNrID0gY29udGVudHMuaW5kZXhPZignR0ZfQUpBWF9QT1NUQkFDSycpID49IDA7aWYoIWlzX3Bvc3RiYWNrKXtyZXR1cm47fXZhciBmb3JtX2NvbnRlbnQgPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fd3JhcHBlcl8yOCcpO3ZhciBpc19jb25maXJtYXRpb24gPSBqUXVlcnkodGhpcykuY29udGVudHMoKS5maW5kKCcjZ2Zvcm1fY29uZmlybWF0aW9uX3dyYXBwZXJfMjgnKS5sZW5ndGggPiAwO3ZhciBpc19yZWRpcmVjdCA9IGNvbnRlbnRzLmluZGV4T2YoJ2dmb3JtUmVkaXJlY3QoKXsnKSA+PSAwO3ZhciBpc19mb3JtID0gZm9ybV9jb250ZW50Lmxlbmd0aCA+IDAgJiYgISBpc19yZWRpcmVjdCAmJiAhIGlzX2NvbmZpcm1hdGlvbjtpZihpc19mb3JtKXtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzI4JykuaHRtbChmb3JtX2NvbnRlbnQuaHRtbCgpKTtpZihmb3JtX2NvbnRlbnQuaGFzQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKSl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yOCcpLmFkZENsYXNzKCdnZm9ybV92YWxpZGF0aW9uX2Vycm9yJyk7fSBlbHNlIHtqUXVlcnkoJyNnZm9ybV93cmFwcGVyXzI4JykucmVtb3ZlQ2xhc3MoJ2dmb3JtX3ZhbGlkYXRpb25fZXJyb3InKTt9c2V0VGltZW91dCggZnVuY3Rpb24oKSB7IC8qIGRlbGF5IHRoZSBzY3JvbGwgYnkgNTAgbWlsbGlzZWNvbmRzIHRvIGZpeCBhIGJ1ZyBpbiBjaHJvbWUgKi8galF1ZXJ5KGRvY3VtZW50KS5zY3JvbGxUb3AoalF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yOCcpLm9mZnNldCgpLnRvcCk7IH0sIDUwICk7aWYod2luZG93WydnZm9ybUluaXREYXRlcGlja2VyJ10pIHtnZm9ybUluaXREYXRlcGlja2VyKCk7fWlmKHdpbmRvd1snZ2Zvcm1Jbml0UHJpY2VGaWVsZHMnXSkge2dmb3JtSW5pdFByaWNlRmllbGRzKCk7fXZhciBjdXJyZW50X3BhZ2UgPSBqUXVlcnkoJyNnZm9ybV9zb3VyY2VfcGFnZV9udW1iZXJfMjgnKS52YWwoKTtnZm9ybUluaXRTcGlubmVyKCAyOCwgJ2h0dHBzOi8vcHJpbnR2b2x1dGlvbi5zZy93cC1jb250ZW50L3BsdWdpbnMvZ3Jhdml0eWZvcm1zL2ltYWdlcy9zcGlubmVyLmdpZicgKTtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3BhZ2VfbG9hZGVkJywgWzI4LCBjdXJyZW50X3BhZ2VdKTt3aW5kb3dbJ2dmX3N1Ym1pdHRpbmdfMjgnXSA9IGZhbHNlO31lbHNlIGlmKCFpc19yZWRpcmVjdCl7dmFyIGNvbmZpcm1hdGlvbl9jb250ZW50ID0galF1ZXJ5KHRoaXMpLmNvbnRlbnRzKCkuZmluZCgnLkdGX0FKQVhfUE9TVEJBQ0snKS5odG1sKCk7aWYoIWNvbmZpcm1hdGlvbl9jb250ZW50KXtjb25maXJtYXRpb25fY29udGVudCA9IGNvbnRlbnRzO31zZXRUaW1lb3V0KGZ1bmN0aW9uKCl7alF1ZXJ5KCcjZ2Zvcm1fd3JhcHBlcl8yOCcpLnJlcGxhY2VXaXRoKGNvbmZpcm1hdGlvbl9jb250ZW50KTtqUXVlcnkoZG9jdW1lbnQpLnNjcm9sbFRvcChqUXVlcnkoJyNnZl8yOCcpLm9mZnNldCgpLnRvcCk7alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9jb25maXJtYXRpb25fbG9hZGVkJywgWzI4XSk7d2luZG93WydnZl9zdWJtaXR0aW5nXzI4J10gPSBmYWxzZTt9LCA1MCk7fWVsc2V7alF1ZXJ5KCcjZ2Zvcm1fMjgnKS5hcHBlbmQoY29udGVudHMpO2lmKHdpbmRvd1snZ2Zvcm1SZWRpcmVjdCddKSB7Z2Zvcm1SZWRpcmVjdCgpO319alF1ZXJ5KGRvY3VtZW50KS50cmlnZ2VyKCdnZm9ybV9wb3N0X3JlbmRlcicsIFsyOCwgY3VycmVudF9wYWdlXSk7fSApO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkuYmluZCgnZ2Zvcm1fcG9zdF9yZW5kZXInLCBmdW5jdGlvbihldmVudCwgZm9ybUlkLCBjdXJyZW50UGFnZSl7aWYoZm9ybUlkID09IDI4KSB7Z2Zvcm1Jbml0Q2hvc2VuRmllbGRzKCcjaW5wdXRfMjhfMTYsI2lucHV0XzI4XzE3JywnTm8gcmVzdWx0cyBtYXRjaGVkJyk7fSB9ICk7alF1ZXJ5KGRvY3VtZW50KS5iaW5kKCdnZm9ybV9wb3N0X2NvbmRpdGlvbmFsX2xvZ2ljJywgZnVuY3Rpb24oZXZlbnQsIGZvcm1JZCwgZmllbGRzLCBpc0luaXQpe2dmb3JtSW5pdENob3NlbkZpZWxkcygnI2lucHV0XzI4XzE2LCNpbnB1dF8yOF8xNycsJ05vIHJlc3VsdHMgbWF0Y2hlZCcpO30gKTs8L3NjcmlwdD48c2NyaXB0IHR5cGU9J3RleHQvamF2YXNjcmlwdCc+IGpRdWVyeShkb2N1bWVudCkucmVhZHkoZnVuY3Rpb24oKXtqUXVlcnkoZG9jdW1lbnQpLnRyaWdnZXIoJ2dmb3JtX3Bvc3RfcmVuZGVyJywgWzI4LCAxXSkgfSApOyA8L3NjcmlwdD4=