window.SFMP=window.SFMP||{},SFMP.Utility=function(n){function cleanHref(n){var t=/^http:|https:|mailto:/gi;return t.test(n)?encodeURI(n):null}function escapeAngleBrackets(n){return n=n.replace(//g,">")}function matchToTagInfo(n){var t=n||["","","",""],i=t[2].toLowerCase();return{wholeTag:t[0],leftEnd:t[1],tagName:i,rightEnd:t[3],isClosingTag:t[1]===""}function sanitizeHtmlString(n,t){function getNonTagText(t,i){var r=n.substring(t,i);return escapeAngleBrackets(r)}for(var n=n||"",h=t||i,l=h.allowedTags||[],a=h.tagAttributes||{},v="(<\\/?)("+l.join("|")+")(?=\\W)(?:(?!>|\\/>).)*(\\/?>)",c=new RegExp(v,"gi"),f=[],e,r,o,y,p,w,s,u=0;(e=c.exec(n))!==null;)e.index>u&&f.push(getNonTagText(u,e.index)),r=matchToTagInfo(e),o=a[r.tagName],s=o&&!r.isClosingTag?sanitizeOpeningTag(r,o):r.bareTag,f.push(s),u=c.lastIndex;return n.length>u&&f.push(getNonTagText(u,n.length)),f.join("")}function assign(n){var f,r,u,i;if(n==null)throw new TypeError("Cannot convert undefined or null to object.");for(f=Object(n),r=1;r