email-templates-library/src/main/java/org/gcube/portal/mailing/templates/TemplatedJoinMeInvite.java

74 lines
30 KiB
Java

package org.gcube.portal.mailing.templates;
import java.util.Base64;
import org.gcube.common.portal.mailing.templates.AbstractTemplate;
import org.gcube.common.portal.mailing.templates.Template;
import org.gcube.vomanagement.usermanagement.model.GCubeUser;
/**
*
* @author Massimiliano Assante, CNR-ISTI
*
*/
public class TemplatedJoinMeInvite extends AbstractTemplate implements Template {
private final String encodedTemplateHTML = "PCEtLSBJbmxpbmVyIEJ1aWxkIFZlcnNpb24gNDM4MGI3NzQxYmI3NTlkNmNiOTk3NTQ1ZjNhZGQyMWFkNDhmMDEwYiAtLT4NCjwhRE9DVFlQRSBodG1sIFBVQkxJQyAiLS8vVzNDLy9EVEQgWEhUTUwgMS4wIFN0cmljdC8vRU4iICJodHRwOi8vd3d3LnczLm9yZy9UUi94aHRtbDEvRFREL3hodG1sMS1zdHJpY3QuZHRkIj4NCjxodG1sIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hodG1sIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRtbCIgc3R5bGU9Im1pbi1oZWlnaHQ6IDEwMCU7IGJhY2tncm91bmQtY29sb3I6ICNmM2YzZjMgIWltcG9ydGFudDsiPg0KICA8aGVhZD4NCiAgICA8bWV0YSBodHRwLWVxdWl2PSJDb250ZW50LVR5cGUiIGNvbnRlbnQ9InRleHQvaHRtbDsgY2hhcnNldD11dGYtOCIgLz4NCiAgICA8bWV0YSBuYW1lPSJ2aWV3cG9ydCIgY29udGVudD0id2lkdGg9ZGV2aWNlLXdpZHRoIiAvPg0KICAgIDx0aXRsZT5UaXRsZTwvdGl0bGU+DQogIDwvaGVhZD4NCiAgPGJvZHkgc3R5bGU9IndpZHRoOiAxMDAlICFpbXBvcnRhbnQ7IG1pbi13aWR0aDogMTAwJTsgLXdlYmtpdC10ZXh0LXNpemUtYWRqdXN0OiAxMDAlOyAtbXMtdGV4dC1zaXplLWFkanVzdDogMTAwJTsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDEuMzsgZm9udC1zaXplOiAxNnB4OyBiYWNrZ3JvdW5kLWNvbG9yOiAjZjNmM2YzICFpbXBvcnRhbnQ7IG1hcmdpbjogMDsgcGFkZGluZzogMDsiIGJnY29sb3I9IiNmM2YzZjMgIWltcG9ydGFudCI+PHN0eWxlIHR5cGU9InRleHQvY3NzIj4NCkBtZWRpYSBvbmx5IHNjcmVlbiBhbmQgKG1heC13aWR0aDogNTk2cHgpIHsNCiAgLnNtYWxsLWZsb2F0LWNlbnRlciB7DQogICAgbWFyZ2luOiAwIGF1dG8gIWltcG9ydGFudDsgZmxvYXQ6IG5vbmUgIWltcG9ydGFudDsgdGV4dC1hbGlnbjogY2VudGVyICFpbXBvcnRhbnQ7DQogIH0NCiAgLnNtYWxsLXRleHQtY2VudGVyIHsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsNCiAgfQ0KICAuc21hbGwtdGV4dC1sZWZ0IHsNCiAgICB0ZXh0LWFsaWduOiBsZWZ0ICFpbXBvcnRhbnQ7DQogIH0NCiAgLnNtYWxsLXRleHQtcmlnaHQgew0KICAgIHRleHQtYWxpZ246IHJpZ2h0ICFpbXBvcnRhbnQ7DQogIH0NCiAgLmhpZGUtZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB3aWR0aDogYXV0byAhaW1wb3J0YW50OyBvdmVyZmxvdzogdmlzaWJsZSAhaW1wb3J0YW50OyBtYXgtaGVpZ2h0OiBub25lICFpbXBvcnRhbnQ7IGZvbnQtc2l6ZTogaW5oZXJpdCAhaW1wb3J0YW50OyBsaW5lLWhlaWdodDogaW5oZXJpdCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGFibGUuY29udGFpbmVyIC5oaWRlLWZvci1sYXJnZSB7DQogICAgZGlzcGxheTogdGFibGUgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IHRhYmxlLmNvbnRhaW5lciAucm93LmhpZGUtZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiB0YWJsZSAhaW1wb3J0YW50OyB3aWR0aDogMTAwJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGFibGUuY29udGFpbmVyIC5jYWxsb3V0LWlubmVyLmhpZGUtZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiB0YWJsZS1jZWxsICFpbXBvcnRhbnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSB0YWJsZS5jb250YWluZXIgLnNob3ctZm9yLWxhcmdlIHsNCiAgICBkaXNwbGF5OiBub25lICFpbXBvcnRhbnQ7IHdpZHRoOiAwOyBtc28taGlkZTogYWxsOyBvdmVyZmxvdzogaGlkZGVuOw0KICB9DQogIHRhYmxlLmJvZHkgaW1nIHsNCiAgICB3aWR0aDogYXV0bzsgaGVpZ2h0OiBhdXRvOw0KICB9DQogIHRhYmxlLmJvZHkgY2VudGVyIHsNCiAgICBtaW4td2lkdGg6IDAgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IC5jb250YWluZXIgew0KICAgIHdpZHRoOiA5NSUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IC5jb2x1bW5zIHsNCiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1uIHsNCiAgICBoZWlnaHQ6IGF1dG8gIWltcG9ydGFudDsgLW1vei1ib3gtc2l6aW5nOiBib3JkZXItYm94OyAtd2Via2l0LWJveC1zaXppbmc6IGJvcmRlci1ib3g7IGJveC1zaXppbmc6IGJvcmRlci1ib3g7IHBhZGRpbmctbGVmdDogMTZweCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAxNnB4ICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1ucyAuY29sdW1uIHsNCiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgLmNvbHVtbnMgLmNvbHVtbnMgew0KICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1uIC5jb2x1bW4gew0KICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAuY29sdW1uIC5jb2x1bW5zIHsNCiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgLmNvbGxhcHNlIC5jb2x1bW5zIHsNCiAgICBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgLmNvbGxhcHNlIC5jb2x1bW4gew0KICAgIHBhZGRpbmctbGVmdDogMCAhaW1wb3J0YW50OyBwYWRkaW5nLXJpZ2h0OiAwICFpbXBvcnRhbnQ7DQogIH0NCiAgdGQuc21hbGwtMSB7DQogICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiA4LjMzMzMzJSAhaW1wb3J0YW50Ow0KICB9DQogIHRoLnNtYWxsLTEgew0KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB3aWR0aDogOC4zMzMzMyUgIWltcG9ydGFudDsNCiAgfQ0KICB0ZC5zbWFsbC0yIHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDE2LjY2NjY3JSAhaW1wb3J0YW50Ow0KICB9DQogIHRoLnNtYWxsLTIgew0KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB3aWR0aDogMTYuNjY2NjclICFpbXBvcnRhbnQ7DQogIH0NCiAgdGQuc21hbGwtMyB7DQogICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiAyNSUgIWltcG9ydGFudDsNCiAgfQ0KICB0aC5zbWFsbC0zIHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDI1JSAhaW1wb3J0YW50Ow0KICB9DQogIHRkLnNtYWxsLTQgew0KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB3aWR0aDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7DQogIH0NCiAgdGguc21hbGwtNCB7DQogICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiAzMy4zMzMzMyUgIWltcG9ydGFudDsNCiAgfQ0KICB0ZC5zbWFsbC01IHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDQxLjY2NjY3JSAhaW1wb3J0YW50Ow0KICB9DQogIHRoLnNtYWxsLTUgew0KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB3aWR0aDogNDEuNjY2NjclICFpbXBvcnRhbnQ7DQogIH0NCiAgdGQuc21hbGwtNiB7DQogICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiA1MCUgIWltcG9ydGFudDsNCiAgfQ0KICB0aC5zbWFsbC02IHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDUwJSAhaW1wb3J0YW50Ow0KICB9DQogIHRkLnNtYWxsLTcgew0KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB3aWR0aDogNTguMzMzMzMlICFpbXBvcnRhbnQ7DQogIH0NCiAgdGguc21hbGwtNyB7DQogICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiA1OC4zMzMzMyUgIWltcG9ydGFudDsNCiAgfQ0KICB0ZC5zbWFsbC04IHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDY2LjY2NjY3JSAhaW1wb3J0YW50Ow0KICB9DQogIHRoLnNtYWxsLTggew0KICAgIGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50OyB3aWR0aDogNjYuNjY2NjclICFpbXBvcnRhbnQ7DQogIH0NCiAgdGQuc21hbGwtOSB7DQogICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiA3NSUgIWltcG9ydGFudDsNCiAgfQ0KICB0aC5zbWFsbC05IHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDc1JSAhaW1wb3J0YW50Ow0KICB9DQogIHRkLnNtYWxsLTEwIHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50Ow0KICB9DQogIHRoLnNtYWxsLTEwIHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDgzLjMzMzMzJSAhaW1wb3J0YW50Ow0KICB9DQogIHRkLnNtYWxsLTExIHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50Ow0KICB9DQogIHRoLnNtYWxsLTExIHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDkxLjY2NjY3JSAhaW1wb3J0YW50Ow0KICB9DQogIHRkLnNtYWxsLTEyIHsNCiAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsNCiAgfQ0KICB0aC5zbWFsbC0xMiB7DQogICAgZGlzcGxheTogaW5saW5lLWJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7DQogIH0NCiAgLmNvbHVtbnMgdGQuc21hbGwtMTIgew0KICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7IHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7DQogIH0NCiAgLmNvbHVtbiB0ZC5zbWFsbC0xMiB7DQogICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsNCiAgfQ0KICAuY29sdW1ucyB0aC5zbWFsbC0xMiB7DQogICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsNCiAgfQ0KICAuY29sdW1uIHRoLnNtYWxsLTEyIHsNCiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50OyB3aWR0aDogMTAwJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGQuc21hbGwtb2Zmc2V0LTEgew0KICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGguc21hbGwtb2Zmc2V0LTEgew0KICAgIG1hcmdpbi1sZWZ0OiA4LjMzMzMzJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGQuc21hbGwtb2Zmc2V0LTIgew0KICAgIG1hcmdpbi1sZWZ0OiAxNi42NjY2NyUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IHRoLnNtYWxsLW9mZnNldC0yIHsNCiAgICBtYXJnaW4tbGVmdDogMTYuNjY2NjclICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSB0ZC5zbWFsbC1vZmZzZXQtMyB7DQogICAgbWFyZ2luLWxlZnQ6IDI1JSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGguc21hbGwtb2Zmc2V0LTMgew0KICAgIG1hcmdpbi1sZWZ0OiAyNSUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IHRkLnNtYWxsLW9mZnNldC00IHsNCiAgICBtYXJnaW4tbGVmdDogMzMuMzMzMzMlICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSB0aC5zbWFsbC1vZmZzZXQtNCB7DQogICAgbWFyZ2luLWxlZnQ6IDMzLjMzMzMzJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGQuc21hbGwtb2Zmc2V0LTUgew0KICAgIG1hcmdpbi1sZWZ0OiA0MS42NjY2NyUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IHRoLnNtYWxsLW9mZnNldC01IHsNCiAgICBtYXJnaW4tbGVmdDogNDEuNjY2NjclICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSB0ZC5zbWFsbC1vZmZzZXQtNiB7DQogICAgbWFyZ2luLWxlZnQ6IDUwJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGguc21hbGwtb2Zmc2V0LTYgew0KICAgIG1hcmdpbi1sZWZ0OiA1MCUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IHRkLnNtYWxsLW9mZnNldC03IHsNCiAgICBtYXJnaW4tbGVmdDogNTguMzMzMzMlICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSB0aC5zbWFsbC1vZmZzZXQtNyB7DQogICAgbWFyZ2luLWxlZnQ6IDU4LjMzMzMzJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGQuc21hbGwtb2Zmc2V0LTggew0KICAgIG1hcmdpbi1sZWZ0OiA2Ni42NjY2NyUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IHRoLnNtYWxsLW9mZnNldC04IHsNCiAgICBtYXJnaW4tbGVmdDogNjYuNjY2NjclICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSB0ZC5zbWFsbC1vZmZzZXQtOSB7DQogICAgbWFyZ2luLWxlZnQ6IDc1JSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGguc21hbGwtb2Zmc2V0LTkgew0KICAgIG1hcmdpbi1sZWZ0OiA3NSUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IHRkLnNtYWxsLW9mZnNldC0xMCB7DQogICAgbWFyZ2luLWxlZnQ6IDgzLjMzMzMzJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGguc21hbGwtb2Zmc2V0LTEwIHsNCiAgICBtYXJnaW4tbGVmdDogODMuMzMzMzMlICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSB0ZC5zbWFsbC1vZmZzZXQtMTEgew0KICAgIG1hcmdpbi1sZWZ0OiA5MS42NjY2NyUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IHRoLnNtYWxsLW9mZnNldC0xMSB7DQogICAgbWFyZ2luLWxlZnQ6IDkxLjY2NjY3JSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGFibGUuY29sdW1ucyB0ZC5leHBhbmRlciB7DQogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgdGFibGUuY29sdW1ucyB0aC5leHBhbmRlciB7DQogICAgZGlzcGxheTogbm9uZSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgLnJpZ2h0LXRleHQtcGFkIHsNCiAgICBwYWRkaW5nLWxlZnQ6IDEwcHggIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5ib2R5IC50ZXh0LXBhZC1yaWdodCB7DQogICAgcGFkZGluZy1sZWZ0OiAxMHB4ICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYm9keSAubGVmdC10ZXh0LXBhZCB7DQogICAgcGFkZGluZy1yaWdodDogMTBweCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJvZHkgLnRleHQtcGFkLWxlZnQgew0KICAgIHBhZGRpbmctcmlnaHQ6IDEwcHggIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5tZW51IHsNCiAgICB3aWR0aDogMTAwJSAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLm1lbnUgdGQgew0KICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLm1lbnUgdGggew0KICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7IGRpc3BsYXk6IGlubGluZS1ibG9jayAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLm1lbnUudmVydGljYWwgdGQgew0KICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUubWVudS52ZXJ0aWNhbCB0aCB7DQogICAgZGlzcGxheTogYmxvY2sgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5tZW51LnNtYWxsLXZlcnRpY2FsIHRkIHsNCiAgICBkaXNwbGF5OiBibG9jayAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLm1lbnUuc21hbGwtdmVydGljYWwgdGggew0KICAgIGRpc3BsYXk6IGJsb2NrICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUubWVudVthbGlnbj0iY2VudGVyIl0gew0KICAgIHdpZHRoOiBhdXRvICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYnV0dG9uLnNtYWxsLWV4cGFuZCB7DQogICAgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5idXR0b24uc21hbGwtZXhwYW5kZWQgew0KICAgIHdpZHRoOiAxMDAlICFpbXBvcnRhbnQ7DQogIH0NCiAgdGFibGUuYnV0dG9uLnNtYWxsLWV4cGFuZCB0YWJsZSB7DQogICAgd2lkdGg6IDEwMCU7DQogIH0NCiAgdGFibGUuYnV0dG9uLnNtYWxsLWV4cGFuZGVkIHRhYmxlIHsNCiAgICB3aWR0aDogMTAwJTsNCiAgfQ0KICB0YWJsZS5idXR0b24uc21hbGwtZXhwYW5kIHRhYmxlIGEgew0KICAgIHRleHQtYWxpZ246IGNlbnRlciAhaW1wb3J0YW50OyB3aWR0aDogMTAwJSAhaW1wb3J0YW50OyBwYWRkaW5nLWxlZnQ6IDAgIWltcG9ydGFudDsgcGFkZGluZy1yaWdodDogMCAhaW1wb3J0YW50Ow0KICB9DQogIHRhYmxlLmJ1dHRvbi5zbWFsbC1leHBhbmRlZCB0YWJsZSBhIHsNCiAgICB0ZXh0LWFsaWduOiBjZW50ZXIgIWltcG9ydGFudDsgd2lkdGg6IDEwMCUgIWltcG9ydGFudDsgcGFkZGluZy1sZWZ0OiAwICFpbXBvcnRhbnQ7IHBhZGRpbmctcmlnaHQ6IDAgIWltcG9ydGFudDsNCiAgfQ0KICB0YWJsZS5idXR0b24uc21hbGwtZXhwYW5kIGNlbnRlciB7DQogICAgbWluLXdpZHRoOiAwOw0KICB9DQogIHRhYmxlLmJ1dHRvbi5zbWFsbC1leHBhbmRlZCBjZW50ZXIgew0KICAgIG1pbi13aWR0aDogMDsNCiAgfQ0KfQ0KPC9zdHlsZT4NCiAgDQogICAgPHRhYmxlIGNsYXNzPSJib2R5IiBkYXRhLW1hZGUtd2l0aC1mb3VuZGF0aW9uPSIiIHN0eWxlPSJib3JkZXItc3BhY2luZzogMDsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgdmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgYmFja2dyb3VuZC1jb2xvcjogI2YzZjNmMyAhaW1wb3J0YW50OyBoZWlnaHQ6IDEwMCU7IHdpZHRoOiAxMDAlOyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxpbmUtaGVpZ2h0OiAxLjM7IGZvbnQtc2l6ZTogMTZweDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyIgYmdjb2xvcj0iI2YzZjNmMyAhaW1wb3J0YW50Ij48dHIgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IDA7IiBhbGlnbj0ibGVmdCI+PHRkIGNsYXNzPSJmbG9hdC1jZW50ZXIiIGFsaWduPSJjZW50ZXIiIHZhbGlnbj0idG9wIiBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LWh5cGhlbnM6IGF1dG87IC1tb3otaHlwaGVuczogYXV0bzsgaHlwaGVuczogYXV0bzsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZsb2F0OiBub25lOyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxpbmUtaGVpZ2h0OiAxLjM7IGZvbnQtc2l6ZTogMTZweDsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDA7Ij4NCiAgICAgICAgICA8Y2VudGVyIGRhdGEtcGFyc2VkPSIiIHN0eWxlPSJ3aWR0aDogMTAwJTsgbWluLXdpZHRoOiA1ODBweDsiPg0KICAgICAgICAgICAgPHRhYmxlIGFsaWduPSJjZW50ZXIiIGNsYXNzPSJ3cmFwcGVyIGhlYWRlciBmbG9hdC1jZW50ZXIiIHN0eWxlPSJ3aWR0aDogMTAwJTsgYm9yZGVyLXNwYWNpbmc6IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsgZmxvYXQ6IG5vbmU7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAwOyI+PHRyIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiAwOyIgYWxpZ249ImxlZnQiPjx0ZCBjbGFzcz0id3JhcHBlci1pbm5lciIgc3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1oeXBoZW5zOiBhdXRvOyAtbW96LWh5cGhlbnM6IGF1dG87IGh5cGhlbnM6IGF1dG87IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDsgdmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDogbm9ybWFsOyBsaW5lLWhlaWdodDogMS4zOyBmb250LXNpemU6IDE2cHg7IG1hcmdpbjogMDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+DQogICAgICAgICAgICAgICAgICA8dGFibGUgYWxpZ249ImNlbnRlciIgY2xhc3M9ImNvbnRhaW5lciIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOiAwOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBpbmhlcml0OyB3aWR0aDogNTgwcHg7IGJhY2tncm91bmQ6ICNmZWZlZmU7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAwOyIgYmdjb2xvcj0iI2ZlZmVmZSI+PHRib2R5Pjx0ciBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0Ij48dGQgc3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1oeXBoZW5zOiBhdXRvOyAtbW96LWh5cGhlbnM6IGF1dG87IGh5cGhlbnM6IGF1dG87IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDsgdmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDogbm9ybWFsOyBsaW5lLWhlaWdodDogMS4zOyBmb250LXNpemU6IDE2cHg7IG1hcmdpbjogMDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBjbGFzcz0icm93IGNvbGxhcHNlIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IHRhYmxlOyBwYWRkaW5nOiAwOyI+PHRib2R5Pjx0ciBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0Ij48dGggY2xhc3M9InNtYWxsLTYgbGFyZ2UtNiBjb2x1bW5zIGZpcnN0IiBzdHlsZT0id2lkdGg6IDI5OHB4OyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxLjM7IGZvbnQtc2l6ZTogMTZweDsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDAgMCAxNnB4OyIgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBwYWRkaW5nOiAwOyI+PHRyIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiAwOyIgYWxpZ249ImxlZnQiPjx0aCBzdHlsZT0iY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDogbm9ybWFsOyB0ZXh0LWFsaWduOiBsZWZ0OyBsaW5lLWhlaWdodDogMS4zOyBmb250LXNpemU6IDE2cHg7IG1hcmdpbjogMDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0Ij4gPGltZyBzcmM9Int7R0FURVdBWV9MT0dPOlVSTH19IiBzdHlsZT0id2lkdGg6IDIwMHB4OyBvdXRsaW5lOiBub25lOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IC1tcy1pbnRlcnBvbGF0aW9uLW1vZGU6IGJpY3ViaWM7IG1heC13aWR0aDogMTAwJTsgY2xlYXI6IGJvdGg7IGRpc3BsYXk6IGJsb2NrOyIgYWx0PSJ7e0dBVEVXQVlfTkFNRX19IiB0aXRsZT0ie3tHQVRFV0FZX05BTUV9fSIgLz48L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj48L3RhYmxlPjwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0ic21hbGwtNiBsYXJnZS02IGNvbHVtbnMgbGFzdCIgc3R5bGU9IndpZHRoOiAyOThweDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDogbm9ybWFsOyB0ZXh0LWFsaWduOiBsZWZ0OyBsaW5lLWhlaWdodDogMS4zOyBmb250LXNpemU6IDE2cHg7IG1hcmdpbjogMCBhdXRvOyBwYWRkaW5nOiAwIDAgMTZweDsiIGFsaWduPSJsZWZ0Ij4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGFibGUgc3R5bGU9ImJvcmRlci1zcGFjaW5nOiAwOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyB3aWR0aDogMTAwJTsgcGFkZGluZzogMDsiPjx0ciBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0Ij48dGggc3R5bGU9ImNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDEuMzsgZm9udC1zaXplOiAxNnB4OyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IiBhbGlnbj0ibGVmdCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9InRleHQtcmlnaHQiIHN0eWxlPSJ0ZXh0LWFsaWduOiByaWdodDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDogbm9ybWFsOyBsaW5lLWhlaWdodDogMS4zOyBmb250LXNpemU6IDE2cHg7IG1hcmdpbjogMCAwIDEwcHg7IHBhZGRpbmc6IDA7IiBhbGlnbj0icmlnaHQiPjwvcD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90aD4NCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+PC90YWJsZT48L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC90cj48L3Rib2R5PjwvdGFibGU+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICA8L3RyPjwvdGJvZHk+PC90YWJsZT48L3RkPg0KICAgICAgICAgICAgICA8L3RyPjwvdGFibGU+PHRhYmxlIGFsaWduPSJjZW50ZXIiIGNsYXNzPSJjb250YWluZXIgYm9keS1ib3JkZXIgZmxvYXQtY2VudGVyIiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGNlbnRlcjsgd2lkdGg6IDU4MHB4OyBmbG9hdDogbm9uZTsgYm9yZGVyLXRvcC13aWR0aDogOHB4OyBib3JkZXItdG9wLWNvbG9yOiAjMjI1Zjk3OyBib3JkZXItdG9wLXN0eWxlOiBzb2xpZDsgYmFja2dyb3VuZDogI2ZlZmVmZTsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDA7IiBiZ2NvbG9yPSIjZmVmZWZlIj48dGJvZHk+PHRyIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiAwOyIgYWxpZ249ImxlZnQiPjx0ZCBzdHlsZT0id29yZC13cmFwOiBicmVhay13b3JkOyAtd2Via2l0LWh5cGhlbnM6IGF1dG87IC1tb3otaHlwaGVuczogYXV0bzsgaHlwaGVuczogYXV0bzsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZSAhaW1wb3J0YW50OyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxpbmUtaGVpZ2h0OiAxLjM7IGZvbnQtc2l6ZTogMTZweDsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyIgYWxpZ249ImxlZnQiIHZhbGlnbj0idG9wIj4NCiAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGNsYXNzPSJyb3ciIHN0eWxlPSJib3JkZXItc3BhY2luZzogMDsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgdmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgd2lkdGg6IDEwMCU7IHBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogdGFibGU7IHBhZGRpbmc6IDA7Ij48dGJvZHk+PHRyIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiAwOyIgYWxpZ249ImxlZnQiPjx0aCBjbGFzcz0ic21hbGwtMTIgbGFyZ2UtMTIgY29sdW1ucyBmaXJzdCBsYXN0IiBzdHlsZT0id2lkdGg6IDU2NHB4OyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxLjM7IGZvbnQtc2l6ZTogMTZweDsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDAgMTZweCAxNnB4OyIgYWxpZ249ImxlZnQiPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0YWJsZSBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGxlZnQ7IHdpZHRoOiAxMDAlOyBwYWRkaW5nOiAwOyI+PHRyIHN0eWxlPSJ2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBsZWZ0OyBwYWRkaW5nOiAwOyIgYWxpZ249ImxlZnQiPjxoMSBzdHlsZT0iY29sb3I6IGluaGVyaXQ7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDogbm9ybWFsOyB0ZXh0LWFsaWduOiBsZWZ0OyBsaW5lLWhlaWdodDogMS4zOyB3b3JkLXdyYXA6IG5vcm1hbDsgZm9udC1zaXplOiAzNHB4OyBtYXJnaW46IDAgMCAxMHB4OyBwYWRkaW5nOiAwOyIgYWxpZ249ImxlZnQiPkhpIHt7SU5WSVRFRF9VU0VSX05BTUV9fSw8L2gxPg0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzPSJsZWFkIiBzdHlsZT0iY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDogbm9ybWFsOyB0ZXh0LWFsaWduOiBsZWZ0OyBsaW5lLWhlaWdodDogMS42OyBmb250LXNpemU6IDIwcHg7IG1hcmdpbjogMCAwIDEwcHg7IHBhZGRpbmc6IDA7IiBhbGlnbj0ibGVmdCI+IHt7SU5WSVRJTkdfVVNFUl9GVUxMTkFNRX19IGhhcyBpbnZpdGVkIHlvdSB0byB7e1NFTEVDVEVEX1ZSRV9OQU1FfX0sIHlvdSBjYW4gZmluZCBhIGJyaWVmIGRlc2NyaXB0aW9uIGJlbG93OjwvcD4gDQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9ImNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDEuMzsgZm9udC1zaXplOiAxNnB4OyBtYXJnaW46IDAgMCAxMHB4OyBwYWRkaW5nOiAwOyIgYWxpZ249ImxlZnQiPnt7U0VMRUNURURfVlJFX0RFU0NSSVBUSU9OfX08L3A+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9ImxlYWQiIHN0eWxlPSJjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxLjY7IGZvbnQtc2l6ZTogMjBweDsgbWFyZ2luOiAwIDAgMTBweDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0Ij5JZiB5b3Ugd2lzaCB0byBhY2NlcHQgdGhlIGludml0ZSA8YSBocmVmPSJ7e0FDQ0VQVF9JTlZJVEVfVVJMfX0iIHN0eWxlPSJjb2xvcjogIzIxOTllODsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxLjM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyI+Q2xpY2sgSGVyZTwvYT48L3A+DQogICAgICAgICANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+PC90YWJsZT48L3RoPg0KICAgICAgICAgICAgICAgICAgICAgICAgPC90cj48L3Rib2R5PjwvdGFibGU+PHRhYmxlIGNsYXNzPSJjYWxsb3V0IiBzdHlsZT0iYm9yZGVyLXNwYWNpbmc6IDA7IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2U7IHZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGxlZnQ7IG1hcmdpbi1ib3R0b206IDE2cHg7IHBhZGRpbmc6IDA7Ij48dHIgc3R5bGU9InZlcnRpY2FsLWFsaWduOiB0b3A7IHRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IDA7IiBhbGlnbj0ibGVmdCI+PHRoIGNsYXNzPSJjYWxsb3V0LWlubmVyIHdhcm5pbmciIHN0eWxlPSJjb2xvcjogI2ZlZmVmZTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxLjM7IGZvbnQtc2l6ZTogMTZweDsgd2lkdGg6IDEwMCU7IGJhY2tncm91bmQ6ICNmZmYzZDk7IG1hcmdpbjogMDsgcGFkZGluZzogMTBweDsgYm9yZGVyOiAxcHggc29saWQgIzk5NjgwMDsiIGFsaWduPSJsZWZ0IiBiZ2NvbG9yPSIjZmZmM2Q5Ij4NCgkJCQkJCSAgICAgIDxwIHN0eWxlPSJjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxLjM7IGZvbnQtc2l6ZTogMTZweDsgbWFyZ2luOiAwIDAgMTBweDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0Ij5QbGVhc2Ugbm90ZTogaWYgeW91IGRvIG5vdCBoYXZlIGFuIGFjY291bnQgeWV0LCB5b3Ugc2hvdWxkIDxhIGhyZWY9Int7Q1JFQVRFX0FDQ09VTlRfVVJMfX0iIHN0eWxlPSJjb2xvcjogIzIxOTllODsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxLjM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyI+Q3JlYXRlIGFuIGFjY291bnQ8L2E+IGZpcnN0IG9uIHRoZSA8YSBocmVmPSJ7e0dBVEVXQVlfVVJMfX0iIHN0eWxlPSJjb2xvcjogIzIxOTllODsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxLjM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyI+e3tHQVRFV0FZX05BTUV9fTwvYT4uPC9wPg0KCQkJCQkJICAgIDwvdGg+DQoJCQkJCQkgICAgPHRoIGNsYXNzPSJleHBhbmRlciIgc3R5bGU9InZpc2liaWxpdHk6IGhpZGRlbjsgd2lkdGg6IDA7IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDEuMzsgZm9udC1zaXplOiAxNnB4OyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7IiBhbGlnbj0ibGVmdCI+PC90aD4NCgkJCQkJCSAgPC90cj48L3RhYmxlPjxjZW50ZXIgZGF0YS1wYXJzZWQ9IiIgc3R5bGU9IndpZHRoOiAxMDAlOyBtaW4td2lkdGg6IDU4MHB4OyI+DQogICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIGFsaWduPSJjZW50ZXIiIGNsYXNzPSJtZW51IGZsb2F0LWNlbnRlciIgc3R5bGU9ImJvcmRlci1zcGFjaW5nOiAwOyBib3JkZXItY29sbGFwc2U6IGNvbGxhcHNlOyB2ZXJ0aWNhbC1hbGlnbjogdG9wOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGZsb2F0OiBub25lOyB3aWR0aDogYXV0byAhaW1wb3J0YW50OyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMDsiPjx0ciBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0Ij48dGQgc3R5bGU9IndvcmQtd3JhcDogYnJlYWstd29yZDsgLXdlYmtpdC1oeXBoZW5zOiBhdXRvOyAtbW96LWh5cGhlbnM6IGF1dG87IGh5cGhlbnM6IGF1dG87IGJvcmRlci1jb2xsYXBzZTogY29sbGFwc2UgIWltcG9ydGFudDsgdmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgY29sb3I6ICMwYTBhMGE7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDogbm9ybWFsOyBsaW5lLWhlaWdodDogMS4zOyBmb250LXNpemU6IDE2cHg7IG1hcmdpbjogMDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0IiB2YWxpZ249InRvcCI+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgPHRhYmxlIHN0eWxlPSJib3JkZXItc3BhY2luZzogMDsgYm9yZGVyLWNvbGxhcHNlOiBjb2xsYXBzZTsgdmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzogMDsiPjx0ciBzdHlsZT0idmVydGljYWwtYWxpZ246IHRvcDsgdGV4dC1hbGlnbjogbGVmdDsgcGFkZGluZzogMDsiIGFsaWduPSJsZWZ0Ij48dGggY2xhc3M9Im1lbnUtaXRlbSBmbG9hdC1jZW50ZXIiIHN0eWxlPSJmbG9hdDogbm9uZTsgdGV4dC1hbGlnbjogY2VudGVyOyBjb2xvcjogIzBhMGEwYTsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IGxpbmUtaGVpZ2h0OiAxLjM7IGZvbnQtc2l6ZTogMTZweDsgbWFyZ2luOiAwIGF1dG87IHBhZGRpbmc6IDEwcHg7IiBhbGlnbj0iY2VudGVyIj48YSBocmVmPSJ7e0dBVEVXQVlfVVJMfX0vdGVybXMtb2YtdXNlIiBzdHlsZT0iY29sb3I6ICMyMTk5ZTg7IGZvbnQtZmFtaWx5OiBIZWx2ZXRpY2EsIEFyaWFsLCBzYW5zLXNlcmlmOyBmb250LXdlaWdodDogbm9ybWFsOyB0ZXh0LWFsaWduOiBsZWZ0OyBsaW5lLWhlaWdodDogMS4zOyB0ZXh0LWRlY29yYXRpb246IG5vbmU7IG1hcmdpbjogMDsgcGFkZGluZzogMDsiPnt7R0FURVdBWV9OQU1FfX0gVGVybXMgb2YgVXNlPC9hPjwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0ibWVudS1pdGVtIGZsb2F0LWNlbnRlciIgc3R5bGU9ImZsb2F0OiBub25lOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGluZS1oZWlnaHQ6IDEuMzsgZm9udC1zaXplOiAxNnB4OyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMTBweDsiIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3Lml1YmVuZGEuY29tL3ByaXZhY3ktcG9saWN5LzQ0MTA1MCIgc3R5bGU9ImNvbG9yOiAjMjE5OWU4OyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgdGV4dC1hbGlnbjogbGVmdDsgbGluZS1oZWlnaHQ6IDEuMzsgdGV4dC1kZWNvcmF0aW9uOiBub25lOyBtYXJnaW46IDA7IHBhZGRpbmc6IDA7Ij5Qcml2YWN5PC9hPjwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDx0aCBjbGFzcz0ibWVudS1pdGVtIGZsb2F0LWNlbnRlciIgc3R5bGU9ImZsb2F0OiBub25lOyB0ZXh0LWFsaWduOiBjZW50ZXI7IGNvbG9yOiAjMGEwYTBhOyBmb250LWZhbWlseTogSGVsdmV0aWNhLCBBcmlhbCwgc2Fucy1zZXJpZjsgZm9udC13ZWlnaHQ6IG5vcm1hbDsgbGluZS1oZWlnaHQ6IDEuMzsgZm9udC1zaXplOiAxNnB4OyBtYXJnaW46IDAgYXV0bzsgcGFkZGluZzogMTBweDsiIGFsaWduPSJjZW50ZXIiPjxhIGhyZWY9Imh0dHBzOi8vd3d3LmQ0c2NpZW5jZS5vcmciIHN0eWxlPSJjb2xvcjogIzIxOTllODsgZm9udC1mYW1pbHk6IEhlbHZldGljYSwgQXJpYWwsIHNhbnMtc2VyaWY7IGZvbnQtd2VpZ2h0OiBub3JtYWw7IHRleHQtYWxpZ246IGxlZnQ7IGxpbmUtaGVpZ2h0OiAxLjM7IHRleHQtZGVjb3JhdGlvbjogbm9uZTsgbWFyZ2luOiAwOyBwYWRkaW5nOiAwOyI+QWJvdXQgRDRTY2llbmNlPC9hPjwvdGg+DQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3RyPjwvdGFibGU+PC90ZD4NCiAgICAgICAgICAgICAgICAgICAgICAgIDwvdHI+PC90YWJsZT48L2NlbnRlcj4NCiAgICAgICAgICAgICAgICAgIDwvdGQ+DQogICAgICAgICAgICAgICAgPC90cj48L3Rib2R5PjwvdGFibGU+PC9jZW50ZXI+DQogICAgICAgIDwvdGQ+DQogICAgICA8L3RyPjwvdGFibGU+PC9ib2R5Pg0KPC9odG1sPg0K";
private final String encodedTemplateTEXT = "e3tHQVRFV0FZX05BTUV9fQ0KLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KSGkge3tJTlZJVEVEX1VTRVJfTkFNRX19LA0Ke3tJTlZJVElOR19VU0VSX0ZVTExOQU1FfX0gaGFzIGludml0ZWQgeW91IHRvIHt7U0VMRUNURURfVlJFX05BTUV9fSwgeW91IGNhbiBmaW5kIGEgYnJpZWYgZGVzY3JpcHRpb24gYmVsb3c6DQoNCnt7U0VMRUNURURfVlJFX0RFU0NSSVBUSU9OfX0NCg0KVG8gYWNjZXB0IHRoZSBpbnZpdGUganVzdCBmb2xsb3cgdGhpcyBsaW5rOiB7e0FDQ0VQVF9JTlZJVEVfVVJMfX0NCg0KUGxlYXNlIG5vdGU6IGlmIHlvdSBkbyBub3QgaGF2ZSBhbiBhY2NvdW50IHlldCwgc2lnbiB1cCBmaXJzdDoge3tDUkVBVEVfQUNDT1VOVF9VUkx9fQ==";
private GCubeUser theInvitingUser;
private String theUserInvitedName;
private String theVREName;
private String theVREDescription;
private String acceptInviteURL;
private String signUpURL;
/**
*
* @param gatewayName
* @param gatewayURL
* @param theInvitingUser
* @param theUserInvitedName
* @param theVRE
* @param acceptInviteURL
* @param signUpURL
*/
public TemplatedJoinMeInvite(String gatewayName, String gatewayURL, GCubeUser theInvitingUser,
String theUserInvitedName, String theVREName, String theVREDescription, String acceptInviteURL, String signUpURL) {
super(gatewayName, gatewayURL);
this.theInvitingUser = theInvitingUser;
this.theUserInvitedName = theUserInvitedName;
this.theVREName = theVREName;
this.theVREDescription = theVREDescription;
this.acceptInviteURL = acceptInviteURL;
this.signUpURL = signUpURL;
}
@Override
public String compile(String templateContent) {
String userAvatarURL = getGatewayURL()+this.theInvitingUser.getUserAvatarURL();
return new String(Base64.getDecoder().decode(templateContent))
.replace("{{SELECTED_VRE_NAME}}", theVREName)
.replace("{{INVITING_USER_AVATAR_URL}}", userAvatarURL)
.replace("{{INVITING_USER_FULLNAME}}", theInvitingUser.getFullname())
.replace("{{INVITED_USER_NAME}}", this.theUserInvitedName)
.replace("{{SELECTED_VRE_DESCRIPTION}}", theVREDescription)
.replace("{{GATEWAY_LOGO:URL}}", getGatewayLogoURL())
.replace("{{GATEWAY_URL}}", getGatewayURL())
.replace("{{GATEWAY_NAME}}", getGatewayName())
.replace("{{ACCEPT_INVITE_URL}}", acceptInviteURL)
.replace("{{CREATE_ACCOUNT_URL}}", signUpURL);
}
@Override
public String getTextHTML() {
return compile(encodedTemplateHTML);
}
@Override
public String getTextPLAIN() {
return compile(encodedTemplateTEXT);
}
}