Author: echatellier Date: 2013-02-25 16:02:42 +0100 (Mon, 25 Feb 2013) New Revision: 156 Url: http://forge.codelutin.com/projects/cantharella/repository/revisions/156 Log: Update ChemDoodleWeb to 5.1.0 Modified: trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/css/ChemDoodleWeb.css trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/css/jquery-ui-1.9.2.custom.css trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb-libs.js trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb-sketcher.js trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb.js trunk/cantharella.web/src/main/webapp/colorbox/colorbox.css trunk/cantharella.web/src/main/webapp/colorbox/jquery.colorbox-min.js Modified: trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/css/ChemDoodleWeb.css =================================================================== --- trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/css/ChemDoodleWeb.css 2013-02-25 15:02:04 UTC (rev 155) +++ trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/css/ChemDoodleWeb.css 2013-02-25 15:02:42 UTC (rev 156) @@ -1,3 +1,4 @@ +/* %%Ignore-License */ canvas.ChemDoodleWebComponent { border: 1px solid black; } \ No newline at end of file Modified: trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/css/jquery-ui-1.9.2.custom.css =================================================================== --- trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/css/jquery-ui-1.9.2.custom.css 2013-02-25 15:02:04 UTC (rev 155) +++ trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/css/jquery-ui-1.9.2.custom.css 2013-02-25 15:02:42 UTC (rev 156) @@ -1,4 +1,5 @@ -/*! jQuery UI - v1.9.2 - 2012-11-29 +/*! %%Ignore-License +* jQuery UI - v1.9.2 - 2012-11-29 * http://jqueryui.com * Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.button.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tooltip.css * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Trebuchet%20MS%2CHelvetica%2CArial%2Csans-serif&fwDefault=bold&fsDefault=1.1em&cornerRadius=6px&bgColorHeader=dddddd&bgTextureHeader=02_glass.png&bgImgOpacityHeader=35&borderColorHeader=bbbbbb&fcHeader=444444&iconColorHeader=999999&bgColorContent=c9c9c9&bgTextureContent=05_inset_soft.png&bgImgOpacityContent=50&borderColorContent=aaaaaa&fcContent=333333&iconColorContent=999999&bgColorDefault=eeeeee&bgTextureDefault=02_glass.png&bgImgOpacityDefault=60&borderColorDefault=cccccc&fcDefault=3383bb&iconColorDefault=70b2e1&bgColorHover=f8f8f8&bgTextureHover=02_glass.png&bgImgOpacityHover=100&borderColorHover=bbbbbb&fcHover=599fcf&iconColorHover=3383bb&bgColorActive=999999&bgTextureActive=06_inset_hard.png&bgImgOpacityActive=75&borderColorActive=999999&fcActive=ffffff&iconColorActive=454545&bgColorHighlight=eeeeee&bgTextureHighlight=01_flat.png&bgImgOpacityHighlight=55&borderColorHighlight=ffffff&fcHighlight=444444&iconColorHighlight=3383bb&bgColorError=c0402a&bgTextureError=01_flat.png&bgImgOpacityError=55&borderColorError=c0402a&fcError=ffffff&iconColorError=fbc856&bgColorOverlay=eeeeee&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=80&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=60&thicknessShadow=4px&offsetTopShadow=-4px&offsetLeftShadow=-4px&cornerRadiusShadow=0px Modified: trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb-libs.js =================================================================== --- trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb-libs.js 2013-02-25 15:02:04 UTC (rev 155) +++ trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb-libs.js 2013-02-25 15:02:42 UTC (rev 156) @@ -13,7 +13,6 @@ // License: BSD License // License URL: http://www.opensource.org/licenses/bsd-license.php // -// // =========================== glMatrix =============================== // gl-matrix 1.3.7 - https://github.com/toji/gl-matrix/blob/master/LICENSE.md (function(w,D){"object"===typeof exports?module.exports=D(global):"function"===typeof define&&define.amd?define([],function(){return D(w)}):D(w)})(this,function(w){function D(a){return o=a}function G(){return o="undefined"!==typeof Float32Array?Float32Array:Array}var E={};(function(){if("undefined"!=typeof Float32Array){var a=new Float32Array(1),b=new Int32Array(a.buffer);E.invsqrt=function(c){a[0]=c;b[0]=1597463007-(b[0]>>1);var d=a[0];return d*(1.5-0.5*c*d*d)}}else E.invsqrt=function(a){return 1/ @@ -61,10 +60,11 @@ b,c){c||(c=a);var d=a[1],e=a[2],g=a[3],f=b[0],b=b[1];c[0]=a[0]*f;c[1]=d*b;c[2]=e*f;c[3]=g*b;return c},str:function(a){return"["+a[0]+", "+a[1]+", "+a[2]+", "+a[3]+"]"}},K={create:function(a){var b=new o(4);a?(b[0]=a[0],b[1]=a[1],b[2]=a[2],b[3]=a[3]):(b[0]=0,b[1]=0,b[2]=0,b[3]=0);return b},createFrom:function(a,b,c,d){var e=new o(4);e[0]=a;e[1]=b;e[2]=c;e[3]=d;return e},add:function(a,b,c){c||(c=b);c[0]=a[0]+b[0];c[1]=a[1]+b[1];c[2]=a[2]+b[2];c[3]=a[3]+b[3];return c},subtract:function(a,b,c){c||(c= b);c[0]=a[0]-b[0];c[1]=a[1]-b[1];c[2]=a[2]-b[2];c[3]=a[3]-b[3];return c},multiply:function(a,b,c){c||(c=b);c[0]=a[0]*b[0];c[1]=a[1]*b[1];c[2]=a[2]*b[2];c[3]=a[3]*b[3];return c},divide:function(a,b,c){c||(c=b);c[0]=a[0]/b[0];c[1]=a[1]/b[1];c[2]=a[2]/b[2];c[3]=a[3]/b[3];return c},scale:function(a,b,c){c||(c=a);c[0]=a[0]*b;c[1]=a[1]*b;c[2]=a[2]*b;c[3]=a[3]*b;return c},set:function(a,b){b[0]=a[0];b[1]=a[1];b[2]=a[2];b[3]=a[3];return b},equal:function(a,b){return a===b||1.0E-6>Math.abs(a[0]-b[0])&&1.0E-6> Math.abs(a[1]-b[1])&&1.0E-6>Math.abs(a[2]-b[2])&&1.0E-6>Math.abs(a[3]-b[3])},negate:function(a,b){b||(b=a);b[0]=-a[0];b[1]=-a[1];b[2]=-a[2];b[3]=-a[3];return b},length:function(a){var b=a[0],c=a[1],d=a[2],a=a[3];return Math.sqrt(b*b+c*c+d*d+a*a)},squaredLength:function(a){var b=a[0],c=a[1],d=a[2],a=a[3];return b*b+c*c+d*d+a*a},lerp:function(a,b,c,d){d||(d=a);d[0]=a[0]+c*(b[0]-a[0]);d[1]=a[1]+c*(b[1]-a[1]);d[2]=a[2]+c*(b[2]-a[2]);d[3]=a[3]+c*(b[3]-a[3]);return d},str:function(a){return"["+a[0]+", "+ -a[1]+", "+a[2]+", "+a[3]+"]"}};w&&(w.glMatrixArrayType=o,w.MatrixArray=o,w.setMatrixArrayType=D,w.determineMatrixArrayType=G,w.glMath=E,w.vec2=J,w.vec3=r,w.vec4=K,w.mat2=I,w.mat3=A,w.mat4=x,w.quat4=k);return{glMatrixArrayType:o,MatrixArray:o,setMatrixArrayType:D,determineMatrixArrayType:G,glMath:E,vec2:J,vec3:r,vec4:K,mat2:I,mat3:A,mat4:x,quat4:k}});// +a[1]+", "+a[2]+", "+a[3]+"]"}};w&&(w.glMatrixArrayType=o,w.MatrixArray=o,w.setMatrixArrayType=D,w.determineMatrixArrayType=G,w.glMath=E,w.vec2=J,w.vec3=r,w.vec4=K,w.mat2=I,w.mat3=A,w.mat4=x,w.quat4=k);return{glMatrixArrayType:o,MatrixArray:o,setMatrixArrayType:D,determineMatrixArrayType:G,glMath:E,vec2:J,vec3:r,vec4:K,mat2:I,mat3:A,mat4:x,quat4:k}}); // =========================== jQuery =============================== -/*! jQuery v1.8.3 jquery.com | jquery.org/license */ +/*! jQuery v1.8.3 jquery.com | jquery.org/license */ //(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); +// =========================== _mousewheel =============================== /*! Copyright (c) 2011 Brandon Aaron (http://brandonaaron.net) * Licensed under the MIT License (LICENSE.txt). * Modified: trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb-sketcher.js =================================================================== --- trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb-sketcher.js 2013-02-25 15:02:04 UTC (rev 155) +++ trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb-sketcher.js 2013-02-25 15:02:42 UTC (rev 156) @@ -1,9 +1,9 @@ // %%Ignore-License -// ChemDoodle Web Components 5.0.0 +// ChemDoodle Web Components 5.1.0 // // http://web.chemdoodle.com // -// Copyright 2009-2012 iChemLabs, LLC. All rights reserved. +// Copyright 2009-2013 iChemLabs, LLC. All rights reserved. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -28,234 +28,239 @@ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // -// Please contact iChemLabs <http://www.ichemlabs.com/contact> for +// Please contact iChemLabs <http://www.ichemlabs.com/contact-us> for // alternate licensing options. // -ChemDoodle.sketcher=function(){var a={actions:{},gui:{}};a.gui.desktop={};a.gui.mobile={};a.states={};a.tools={};return a}();(function(a){a._Action=function(){this.forward=function(a){this.innerForward();this.checks(a)};this.reverse=function(a){this.innerReverse();this.checks(a)};this.checks=function(a){for(var f=0,c=a.molecules.length;f<c;f++)a.molecules[f].check();a.lasso&&a.lasso.isActive()&&a.lasso.setBounds();a.repaint()};return!0}})(ChemDoodle.sketcher.actions); -(function(a,d,f,c){f.AddAction=function(e,b,a,j){this.sketcher=e;this.a=b;this.as=a;this.bs=j;return!0};f.AddAction.prototype=new f._Action;f.AddAction.prototype.innerForward=function(){var e=this.sketcher.getMoleculeByAtom(this.a);e||(e=new d.Molecule,this.sketcher.molecules.push(e));if(this.as)for(var b=0,a=this.as.length;b<a;b++)e.atoms.push(this.as[b]);if(this.bs){for(var j=[],b=0,a=this.bs.length;b<a;b++){var m=this.bs[b];if(-1===c(m.a1,e.atoms)){var g=this.sketcher.getMoleculeByAtom(m.a1);-1=== -c(g,j)&&j.push(g)}-1===c(m.a2,e.atoms)&&(g=this.sketcher.getMoleculeByAtom(m.a2),-1===c(g,j)&&j.push(g));e.bonds.push(m)}b=0;for(a=j.length;b<a;b++)m=j[b],this.sketcher.removeMolecule(m),e.atoms=e.atoms.concat(m.atoms),e.bonds=e.bonds.concat(m.bonds)}};f.AddAction.prototype.innerReverse=function(){var e=this.sketcher.getMoleculeByAtom(this.a);if(this.as){for(var b=[],d=0,j=e.atoms.length;d<j;d++)-1===c(e.atoms[d],this.as)&&b.push(e.atoms[d]);e.atoms=b}if(this.bs){b=[];d=0;for(j=e.bonds.length;d<j;d++)-1=== -c(e.bonds[d],this.bs)&&b.push(e.bonds[d]);e.bonds=b}if(0===e.atoms.length)this.sketcher.removeMolecule(e);else if(b=(new a.Splitter).split(e),1<b.length){this.sketcher.removeMolecule(e);d=0;for(j=b.length;d<j;d++)this.sketcher.molecules.push(b[d])}}})(ChemDoodle.informatics,ChemDoodle.structures,ChemDoodle.sketcher.actions,jQuery.inArray); -(function(a){a.AddShapeAction=function(a,f){this.sketcher=a;this.s=f;return!0};a.AddShapeAction.prototype=new a._Action;a.AddShapeAction.prototype.innerForward=function(){this.sketcher.shapes.push(this.s)};a.AddShapeAction.prototype.innerReverse=function(){this.sketcher.removeShape(this.s)}})(ChemDoodle.sketcher.actions); -(function(a,d){a.ChangeBondAction=function(a,c,e){this.b=a;this.orderBefore=a.bondOrder;this.stereoBefore=a.stereo;c?(this.orderAfter=c,this.stereoAfter=e):(this.orderAfter=a.bondOrder+1,3<this.orderAfter&&(this.orderAfter=1),this.stereoAfter=d.STEREO_NONE);return!0};a.ChangeBondAction.prototype=new a._Action;a.ChangeBondAction.prototype.innerForward=function(){this.b.bondOrder=this.orderAfter;this.b.stereo=this.stereoAfter};a.ChangeBondAction.prototype.innerReverse=function(){this.b.bondOrder=this.orderBefore; -this.b.stereo=this.stereoBefore}})(ChemDoodle.sketcher.actions,ChemDoodle.structures.Bond);(function(a){a.ChangeChargeAction=function(a,f){this.a=a;this.delta=f;return!0};a.ChangeChargeAction.prototype=new a._Action;a.ChangeChargeAction.prototype.innerForward=function(){this.a.charge+=this.delta};a.ChangeChargeAction.prototype.innerReverse=function(){this.a.charge-=this.delta}})(ChemDoodle.sketcher.actions); -(function(a){a.ChangeCoordinatesAction=function(a,f){this.as=a;this.recs=[];for(var c=0,e=this.as.length;c<e;c++)this.recs[c]={xo:this.as[c].x,yo:this.as[c].y,xn:f[c].x,yn:f[c].y};return!0};a.ChangeCoordinatesAction.prototype=new a._Action;a.ChangeCoordinatesAction.prototype.innerForward=function(){for(var a=0,f=this.as.length;a<f;a++)this.as[a].x=this.recs[a].xn,this.as[a].y=this.recs[a].yn};a.ChangeCoordinatesAction.prototype.innerReverse=function(){for(var a=0,f=this.as.length;a<f;a++)this.as[a].x= -this.recs[a].xo,this.as[a].y=this.recs[a].yo}})(ChemDoodle.sketcher.actions);(function(a){a.ChangeLabelAction=function(a,f){this.a=a;this.before=a.label;this.after=f;return!0};a.ChangeLabelAction.prototype=new a._Action;a.ChangeLabelAction.prototype.innerForward=function(){this.a.label=this.after};a.ChangeLabelAction.prototype.innerReverse=function(){this.a.label=this.before}})(ChemDoodle.sketcher.actions); -(function(a){a.ChangeLonePairAction=function(a,f){this.a=a;this.delta=f;return!0};a.ChangeLonePairAction.prototype=new a._Action;a.ChangeLonePairAction.prototype.innerForward=function(){this.a.numLonePair+=this.delta};a.ChangeLonePairAction.prototype.innerReverse=function(){this.a.numLonePair-=this.delta}})(ChemDoodle.sketcher.actions); -(function(a){a.ChangeRadicalAction=function(a,f){this.a=a;this.delta=f;return!0};a.ChangeRadicalAction.prototype=new a._Action;a.ChangeRadicalAction.prototype.innerForward=function(){this.a.numRadical+=this.delta};a.ChangeRadicalAction.prototype.innerReverse=function(){this.a.numRadical-=this.delta}})(ChemDoodle.sketcher.actions); -(function(a){a.ChangeRgroupAction=function(a,f){this.a=a;this.rbefore=a.rgroup;this.rafter=f;return!0};a.ChangeRgroupAction.prototype=new a._Action;a.ChangeRgroupAction.prototype.innerForward=function(){this.a.rgroup=this.rafter};a.ChangeRgroupAction.prototype.innerReverse=function(){this.a.rgroup=this.rbefore}})(ChemDoodle.sketcher.actions); -(function(a,d){d.ClearAction=function(d){this.sketcher=d;this.beforeMols=this.sketcher.molecules;this.beforeShapes=this.sketcher.shapes;this.sketcher.clear();this.sketcher.oneMolecule&&(this.afterMol=new a.Molecule,this.afterMol.atoms.push(new a.Atom),this.sketcher.molecules.push(this.afterMol),this.sketcher.center(),this.sketcher.repaint());return!0};d.ClearAction.prototype=new d._Action;d.ClearAction.prototype.innerForward=function(){this.sketcher.molecules=[];this.sketcher.shapes=[];this.sketcher.oneMolecule&& -this.sketcher.molecules.push(this.afterMol)};d.ClearAction.prototype.innerReverse=function(){this.sketcher.molecules=this.beforeMols;this.sketcher.shapes=this.beforeShapes}})(ChemDoodle.structures,ChemDoodle.sketcher.actions); -(function(a){a.DeleteAction=function(a,f,c,e){this.sketcher=a;this.a=f;this.as=c;this.bs=e;this.ss=[];return!0};a.DeleteAction.prototype=new a._Action;a.DeleteAction.prototype.innerForwardAReverse=a.AddAction.prototype.innerReverse;a.DeleteAction.prototype.innerReverseAForward=a.AddAction.prototype.innerForward;a.DeleteAction.prototype.innerForward=function(){this.innerForwardAReverse();for(var a=0,f=this.ss.length;a<f;a++)this.sketcher.removeShape(this.ss[a])};a.DeleteAction.prototype.innerReverse= -function(){this.innerReverseAForward();0<this.ss.length&&(this.sketcher.shapes=this.sketcher.shapes.concat(this.ss))}})(ChemDoodle.sketcher.actions); -(function(a,d,f){d.DeleteContentAction=function(a,e,b){this.sketcher=a;this.as=e;this.ss=b;this.bs=[];a=0;for(e=this.sketcher.molecules.length;a<e;a++)for(var b=this.sketcher.molecules[a],d=0,j=b.bonds.length;d<j;d++){var m=b.bonds[d];m.a1.isLassoed&&m.a2.isLassoed&&this.bs.push(m)}return!0};d.DeleteContentAction.prototype=new d._Action;d.DeleteContentAction.prototype.innerForward=function(){for(var c=0,e=this.ss.length;c<e;c++)this.sketcher.removeShape(this.ss[c]);for(var b=[],d=[],c=0,e=this.sketcher.molecules.length;c< -e;c++){for(var j=this.sketcher.molecules[c],m=0,g=j.atoms.length;m<g;m++){var l=j.atoms[m];-1===f(l,this.as)&&b.push(l)}m=0;for(g=j.bonds.length;m<g;m++)l=j.bonds[m],-1===f(l,this.bs)&&d.push(l)}this.sketcher.molecules=(new a.Splitter).split({atoms:b,bonds:d})};d.DeleteContentAction.prototype.innerReverse=function(){this.sketcher.shapes=this.sketcher.shapes.concat(this.ss);for(var c=[],e=[],b=0,d=this.sketcher.molecules.length;b<d;b++)var j=this.sketcher.molecules[b],c=c.concat(j.atoms),e=e.concat(j.bonds); -this.sketcher.molecules=(new a.Splitter).split({atoms:c.concat(this.as),bonds:e.concat(this.bs)})}})(ChemDoodle.informatics,ChemDoodle.sketcher.actions,jQuery.inArray);(function(a){a.DeleteShapeAction=function(a,f){this.sketcher=a;this.s=f;return!0};a.DeleteShapeAction.prototype=new a._Action;a.DeleteShapeAction.prototype.innerForward=a.AddShapeAction.prototype.innerReverse;a.DeleteShapeAction.prototype.innerReverse=a.AddShapeAction.prototype.innerForward})(ChemDoodle.sketcher.actions); -(function(a){a.FlipBondAction=function(a){this.b=a;return!0};a.FlipBondAction.prototype=new a._Action;a.FlipBondAction.prototype.innerForward=function(){var a=this.b.a1;this.b.a1=this.b.a2;this.b.a2=a};a.FlipBondAction.prototype.innerReverse=function(){this.innerForward()}})(ChemDoodle.sketcher.actions); -(function(a){a.MoveAction=function(a,f){this.ps=a;this.dif=f;return!0};a.MoveAction.prototype=new a._Action;a.MoveAction.prototype.innerForward=function(){for(var a=0,f=this.ps.length;a<f;a++)this.ps[a].add(this.dif)};a.MoveAction.prototype.innerReverse=function(){for(var a=0,f=this.ps.length;a<f;a++)this.ps[a].sub(this.dif)}})(ChemDoodle.sketcher.actions); -(function(a,d){d.NewMoleculeAction=function(a,c,e){this.sketcher=a;this.as=c;this.bs=e;return!0};d.NewMoleculeAction.prototype=new d._Action;d.NewMoleculeAction.prototype.innerForward=function(){var d=new a.Molecule;d.atoms=d.atoms.concat(this.as);d.bonds=d.bonds.concat(this.bs);d.check();this.sketcher.addMolecule(d)};d.NewMoleculeAction.prototype.innerReverse=function(){this.sketcher.removeMolecule(this.sketcher.getMoleculeByAtom(this.as[0]))}})(ChemDoodle.structures,ChemDoodle.sketcher.actions); -(function(a,d){a.RotateAction=function(a,c,e){this.ps=a;this.dif=c;this.center=e;return!0};a.RotateAction.prototype=new a._Action;a.RotateAction.prototype.innerForward=function(){for(var a=0,c=this.ps.length;a<c;a++){var e=this.ps[a],b=this.center.distance(e),h=this.center.angle(e)+this.dif;e.x=this.center.x+b*d.cos(h);e.y=this.center.y-b*d.sin(h)}};a.RotateAction.prototype.innerReverse=function(){for(var a=0,c=this.ps.length;a<c;a++){var e=this.ps[a],b=this.center.distance(e),h=this.center.angle(e)- -this.dif;e.x=this.center.x+b*d.cos(h);e.y=this.center.y-b*d.sin(h)}}})(ChemDoodle.sketcher.actions,Math); -(function(a){a.SwitchMoleculeAction=function(a,f){this.sketcher=a;this.beforeMols=this.sketcher.molecules;this.beforeShapes=this.sketcher.shapes;this.molA=f;return!0};a.SwitchMoleculeAction.prototype=new a._Action;a.SwitchMoleculeAction.prototype.innerForward=function(){this.sketcher.loadMolecule(this.molA)};a.SwitchMoleculeAction.prototype.innerReverse=function(){this.sketcher.molecules=this.beforeMols;this.sketcher.shapes=this.beforeShapes}})(ChemDoodle.sketcher.actions); -(function(a){a.ToggleAnyAtomAction=function(a){this.a=a;return!0};a.ToggleAnyAtomAction.prototype=new a._Action;a.ToggleAnyAtomAction.prototype.innerForward=function(){this.a.any=!this.a.any};a.ToggleAnyAtomAction.prototype.innerReverse=a.ToggleAnyAtomAction.prototype.innerForward})(ChemDoodle.sketcher.actions); -(function(a){a.HistoryManager=function(a){this.sketcher=a;this.undoStack=[];this.redoStack=[];return!0};a.HistoryManager.prototype.undo=function(){if(0!==this.undoStack.length){this.sketcher.lasso&&this.sketcher.lasso.isActive()&&this.sketcher.lasso.empty();var a=this.undoStack.pop();a.reverse(this.sketcher);this.redoStack.push(a);0===this.undoStack.length&&this.sketcher.toolbarManager.buttonUndo.disable();this.sketcher.toolbarManager.buttonRedo.enable()}};a.HistoryManager.prototype.redo=function(){if(0!== -this.redoStack.length){this.sketcher.lasso&&this.sketcher.lasso.isActive()&&this.sketcher.lasso.empty();var a=this.redoStack.pop();a.forward(this.sketcher);this.undoStack.push(a);this.sketcher.toolbarManager.buttonUndo.enable();0===this.redoStack.length&&this.sketcher.toolbarManager.buttonRedo.disable()}};a.HistoryManager.prototype.pushUndo=function(a){a.forward(this.sketcher);this.undoStack.push(a);0!==this.redoStack.length&&(this.redoStack=[]);this.sketcher.toolbarManager.buttonUndo.enable();this.sketcher.toolbarManager.buttonRedo.disable()}; -a.HistoryManager.prototype.clear=function(){0!==this.undoStack.length&&(this.undoStack=[],this.sketcher.toolbarManager.buttonUndo.disable());0!==this.redoStack.length&&(this.redoStack=[],this.sketcher.toolbarManager.buttonRedo.disable())}})(ChemDoodle.sketcher.actions); -(function(a,d,f,c,e,b,h,j){c._State=function(){return!0};c._State.prototype.setup=function(a){this.sketcher=a};c._State.prototype.clearHover=function(){this.sketcher.hovering&&(this.sketcher.hovering.isHover=!1,this.sketcher.hovering.isSelected=!1,this.sketcher.hovering=void 0)};c._State.prototype.findHoveredObject=function(a,g,e,b){this.clearHover();var i=Infinity,j,c=this.sketcher.specs.bondLength;this.sketcher.isMobile||(c/=this.sketcher.specs.scale);if(g)for(var g=0,d=this.sketcher.molecules.length;g< -d;g++)for(var h=this.sketcher.molecules[g],f=0,r=h.atoms.length;f<r;f++){var v=h.atoms[f];v.isHover=!1;var t=a.p.distance(v);t<c&&t<i&&(i=t,j=v)}if(e){g=0;for(d=this.sketcher.molecules.length;g<d;g++){h=this.sketcher.molecules[g];f=0;for(r=h.bonds.length;f<r;f++)e=h.bonds[f],e.isHover=!1,t=a.p.distance(e.getCenter()),t<c&&t<i&&(i=t,j=e)}}if(b){g=0;for(d=this.sketcher.shapes.length;g<d;g++){b=this.sketcher.shapes[g];b.isHover=!1;b.hoverPoint=void 0;e=b.getPoints();f=0;for(r=e.length;f<r;f++)h=e[f], -t=a.p.distance(h),t<c&&t<i&&(i=t,j=b,b.hoverPoint=h)}if(!j){g=0;for(d=this.sketcher.shapes.length;g<d;g++)b=this.sketcher.shapes[g],b.isOver(a.p,c)&&(j=b)}}j&&(j.isHover=!0,this.sketcher.hovering=j)};c._State.prototype.getOptimumAngle=function(e){var g=this.sketcher.getMoleculeByAtom(e),e=g.getAngles(e),b=0;if(0===e.length)b=j.PI/6;else if(1===e.length){for(var c,b=0,i=g.bonds.length;b<i;b++)g.bonds[b].contains(this.sketcher.hovering)&&(c=g.bonds[b]);3<=c.bondOrder?b=e[0]+j.PI:(g=2*(e[0]%j.PI),b= -a.isBetween(g,0,j.PI/2)||a.isBetween(g,j.PI,3*j.PI/2)?e[0]+2*j.PI/3:e[0]-2*j.PI/3)}else b=a.angleBetweenLargest(e).angle;return b};c._State.prototype.removeStartAtom=function(){this.sketcher.startAtom&&(this.sketcher.startAtom.x=-10,this.sketcher.startAtom.y=-10,this.sketcher.repaint())};c._State.prototype.enter=function(){this.innerenter&&this.innerenter()};c._State.prototype.exit=function(){this.innerexit&&this.innerexit()};c._State.prototype.click=function(a){this.innerclick&&this.innerclick(a)}; -c._State.prototype.rightclick=function(a){this.innerrightclick&&this.innerrightclick(a)};c._State.prototype.dblclick=function(a){this.innerdblclick&&this.innerdblclick(a);if(!this.sketcher.hovering){var a=new e.Point(this.sketcher.width/2,this.sketcher.height/2),g=this.sketcher.getContentBounds();a.x-=(g.maxX+g.minX)/2;a.y-=(g.maxY+g.minY)/2;this.sketcher.historyManager.pushUndo(new f.MoveAction(this.sketcher.getAllPoints(),a))}};c._State.prototype.mousedown=function(a){this.sketcher.lastPoint=a.p; -this.sketcher.isHelp||this.sketcher.isMobile&&10>a.op.distance(this.sketcher.helpPos)?(this.sketcher.isHelp=!1,this.sketcher.repaint(),window.open("http://web.chemdoodle.com/sketcher")):this.innermousedown&&this.innermousedown(a)};c._State.prototype.rightmousedown=function(a){this.innerrightmousedown&&this.innerrightmousedown(a)};c._State.prototype.mousemove=function(a){this.innermousemove&&this.innermousemove(a);this.sketcher.repaint()};c._State.prototype.mouseout=function(a){this.innermouseout&& -this.innermouseout(a)};c._State.prototype.mouseover=function(a){this.innermouseover&&this.innermouseover(a)};c._State.prototype.mouseup=function(a){this.parentAction=void 0;this.innermouseup&&this.innermouseup(a)};c._State.prototype.rightmouseup=function(a){this.innerrightmouseup&&this.innerrightmouseup(a)};c._State.prototype.mousewheel=function(a,e){this.innermousewheel&&this.innermousewheel(a);this.sketcher.specs.scale+=e/10;this.sketcher.checkScale();this.sketcher.repaint()};c._State.prototype.drag= -function(a){this.innerdrag&&this.innerdrag(a);if(!this.sketcher.hovering&&this!==this.sketcher.stateManager.STATE_LASSO&&this!==this.sketcher.stateManager.STATE_SHAPE&&this!==this.sketcher.stateManager.STATE_PUSHER){if(d.SHIFT)if(this.parentAction){var g=this.parentAction.center,b=g.angle(this.sketcher.lastPoint),c=g.angle(a.p),i=c-b;this.parentAction.dif+=i;b=0;for(c=this.parentAction.ps.length;b<c;b++){var h=this.parentAction.ps[b],k=g.distance(h),p=g.angle(h)+i;h.x=g.x+k*j.cos(p);h.y=g.y-k*j.sin(p)}b= -0;for(c=this.sketcher.molecules.length;b<c;b++)this.sketcher.molecules[b].check()}else g=new e.Point(this.sketcher.width/2,this.sketcher.height/2),b=g.angle(this.sketcher.lastPoint),c=g.angle(a.p),this.parentAction=new f.RotateAction(this.sketcher.getAllPoints(),c-b,g),this.sketcher.historyManager.pushUndo(this.parentAction);else{if(!this.sketcher.lastPoint)return;g=new e.Point(a.p.x,a.p.y);g.sub(this.sketcher.lastPoint);if(this.parentAction){this.parentAction.dif.add(g);b=0;for(c=this.parentAction.ps.length;b< -c;b++)this.parentAction.ps[b].add(g);this.sketcher.lasso&&this.sketcher.lasso.isActive()&&(this.sketcher.lasso.bounds.minX+=g.x,this.sketcher.lasso.bounds.maxX+=g.x,this.sketcher.lasso.bounds.minY+=g.y,this.sketcher.lasso.bounds.maxY+=g.y);b=0;for(c=this.sketcher.molecules.length;b<c;b++)this.sketcher.molecules[b].check()}else this.parentAction=new f.MoveAction(this.sketcher.getAllPoints(),g),this.sketcher.historyManager.pushUndo(this.parentAction)}this.sketcher.repaint()}this.sketcher.lastPoint= -a.p};c._State.prototype.keydown=function(c){if(d.CANVAS_DRAGGING===this.sketcher)this.sketcher.lastPoint&&(c.p=this.sketcher.lastPoint,this.drag(c));else if(d.META)90===c.which?this.sketcher.historyManager.undo():89===c.which?this.sketcher.historyManager.redo():83===c.which?this.sketcher.toolbarManager.buttonSave.getElement().click():79===c.which?this.sketcher.toolbarManager.buttonOpen.getElement().click():78===c.which?this.sketcher.toolbarManager.buttonClear.getElement().click():187===c.which||61=== -c.which?this.sketcher.toolbarManager.buttonScalePlus.getElement().click():189===c.which||109===c.which?this.sketcher.toolbarManager.buttonScaleMinus.getElement().click():65===c.which&&!this.sketcher.oneMolecule&&(this.sketcher.toolbarManager.buttonLasso.getElement().click(),this.sketcher.lasso.select(this.sketcher.getAllAtoms(),this.sketcher.shapes));else if(9===c.which){if(!this.sketcher.oneMolecule)if(this.sketcher.lasso.block=!0,this.sketcher.toolbarManager.buttonLasso.getElement().click(),this.sketcher.lasso.block= -!1,d.SHIFT){if(0<this.sketcher.shapes.length){var g=this.sketcher.shapes.length-1;0<this.sketcher.lasso.shapes.length&&(g=h(this.sketcher.lasso.shapes[0],this.sketcher.shapes)+1);g===this.sketcher.shapes.length&&(g=0);this.sketcher.lasso.empty();this.sketcher.lasso.select([],[this.sketcher.shapes[g]])}}else 0<this.sketcher.molecules.length&&(g=this.sketcher.molecules.length-1,0<this.sketcher.lasso.atoms.length&&(g=this.sketcher.getMoleculeByAtom(this.sketcher.lasso.atoms[0]),g=h(g,this.sketcher.molecules)+ -1),g===this.sketcher.molecules.length&&(g=0),this.sketcher.lasso.select(this.sketcher.molecules[g].atoms,[]))}else if(32===c.which)this.sketcher.lasso&&this.sketcher.lasso.empty(),this.sketcher.toolbarManager.buttonSingle.getElement().click();else if(37<=c.which&&40>=c.which){g=new e.Point;switch(c.which){case 37:g.x=-10;break;case 38:g.y=-10;break;case 39:g.x=10;break;case 40:g.y=10}this.sketcher.historyManager.pushUndo(new f.MoveAction(this.sketcher.lasso&&this.sketcher.lasso.isActive()?this.sketcher.lasso.getAllPoints(): -this.sketcher.getAllPoints(),g))}else if(187===c.which||189===c.which||61===c.which||109===c.which)this.sketcher.hovering&&this.sketcher.hovering instanceof e.Atom&&this.sketcher.historyManager.pushUndo(new f.ChangeChargeAction(this.sketcher.hovering,187===c.which||61===c.which?1:-1));else if(8===c.which||127===c.which)this.sketcher.stateManager.STATE_ERASE.handleDelete();else if(48<=c.which&&57>=c.which){if(this.sketcher.hovering){var l=c.which-48,n=[],i=[];if(this.sketcher.hovering instanceof e.Atom)if(g= -this.sketcher.hovering,d.SHIFT){if(2<l&&9>l){var o=this.sketcher.getMoleculeByAtom(this.sketcher.hovering),k=o.getAngles(this.sketcher.hovering),p=3*j.PI/2;0!==k.length&&(p=a.angleBetweenLargest(k).angle);k=this.sketcher.stateManager.STATE_NEW_RING.getRing(this.sketcher.hovering,l,this.sketcher.specs.bondLength,p,!1);-1===h(k[0],o.atoms)&&n.push(k[0]);this.sketcher.bondExists(this.sketcher.hovering,k[0])||i.push(new e.Bond(this.sketcher.hovering,k[0]));for(var q=1,s=k.length;q<s;q++)-1===h(k[q],o.atoms)&& -n.push(k[q]),this.sketcher.bondExists(k[q-1],k[q])||i.push(new e.Bond(k[q-1],k[q]));this.sketcher.bondExists(k[k.length-1],this.sketcher.hovering)||i.push(new e.Bond(k[k.length-1],this.sketcher.hovering))}}else{0===l&&(l=10);for(var r=new e.Point(this.sketcher.hovering.x,this.sketcher.hovering.y),v=this.getOptimumAngle(this.sketcher.hovering),t=this.sketcher.hovering,w=0;w<l;w++){o=v+(1===w%2?j.PI/3:0);r.x+=this.sketcher.specs.bondLength*j.cos(o);r.y-=this.sketcher.specs.bondLength*j.sin(o);for(var u= -new e.Atom("C",r.x,r.y),x=Infinity,y,q=0,s=this.sketcher.molecules.length;q<s;q++){o=this.sketcher.molecules[q];k=0;for(p=o.atoms.length;k<p;k++){var z=o.atoms[k],A=z.distance(u);A<x&&(x=A,y=z)}}5>x?u=y:n.push(u);this.sketcher.bondExists(t,u)||i.push(new e.Bond(t,u));t=u}}else if(this.sketcher.hovering instanceof e.Bond)if(g=this.sketcher.hovering.a1,d.SHIFT){if(2<l&&9>l){k=this.sketcher.stateManager.STATE_NEW_RING.getOptimalRing(this.sketcher.hovering,l);l=this.sketcher.hovering.a2;p=this.sketcher.hovering.a1; -o=this.sketcher.getMoleculeByAtom(l);k[0]===this.sketcher.hovering.a1&&(l=this.sketcher.hovering.a1,p=this.sketcher.hovering.a2);-1===h(k[1],o.atoms)&&n.push(k[1]);this.sketcher.bondExists(l,k[1])||i.push(new e.Bond(l,k[1]));q=2;for(s=k.length;q<s;q++)-1===h(k[q],o.atoms)&&n.push(k[q]),this.sketcher.bondExists(k[q-1],k[q])||i.push(new e.Bond(k[q-1],k[q]));this.sketcher.bondExists(k[k.length-1],p)||i.push(new e.Bond(k[k.length-1],p))}}else 0<l&&4>l&&this.sketcher.hovering.bondOrder!==l&&this.sketcher.historyManager.pushUndo(new f.ChangeBondAction(this.sketcher.hovering, -l,e.Bond.STEREO_NONE));(0!==n.length||0!==i.length)&&this.sketcher.historyManager.pushUndo(new f.AddAction(this.sketcher,g,n,i))}}else if(65<=c.which&&90>=c.which&&this.sketcher.hovering)if(this.sketcher.hovering instanceof e.Atom){g=String.fromCharCode(c.which);o=!1;k=0;for(p=b.length;k<p;k++)if(this.sketcher.hovering.label.charAt(0)===g)b[k]===this.sketcher.hovering.label?o=!0:b[k].charAt(0)===g&&(o&&!i?i=b[k]:n||(n=b[k]));else if(b[k].charAt(0)===g){n=b[k];break}u="C";i?u=i:n&&(u=n);u!==this.sketcher.hovering.label&& -this.sketcher.historyManager.pushUndo(new f.ChangeLabelAction(this.sketcher.hovering,u))}else this.sketcher.hovering instanceof e.Bond&&70===c.which&&this.sketcher.historyManager.pushUndo(new f.FlipBondAction(this.sketcher.hovering));this.innerkeydown&&this.innerkeydown(c)};c._State.prototype.keypress=function(a){this.innerkeypress&&this.innerkeypress(a)};c._State.prototype.keyup=function(a){d.CANVAS_DRAGGING===this.sketcher&&this.sketcher.lastPoint&&(a.p=this.sketcher.lastPoint,this.sketcher.drag(a)); -this.innerkeyup&&this.innerkeyup(a)}})(ChemDoodle.math,ChemDoodle.monitor,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.structures,ChemDoodle.SYMBOLS,jQuery.inArray,Math); -(function(a,d,f,c){c.AtomQueryState=function(a){this.setup(a);this.mode=c.LabelState.MODE_ANY;return!0};c.AtomQueryState.prototype=new c._State;c.AtomQueryState.prototype.innermouseup=function(){if(this.mode===c.AtomQueryState.MODE_ANY)this.sketcher.historyManager.pushUndo(new d.ToggleAnyAtomAction(this.sketcher.hovering));else if(this.mode===c.AtomQueryState.MODE_RGROUP){var a=this,b=this.sketcher.hovering;this.sketcher.dialogManager.inputDialog.doneFunction=function(c){c.match(/[0-9]|\-/g)&&a.sketcher.historyManager.pushUndo(new d.ChangeRgroupAction(b, -parseInt(c)))};this.sketcher.dialogManager.inputDialog.getElement().dialog("open")}};c.AtomQueryState.prototype.innermousemove=function(a){this.findHoveredObject(a,!0)};c.AtomQueryState.MODE_ANY=1;c.AtomQueryState.MODE_RGROUP=2})(ChemDoodle.structures,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.gui.DialogManager,ChemDoodle.sketcher.states); -(function(a,d){d.ChargeState=function(a){this.setup(a);this.delta=1;return!0};d.ChargeState.prototype=new d._State;d.ChargeState.prototype.innermouseup=function(){this.sketcher.hovering&&this.sketcher.historyManager.pushUndo(new a.ChangeChargeAction(this.sketcher.hovering,this.delta))};d.ChargeState.prototype.innermousemove=function(a){this.findHoveredObject(a,!0,!1)}})(ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states); -(function(a,d,f,c,e){d.EraseState=function(a){this.setup(a);return!0};d.EraseState.prototype=new d._State;d.EraseState.prototype.handleDelete=function(){if(this.sketcher.lasso&&this.sketcher.lasso.isActive())this.sketcher.historyManager.pushUndo(new a.DeleteContentAction(this.sketcher,this.sketcher.lasso.atoms,this.sketcher.lasso.shapes)),this.sketcher.lasso.empty();else if(this.sketcher.hovering){if(this.sketcher.hovering instanceof f.Atom)if(this.sketcher.oneMolecule){for(var b=this.sketcher.molecules[0], -h=0,j=b.atoms.length;h<j;h++)b.atoms[h].visited=!1;var d=[],g=[];this.sketcher.hovering.visited=!0;h=0;for(j=b.bonds.length;h<j;h++){var l=b.bonds[h];if(l.contains(this.sketcher.hovering)){var n=[],i=[],o=new f.Queue;for(o.enqueue(l.getNeighbor(this.sketcher.hovering));!o.isEmpty();)if(l=o.dequeue(),!l.visited){l.visited=!0;n.push(l);for(var k=0,p=b.bonds.length;k<p;k++){var q=b.bonds[k];q.contains(l)&&!q.getNeighbor(l).visited&&(o.enqueue(q.getNeighbor(l)),i.push(q))}}d.push(n);g.push(i)}}k=l=-1; -h=0;for(j=d.length;h<j;h++)d[h].length>l&&(k=h,l=d[h].length);if(-1<k){for(var h=[],j=[],s,n=0,i=b.atoms.length;n<i;n++)l=b.atoms[n],-1===e(l,d[k])?h.push(l):s||(s=l);n=0;for(i=b.bonds.length;n<i;n++)l=b.bonds[n],-1===e(l,g[k])&&j.push(l);this.sketcher.historyManager.pushUndo(new a.DeleteAction(this.sketcher,s,h,j))}else this.sketcher.historyManager.pushUndo(new a.ClearAction(this.sketcher))}else b=this.sketcher.getMoleculeByAtom(this.sketcher.hovering),this.sketcher.historyManager.pushUndo(new a.DeleteAction(this.sketcher, -b.atoms[0],[this.sketcher.hovering],b.getBonds(this.sketcher.hovering)));else this.sketcher.hovering instanceof f.Bond?(!this.sketcher.oneMolecule||!this.sketcher.hovering.ring)&&this.sketcher.historyManager.pushUndo(new a.DeleteAction(this.sketcher,this.sketcher.hovering.a1,void 0,[this.sketcher.hovering])):this.sketcher.hovering instanceof c._Shape&&this.sketcher.historyManager.pushUndo(new a.DeleteShapeAction(this.sketcher,this.sketcher.hovering));this.sketcher.hovering=void 0;this.sketcher.repaint()}n= -0;for(i=this.sketcher.shapes.length;n<i;n++)if(g=this.sketcher.shapes[n],g instanceof c.Pusher){d=s=!1;h=0;for(j=this.sketcher.molecules.length;h<j;h++){b=this.sketcher.molecules[h];k=0;for(p=b.atoms.length;k<p;k++)l=b.atoms[k],l===g.o1?s=!0:l===g.o2&&(d=!0);k=0;for(p=b.bonds.length;k<p;k++)l=b.bonds[k],l===g.o1?s=!0:l===g.o2&&(d=!0)}if(!s||!d)this.sketcher.historyManager.undoStack[this.sketcher.historyManager.undoStack.length-1].ss.push(g),this.sketcher.removeShape(g)}};d.EraseState.prototype.innermouseup= -function(){this.handleDelete()};d.EraseState.prototype.innermousemove=function(a){this.findHoveredObject(a,!0,!0)}})(ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.structures,ChemDoodle.structures.d2,jQuery.inArray); -(function(a,d,f){f.LabelState=function(a){this.setup(a);this.label="C";return!0};f.LabelState.prototype=new f._State;f.LabelState.prototype.innermousedown=function(){this.newMolAllowed=!0};f.LabelState.prototype.innermouseup=function(c){this.sketcher.hovering?this.label!==this.sketcher.hovering.label&&this.sketcher.historyManager.pushUndo(new d.ChangeLabelAction(this.sketcher.hovering,this.label)):!this.sketcher.oneMolecule&&this.newMolAllowed&&(this.sketcher.historyManager.pushUndo(new d.NewMoleculeAction(this.sketcher, -[new a.Atom(this.label,c.p.x,c.p.y)],[])),this.sketcher.isMobile||this.mousemove(c))};f.LabelState.prototype.innermousemove=function(a){this.findHoveredObject(a,!0,!1)};f.LabelState.prototype.innerdrag=function(){this.newMolAllowed=!1}})(ChemDoodle.structures,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states); -(function(a,d,f,c,e,b,h,j){b.LassoState=function(a){this.setup(a);return!0};b.LassoState.prototype=new b._State;var m,g=!1;b.LassoState.prototype.innerdrag=function(a){this.inDrag=!0;if(this.sketcher.lasso.isActive()&&m){if(this.sketcher.lastPoint)if(1===m){var b=new f.Point(a.p.x,a.p.y);b.sub(this.sketcher.lastPoint);if(this.parentAction){this.parentAction.dif.add(b);for(var a=0,i=this.parentAction.ps.length;a<i;a++)this.parentAction.ps[a].add(b);a=0;for(i=this.sketcher.molecules.length;a<i;a++)this.sketcher.molecules[a].check(); -this.sketcher.lasso.bounds.minX+=b.x;this.sketcher.lasso.bounds.maxX+=b.x;this.sketcher.lasso.bounds.minY+=b.y;this.sketcher.lasso.bounds.maxY+=b.y;this.sketcher.repaint()}else this.parentAction=new e.MoveAction(this.sketcher.lasso.getAllPoints(),b),this.sketcher.historyManager.pushUndo(this.parentAction)}else if(2===m)if(this.parentAction){var b=this.parentAction.center,i=b.angle(this.sketcher.lastPoint),a=b.angle(a.p),g=a-i;this.parentAction.dif+=g;a=0;for(i=this.parentAction.ps.length;a<i;a++){var h= -this.parentAction.ps[a],p=b.distance(h),q=b.angle(h)+g;h.x=b.x+p*j.cos(q);h.y=b.y-p*j.sin(q)}a=0;for(i=this.sketcher.molecules.length;a<i;a++)this.sketcher.molecules[a].check();this.sketcher.lasso.setBounds();this.sketcher.repaint()}else b=new f.Point((this.sketcher.lasso.bounds.minX+this.sketcher.lasso.bounds.maxX)/2,(this.sketcher.lasso.bounds.minY+this.sketcher.lasso.bounds.maxY)/2),i=b.angle(this.sketcher.lastPoint),a=b.angle(a.p),this.parentAction=new e.RotateAction(this.sketcher.lasso.getAllPoints(), -a-i,b),this.sketcher.historyManager.pushUndo(this.parentAction)}else if(this.sketcher.hovering){if(this.sketcher.lastPoint)if(b=new f.Point(a.p.x,a.p.y),b.sub(this.sketcher.lastPoint),this.parentAction){this.parentAction.dif.add(b);a=0;for(i=this.parentAction.ps.length;a<i;a++)this.parentAction.ps[a].add(b);a=0;for(i=this.sketcher.molecules.length;a<i;a++)this.sketcher.molecules[a].check();this.sketcher.repaint()}else this.sketcher.hovering instanceof f.Atom?i=d.SHIFT?[this.sketcher.hovering]:this.sketcher.getMoleculeByAtom(this.sketcher.hovering).atoms: -this.sketcher.hovering instanceof f.Bond?i=[this.sketcher.hovering.a1,this.sketcher.hovering.a2]:this.sketcher.hovering instanceof c._Shape&&(i=this.sketcher.hovering.hoverPoint?[this.sketcher.hovering.hoverPoint]:this.sketcher.hovering.getPoints()),this.parentAction=new e.MoveAction(i,b),this.sketcher.historyManager.pushUndo(this.parentAction)}else this.sketcher.lasso.addPoint(a.p),this.sketcher.repaint()};b.LassoState.prototype.innermousedown=function(b){this.inDrag=!1;if(this.sketcher.lasso.isActive()&& -!d.SHIFT){m=void 0;var g=25/this.sketcher.specs.scale;a.isBetween(b.p.x,this.sketcher.lasso.bounds.minX,this.sketcher.lasso.bounds.maxX)&&a.isBetween(b.p.y,this.sketcher.lasso.bounds.minY,this.sketcher.lasso.bounds.maxY)?m=1:a.isBetween(b.p.x,this.sketcher.lasso.bounds.minX-g,this.sketcher.lasso.bounds.maxX+g)&&a.isBetween(b.p.y,this.sketcher.lasso.bounds.minY-g,this.sketcher.lasso.bounds.maxY+g)&&(m=2)}else this.sketcher.hovering||(this.sketcher.lastPoint=void 0,this.sketcher.lasso.addPoint(b.p), -this.sketcher.repaint())};b.LassoState.prototype.innermouseup=function(a){m||this.sketcher.hovering||this.sketcher.lasso.select();this.innermousemove(a)};b.LassoState.prototype.innerclick=function(){if(!m&&!this.inDrag)if(this.sketcher.hovering){var a=[],b=[];this.sketcher.hovering instanceof f.Atom?a.push(this.sketcher.hovering):this.sketcher.hovering instanceof f.Bond?(a.push(this.sketcher.hovering.a1),a.push(this.sketcher.hovering.a2)):this.sketcher.hovering instanceof c._Shape&&b.push(this.sketcher.hovering); -this.sketcher.lasso.select(a,b)}else this.sketcher.lasso.isActive()&&this.sketcher.lasso.empty();m=void 0};b.LassoState.prototype.innermousemove=function(b){if(this.sketcher.lasso.isActive()){if(!d.SHIFT){var e=!1,i=25/this.sketcher.specs.scale;if((!a.isBetween(b.p.x,this.sketcher.lasso.bounds.minX,this.sketcher.lasso.bounds.maxX)||!a.isBetween(b.p.y,this.sketcher.lasso.bounds.minY,this.sketcher.lasso.bounds.maxY))&&a.isBetween(b.p.x,this.sketcher.lasso.bounds.minX-i,this.sketcher.lasso.bounds.maxX+ -i)&&a.isBetween(b.p.y,this.sketcher.lasso.bounds.minY-i,this.sketcher.lasso.bounds.maxY+i))e=!0;e!=g&&(g=e,this.sketcher.repaint())}}else e=this.sketcher.lasso.mode!==h.Lasso.MODE_LASSO_SHAPES,this.findHoveredObject(b,e,e,!0)};b.LassoState.prototype.innerdblclick=function(){this.sketcher.lasso.isActive()&&this.sketcher.lasso.empty()};b.LassoState.prototype.draw=function(a){if(g&&this.sketcher.lasso.bounds){a.fillStyle="rgba(0,0,255,.1)";var b=25/this.sketcher.specs.scale,i=this.sketcher.lasso.bounds; -a.beginPath();a.rect(i.minX-b,i.minY-b,i.maxX-i.minX+2*b,b);a.rect(i.minX-b,i.maxY,i.maxX-i.minX+2*b,b);a.rect(i.minX-b,i.minY,b,i.maxY-i.minY);a.rect(i.maxX,i.minY,b,i.maxY-i.minY);a.fill()}}})(ChemDoodle.math,ChemDoodle.monitor,ChemDoodle.structures,ChemDoodle.structures.d2,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.sketcher.tools,Math); -(function(a,d){d.LonePairState=function(a){this.setup(a);this.delta=1;return!0};d.LonePairState.prototype=new d._State;d.LonePairState.prototype.innermouseup=function(){0>this.delta&&1>this.sketcher.hovering.numLonePair||this.sketcher.hovering&&this.sketcher.historyManager.pushUndo(new a.ChangeLonePairAction(this.sketcher.hovering,this.delta))};d.LonePairState.prototype.innermousemove=function(a){this.findHoveredObject(a,!0,!1)}})(ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states); -(function(a,d,f){d.MoveState=function(a){this.setup(a);this.action=void 0;return!0};d.MoveState.prototype=new d._State;d.MoveState.prototype.innerdrag=function(c){if(this.sketcher.hovering)if(this.action){c=new f.Point(c.p.x,c.p.y);c.sub(this.sketcher.lastPoint);this.action.dif.add(c);for(var e=0,b=this.action.as.length;e<b;e++)this.action.as[e].add(c);e=0;for(b=this.sketcher.molecules.length;e<b;e++)this.sketcher.molecules[e].check();this.sketcher.repaint()}else e=[],c=new f.Point(c.p.x,c.p.y),this.sketcher.hovering instanceof -f.Atom?(c.sub(this.sketcher.hovering),e[0]=this.sketcher.hovering):this.sketcher.hovering instanceof f.Bond&&(c.sub(this.sketcher.lastPoint),e[0]=this.sketcher.hovering.a1,e[1]=this.sketcher.hovering.a2),this.action=new a.MoveAction(e,c),this.sketcher.historyManager.pushUndo(this.action)};d.MoveState.prototype.innermousemove=function(a){this.findHoveredObject(a,!0,!0)};d.MoveState.prototype.innermouseup=function(){this.action=void 0}})(ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.structures); -(function(a,d,f,c,e){f.NewBondState=function(a){this.setup(a);this.bondOrder=1;this.stereo=c.Bond.STEREO_NONE;return!0};f.NewBondState.prototype=new f._State;f.NewBondState.prototype.incrementBondOrder=function(a){this.newMolAllowed=!1;1===this.bondOrder&&this.stereo===c.Bond.STEREO_NONE?this.sketcher.historyManager.pushUndo(new d.ChangeBondAction(a)):a.bondOrder===this.bondOrder&&a.stereo===this.stereo?(1===a.bondOrder&&a.stereo!==c.Bond.STEREO_NONE||2===a.bondOrder&&a.stereo===c.Bond.STEREO_NONE)&& -this.sketcher.historyManager.pushUndo(new d.FlipBondAction(a)):this.sketcher.historyManager.pushUndo(new d.ChangeBondAction(a,this.bondOrder,this.stereo))};f.NewBondState.prototype.innerexit=function(){this.removeStartAtom()};f.NewBondState.prototype.innerdrag=function(b){this.newMolAllowed=!1;this.removeStartAtom();if(this.sketcher.hovering instanceof c.Atom){if(15>b.p.distance(this.sketcher.hovering)){var d=this.getOptimumAngle(this.sketcher.hovering),b=this.sketcher.hovering.x+this.sketcher.specs.bondLength* -e.cos(d),d=this.sketcher.hovering.y-this.sketcher.specs.bondLength*e.sin(d);this.sketcher.tempAtom=new c.Atom("C",b,d,0)}else a.ALT&&a.SHIFT?this.sketcher.tempAtom=new c.Atom("C",b.p.x,b.p.y,0):(d=this.sketcher.hovering.angle(b.p),b=this.sketcher.hovering.distance(b.p),a.SHIFT||(b=this.sketcher.specs.bondLength),a.ALT||(d=e.floor((d+e.PI/12)/(e.PI/6))*e.PI/6),this.sketcher.tempAtom=new c.Atom("C",this.sketcher.hovering.x+b*e.cos(d),this.sketcher.hovering.y-b*e.sin(d),0));d=0;for(b=this.sketcher.molecules.length;d< -b;d++)for(var j=this.sketcher.molecules[d],f=0,g=j.atoms.length;f<g;f++){var l=j.atoms[f];5>l.distance(this.sketcher.tempAtom)&&(this.sketcher.tempAtom.x=l.x,this.sketcher.tempAtom.y=l.y,this.sketcher.tempAtom.isOverlap=!0)}this.sketcher.repaint()}};f.NewBondState.prototype.innerclick=function(a){!this.sketcher.hovering&&!this.sketcher.oneMolecule&&this.newMolAllowed&&(this.sketcher.historyManager.pushUndo(new d.NewMoleculeAction(this.sketcher,[new c.Atom("C",a.p.x,a.p.y)],[])),this.sketcher.isMobile|| -this.mousemove(a))};f.NewBondState.prototype.innermousedown=function(a){this.newMolAllowed=!0;if(this.sketcher.hovering instanceof c.Atom)this.sketcher.hovering.isHover=!1,this.sketcher.hovering.isSelected=!0,this.drag(a);else if(this.sketcher.hovering instanceof c.Bond){this.sketcher.hovering.isHover=!1;this.incrementBondOrder(this.sketcher.hovering);for(var a=0,e=this.sketcher.molecules.length;a<e;a++)this.sketcher.molecules[a].check();this.sketcher.repaint()}};f.NewBondState.prototype.innermouseup= -function(a){if(this.sketcher.tempAtom&&this.sketcher.hovering){var e=[],j=[],f=!0;if(this.sketcher.tempAtom.isOverlap){for(var g=0,l=this.sketcher.molecules.length;g<l;g++)for(var n=this.sketcher.molecules[g],i=0,o=n.atoms.length;i<o;i++){var k=n.atoms[i];5>k.distance(this.sketcher.tempAtom)&&(this.sketcher.tempAtom=k)}if(g=this.sketcher.getBond(this.sketcher.hovering,this.sketcher.tempAtom))this.incrementBondOrder(g),f=!1}else e.push(this.sketcher.tempAtom);f&&(j[0]=new c.Bond(this.sketcher.hovering, -this.sketcher.tempAtom,this.bondOrder),j[0].stereo=this.stereo,this.sketcher.historyManager.pushUndo(new d.AddAction(this.sketcher,j[0].a1,e,j)))}this.sketcher.tempAtom=void 0;this.sketcher.isMobile||this.mousemove(a)};f.NewBondState.prototype.innermousemove=function(a){this.sketcher.tempAtom||(this.findHoveredObject(a,!0,!0),this.sketcher.startAtom&&(this.sketcher.hovering?(this.sketcher.startAtom.x=-10,this.sketcher.startAtom.y=-10):(this.sketcher.startAtom.x=a.p.x,this.sketcher.startAtom.y=a.p.y)))}; -f.NewBondState.prototype.innermouseout=function(){this.removeStartAtom()}})(ChemDoodle.monitor,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.structures,Math); -(function(a,d,f,c,e,b,h){c.NewRingState=function(a){this.setup(a);this.numSides=6;this.unsaturated=!1;return!0};c.NewRingState.prototype=new c._State;c.NewRingState.prototype.getRing=function(a,b,g,c,d){for(var i=h.PI-2*h.PI/b,c=c+i/2,f=[],k=0;k<b-1;k++){var p=0===k?new e.Atom("C",a.x,a.y):new e.Atom("C",f[f.length-1].x,f[f.length-1].y);p.x+=g*h.cos(c);p.y-=g*h.sin(c);f.push(p);c+=h.PI+i}k=0;for(a=this.sketcher.molecules.length;k<a;k++){b=this.sketcher.molecules[k];g=0;for(c=b.atoms.length;g<c;g++)b.atoms[g].isOverlap= -!1}k=0;for(a=f.length;k<a;k++){for(var i=Infinity,q,p=0,s=this.sketcher.molecules.length;p<s;p++){b=this.sketcher.molecules[p];g=0;for(c=b.atoms.length;g<c;g++){var r=b.atoms[g].distance(f[k]);r<i&&(i=r,q=b.atoms[g])}}5>i&&(f[k]=q,d&&(q.isOverlap=!0))}return f};c.NewRingState.prototype.getOptimalRing=function(a,b){for(var e=h.PI/2-h.PI/b,c=a.a1.distance(a.a2),d=this.getRing(a.a1,b,c,a.a1.angle(a.a2)-e,!1),e=this.getRing(a.a2,b,c,a.a2.angle(a.a1)-e,!1),i=c=0,f=1,k=d.length;f<k;f++)for(var p=0,q=this.sketcher.molecules.length;p< -q;p++)for(var s=this.sketcher.molecules[p],r=0,v=s.atoms.length;r<v;r++)var t=s.atoms[r].distance(d[f]),w=s.atoms[r].distance(e[f]),c=c+h.min(1E8,1/(t*t)),i=i+h.min(1E8,1/(w*w));return c<i?d:e};c.NewRingState.prototype.innerexit=function(){this.removeStartAtom()};c.NewRingState.prototype.innerdrag=function(c){this.newMolAllowed=!1;this.removeStartAtom();if(this.sketcher.hovering instanceof e.Atom){var f=0,g=0;if(15>c.p.distance(this.sketcher.hovering))c=this.sketcher.getMoleculeByAtom(this.sketcher.hovering).getAngles(this.sketcher.hovering), -f=0===c.length?3*h.PI/2:a.angleBetweenLargest(c).angle,g=this.sketcher.specs.bondLength;else if(f=this.sketcher.hovering.angle(c.p),g=this.sketcher.hovering.distance(c.p),!d.ALT||!d.SHIFT)d.SHIFT||(g=this.sketcher.specs.bondLength),d.ALT||(f=h.floor((f+h.PI/12)/(h.PI/6))*h.PI/6);this.sketcher.tempRing=this.getRing(this.sketcher.hovering,this.numSides,g,f,!0);this.sketcher.repaint()}else if(this.sketcher.hovering instanceof e.Bond){f=a.distanceFromPointToLineInclusive(c.p,this.sketcher.hovering.a1, -this.sketcher.hovering.a2);if(-1!==f&&7>=f)c=this.getOptimalRing(this.sketcher.hovering,this.numSides);else{for(var g=h.PI/2-h.PI/this.numSides,l=this.sketcher.hovering.a1.distance(this.sketcher.hovering.a2),f=this.getRing(this.sketcher.hovering.a1,this.numSides,l,this.sketcher.hovering.a1.angle(this.sketcher.hovering.a2)-g,!1),g=this.getRing(this.sketcher.hovering.a2,this.numSides,l,this.sketcher.hovering.a2.angle(this.sketcher.hovering.a1)-g,!1),n=new e.Point,l=new e.Point,i=1,o=f.length;i<o;i++)n.add(f[i]), -l.add(g[i]);n.x/=f.length-1;n.y/=f.length-1;l.x/=g.length-1;l.y/=g.length-1;n=n.distance(c.p);l=l.distance(c.p);c=g;n<l&&(c=f)}f=1;for(g=c.length;f<g;f++)-1!==b(c[f],this.sketcher.getAllAtoms())&&(c[f].isOverlap=!0);this.sketcher.tempRing=c;this.sketcher.repaint()}};c.NewRingState.prototype.innerclick=function(a){!this.sketcher.hovering&&!this.sketcher.oneMolecule&&this.newMolAllowed&&(this.sketcher.historyManager.pushUndo(new f.NewMoleculeAction(this.sketcher,[new e.Atom("C",a.p.x,a.p.y)],[])),this.sketcher.isMobile|| -this.mousemove(a))};c.NewRingState.prototype.innermousedown=function(a){this.newMolAllowed=!0;this.sketcher.hovering&&(this.sketcher.hovering.isHover=!1,this.sketcher.hovering.isSelected=!0,this.drag(a))};c.NewRingState.prototype.innermouseup=function(a){if(this.sketcher.tempRing&&this.sketcher.hovering){var c=[],g=[],d=this.sketcher.getAllAtoms();if(this.sketcher.hovering instanceof e.Atom){-1===b(this.sketcher.tempRing[0],d)&&c.push(this.sketcher.tempRing[0]);this.sketcher.bondExists(this.sketcher.hovering, -this.sketcher.tempRing[0])||g.push(new e.Bond(this.sketcher.hovering,this.sketcher.tempRing[0]));for(var h=1,i=this.sketcher.tempRing.length;h<i;h++)-1===b(this.sketcher.tempRing[h],d)&&c.push(this.sketcher.tempRing[h]),this.sketcher.bondExists(this.sketcher.tempRing[h-1],this.sketcher.tempRing[h])||g.push(new e.Bond(this.sketcher.tempRing[h-1],this.sketcher.tempRing[h],1===h%2&&this.unsaturated?2:1));this.sketcher.bondExists(this.sketcher.tempRing[this.sketcher.tempRing.length-1],this.sketcher.hovering)|| -g.push(new e.Bond(this.sketcher.tempRing[this.sketcher.tempRing.length-1],this.sketcher.hovering,this.unsaturated?2:1))}else if(this.sketcher.hovering instanceof e.Bond){var h=this.sketcher.hovering.a2,o=this.sketcher.hovering.a1;this.sketcher.tempRing[0]===this.sketcher.hovering.a1&&(h=this.sketcher.hovering.a1,o=this.sketcher.hovering.a2);-1===b(this.sketcher.tempRing[1],d)&&c.push(this.sketcher.tempRing[1]);this.sketcher.bondExists(h,this.sketcher.tempRing[1])||g.push(new e.Bond(h,this.sketcher.tempRing[1])); -h=2;for(i=this.sketcher.tempRing.length;h<i;h++)-1===b(this.sketcher.tempRing[h],d)&&c.push(this.sketcher.tempRing[h]),this.sketcher.bondExists(this.sketcher.tempRing[h-1],this.sketcher.tempRing[h])||g.push(new e.Bond(this.sketcher.tempRing[h-1],this.sketcher.tempRing[h],0===h%2&&this.unsaturated?2:1));this.sketcher.bondExists(this.sketcher.tempRing[this.sketcher.tempRing.length-1],o)||g.push(new e.Bond(this.sketcher.tempRing[this.sketcher.tempRing.length-1],o))}(0!==c.length||0!==g.length)&&this.sketcher.historyManager.pushUndo(new f.AddAction(this.sketcher, -g[0].a1,c,g));c=0;for(g=d.length;c<g;c++)d[c].isOverlap=!1}this.sketcher.tempRing=void 0;this.sketcher.isMobile||this.mousemove(a)};c.NewRingState.prototype.innermousemove=function(a){this.sketcher.tempAtom||(this.findHoveredObject(a,!0,!0),this.sketcher.startAtom&&(this.sketcher.hovering?(this.sketcher.startAtom.x=-10,this.sketcher.startAtom.y=-10):(this.sketcher.startAtom.x=a.p.x,this.sketcher.startAtom.y=a.p.y)))};c.NewRingState.prototype.innermouseout=function(){this.removeStartAtom()}})(ChemDoodle.math, -ChemDoodle.monitor,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.structures,jQuery.inArray,Math); -(function(a,d,f,c,e){e.PusherState=function(a){this.setup(a);this.numElectron=1;return!0};e.PusherState.prototype=new e._State;e.PusherState.prototype.innermousedown=function(){this.sketcher.hovering&&(this.start=this.sketcher.hovering)};e.PusherState.prototype.innerdrag=function(a){this.start&&(this.end=new d.Point(a.p.x,a.p.y),this.findHoveredObject(a,!0,!0),this.sketcher.repaint())};e.PusherState.prototype.innermouseup=function(){if(this.start&&this.sketcher.hovering&&this.sketcher.hovering!== -this.start){for(var a,e=!1,d=0,m=this.sketcher.shapes.length;d<m;d++){var g=this.sketcher.shapes[d];g instanceof f.Pusher&&(g.o1===this.start&&g.o2===this.sketcher.hovering?a=g:g.o2===this.start&&g.o1===this.sketcher.hovering&&(a=g,e=!0))}a?(e&&this.sketcher.historyManager.pushUndo(new c.DeleteShapeAction(this.sketcher,a)),this.end=this.start=void 0,this.sketcher.repaint()):(a=new f.Pusher(this.start,this.sketcher.hovering,this.numElectron),this.end=this.start=void 0,this.sketcher.historyManager.pushUndo(new c.AddShapeAction(this.sketcher, -a)))}else this.end=this.start=void 0,this.sketcher.repaint()};e.PusherState.prototype.innermousemove=function(a){this.findHoveredObject(a,!0,!0);this.sketcher.repaint()};e.PusherState.prototype.draw=function(b){if(this.start&&this.end){b.strokeStyle="#00FF00";b.fillStyle="#00FF00";b.lineWidth=1;var e=this.start instanceof d.Atom?this.start:this.start.getCenter(),c=this.end;this.sketcher.hovering&&this.sketcher.hovering!==this.start&&(c=this.sketcher.hovering instanceof d.Atom?this.sketcher.hovering: -this.sketcher.hovering.getCenter());b.beginPath();b.moveTo(e.x,e.y);a.contextHashTo(b,e.x,e.y,c.x,c.y,2,2);b.stroke()}}})(ChemDoodle.extensions,ChemDoodle.structures,ChemDoodle.structures.d2,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states); -(function(a,d){d.RadicalState=function(a){this.setup(a);this.delta=1;return!0};d.RadicalState.prototype=new d._State;d.RadicalState.prototype.innermouseup=function(){0>this.delta&&1>this.sketcher.hovering.numRadical||this.sketcher.hovering&&this.sketcher.historyManager.pushUndo(new a.ChangeRadicalAction(this.sketcher.hovering,this.delta))};d.RadicalState.prototype.innermousemove=function(a){this.findHoveredObject(a,!0,!1)}})(ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states); -(function(a,d,f,c,e,b,h){b.ShapeState=function(a){this.setup(a);this.shapeType=b.ShapeState.LINE;return!0};b.ShapeState.prototype=new b._State;b.ShapeState.prototype.innermousedown=function(a){this.end=this.start=new f.Point(a.p.x,a.p.y)};b.ShapeState.prototype.innerdrag=function(a){this.end=new f.Point(a.p.x,a.p.y);if(!d.ALT){var a=this.start.angle(this.end),b=this.start.distance(this.end);d.ALT||(a=h.floor((a+h.PI/12)/(h.PI/6))*h.PI/6);this.end.x=this.start.x+b*h.cos(a);this.end.y=this.start.y- -b*h.sin(a)}this.sketcher.repaint()};b.ShapeState.prototype.innermouseup=function(){if(this.start&&this.end){var a;this.shapeType>=b.ShapeState.LINE&&this.shapeType<=b.ShapeState.ARROW_RETROSYNTHETIC&&(a=new c.Line(this.start,this.end),this.shapeType===b.ShapeState.ARROW_SYNTHETIC?a.arrowType=c.Line.ARROW_SYNTHETIC:this.shapeType===b.ShapeState.ARROW_RETROSYNTHETIC&&(a.arrowType=c.Line.ARROW_RETROSYNTHETIC));this.end=this.start=void 0;a&&this.sketcher.historyManager.pushUndo(new e.AddShapeAction(this.sketcher, -a))}};b.ShapeState.prototype.draw=function(b){this.start&&this.end&&(b.strokeStyle="#00FF00",b.fillStyle="#00FF00",b.lineWidth=1,b.beginPath(),b.moveTo(this.start.x,this.start.y),a.contextHashTo(b,this.start.x,this.start.y,this.end.x,this.end.y,2,2),b.stroke())};b.ShapeState.LINE=1;b.ShapeState.ARROW_SYNTHETIC=2;b.ShapeState.ARROW_RETROSYNTHETIC=3})(ChemDoodle.extensions,ChemDoodle.monitor,ChemDoodle.structures,ChemDoodle.structures.d2,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,Math); -(function(a){a.StateManager=function(d){this.STATE_NEW_BOND=new a.NewBondState(d);this.STATE_NEW_RING=new a.NewRingState(d);this.STATE_CHARGE=new a.ChargeState(d);this.STATE_LONE_PAIR=new a.LonePairState(d);this.STATE_RADICAL=new a.RadicalState(d);this.STATE_MOVE=new a.MoveState(d);this.STATE_ERASE=new a.EraseState(d);this.STATE_LABEL=new a.LabelState(d);this.STATE_LASSO=new a.LassoState(d);this.STATE_SHAPE=new a.ShapeState(d);this.STATE_PUSHER=new a.PusherState(d);this.STATE_ATOM_QUERY=new a.AtomQueryState(d); -var f=this.STATE_NEW_BOND;this.setState=function(a){a!==f&&(f.exit(),f=a,f.enter())};this.getCurrentState=function(){return f};return!0}})(ChemDoodle.sketcher.states); -ChemDoodle.sketcher.gui.imageDepot=function(){return{getURI:function(a){return"data:image/png;base64,"+a},ADD_LONE_PAIR:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAANElEQVR42mNgGAWjYHACGyB+DMTPgdiFDHkMAFL8H4qfkyFPewNtoApB2IMM+VEwCgYcAADjvBhZpYZJbQAAAABJRU5ErkJggg==",ADD_RADICAL:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAL0lEQVR42mNgGAWjYGgAGyB+DMTPgdiFGgaCDPsPxc8HpYE2UINA2GM0BYyCoQAAdQgMLdlWmzIAAAAASUVORK5CYII=",ANY_ELEMENT:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABF0lEQVR42u3TsUtCURSA8ZePCJcgqCFwEomGNoWgpCFwaHHIv6CpJYqoxSWScAhqMopQKIjIpsYWoUkahCxahKaGqAjB9qK+C/fB4fBI6L3xHfiBHrgfvqs6TjQ+M4QEmvZ14FnDBYp4wnjQYBzr2MAsYmE88g0WsBvWPQ7859AMfpASuxG7y4rdCjZRx47YT6Alg4d4xZYKfuNO3J0XnEQPo3Z/hZx3cBDPWERHBR9wi2UVNHOKPczhWn66PM7h4g1pEWwjg3f7XgaT+MQ9pmTwEgX7EznCvgqaqaKigmZOcCZjw+jag8YjXuydyeAYPnCsgiWUZXAJB+obN/+IeRU0s4qvfsEGplVwGzWfoGuf4M9gNMHmF6UIOpc0VqXrAAAAAElFTkSuQmCC", +ChemDoodle.sketcher=function(){var a={actions:{},gui:{}};a.gui.desktop={};a.gui.mobile={};a.states={};a.tools={};return a}();(function(a){a._Action=function(){};a=a._Action.prototype;a.forward=function(a){this.innerForward();this.checks(a)};a.reverse=function(a){this.innerReverse();this.checks(a)};a.checks=function(a){for(var e=0,b=a.molecules.length;e<b;e++)a.molecules[e].check();a.lasso&&a.lasso.isActive()&&a.lasso.setBounds();a.repaint()}})(ChemDoodle.sketcher.actions); +(function(a,f,e){e.AddAction=function(b,c,a,j){this.sketcher=b;this.a=c;this.as=a;this.bs=j};e=e.AddAction.prototype=new e._Action;e.innerForward=function(){var b=this.sketcher.getMoleculeByAtom(this.a);b||(b=new f.Molecule,this.sketcher.molecules.push(b));if(this.as)for(var c=0,a=this.as.length;c<a;c++)b.atoms.push(this.as[c]);if(this.bs){for(var j=[],c=0,a=this.bs.length;c<a;c++){var g=this.bs[c];if(-1===b.atoms.indexOf(g.a1)){var m=this.sketcher.getMoleculeByAtom(g.a1);-1===j.indexOf(m)&&j.push(m)}-1=== +b.atoms.indexOf(g.a2)&&(m=this.sketcher.getMoleculeByAtom(g.a2),-1===j.indexOf(m)&&j.push(m));b.bonds.push(g)}c=0;for(a=j.length;c<a;c++)g=j[c],this.sketcher.removeMolecule(g),b.atoms=b.atoms.concat(g.atoms),b.bonds=b.bonds.concat(g.bonds)}};e.innerReverse=function(){var b=this.sketcher.getMoleculeByAtom(this.a);if(this.as){for(var c=[],d=0,j=b.atoms.length;d<j;d++)-1===this.as.indexOf(b.atoms[d])&&c.push(b.atoms[d]);b.atoms=c}if(this.bs){c=[];d=0;for(j=b.bonds.length;d<j;d++)-1===this.bs.indexOf(b.bonds[d])&& +c.push(b.bonds[d]);b.bonds=c}if(0===b.atoms.length)this.sketcher.removeMolecule(b);else if(c=(new a.Splitter).split(b),1<c.length){this.sketcher.removeMolecule(b);d=0;for(j=c.length;d<j;d++)this.sketcher.molecules.push(c[d])}}})(ChemDoodle.informatics,ChemDoodle.structures,ChemDoodle.sketcher.actions);(function(a){a.AddShapeAction=function(a,e){this.sketcher=a;this.s=e};a=a.AddShapeAction.prototype=new a._Action;a.innerForward=function(){this.sketcher.shapes.push(this.s)};a.innerReverse=function(){this.sketcher.removeShape(this.s)}})(ChemDoodle.sketcher.actions); +(function(a,f){a.ChangeBondAction=function(b,c,a){this.b=b;this.orderBefore=b.bondOrder;this.stereoBefore=b.stereo;c?(this.orderAfter=c,this.stereoAfter=a):(this.orderAfter=b.bondOrder+1,3<this.orderAfter&&(this.orderAfter=1),this.stereoAfter=f.STEREO_NONE)};var e=a.ChangeBondAction.prototype=new a._Action;e.innerForward=function(){this.b.bondOrder=this.orderAfter;this.b.stereo=this.stereoAfter};e.innerReverse=function(){this.b.bondOrder=this.orderBefore;this.b.stereo=this.stereoBefore}})(ChemDoodle.sketcher.actions, +ChemDoodle.structures.Bond); +(function(a,f){a.ChangeBracketAttributeAction=function(a,c){this.s=a;this.type=c};var e=a.ChangeBracketAttributeAction.prototype=new a._Action;e.innerForward=function(){var a=0<this.type?1:-1;switch(f.abs(this.type)){case 1:this.s.charge+=a;break;case 2:this.s.repeat+=a;break;case 3:this.s.mult+=a}};e.innerReverse=function(){var a=0<this.type?-1:1;switch(f.abs(this.type)){case 1:this.s.charge+=a;break;case 2:this.s.repeat+=a;break;case 3:this.s.mult+=a}}})(ChemDoodle.sketcher.actions,Math); +(function(a){a.ChangeChargeAction=function(a,e){this.a=a;this.delta=e};a=a.ChangeChargeAction.prototype=new a._Action;a.innerForward=function(){this.a.charge+=this.delta};a.innerReverse=function(){this.a.charge-=this.delta}})(ChemDoodle.sketcher.actions); +(function(a){a.ChangeCoordinatesAction=function(a,e){this.as=a;this.recs=[];for(var b=0,c=this.as.length;b<c;b++)this.recs[b]={xo:this.as[b].x,yo:this.as[b].y,xn:e[b].x,yn:e[b].y}};a=a.ChangeCoordinatesAction.prototype=new a._Action;a.innerForward=function(){for(var a=0,e=this.as.length;a<e;a++)this.as[a].x=this.recs[a].xn,this.as[a].y=this.recs[a].yn};a.innerReverse=function(){for(var a=0,e=this.as.length;a<e;a++)this.as[a].x=this.recs[a].xo,this.as[a].y=this.recs[a].yo}})(ChemDoodle.sketcher.actions); +(function(a){a.ChangeLabelAction=function(a,e){this.a=a;this.before=a.label;this.after=e};a=a.ChangeLabelAction.prototype=new a._Action;a.innerForward=function(){this.a.label=this.after};a.innerReverse=function(){this.a.label=this.before}})(ChemDoodle.sketcher.actions);(function(a){a.ChangeLonePairAction=function(a,e){this.a=a;this.delta=e};a=a.ChangeLonePairAction.prototype=new a._Action;a.innerForward=function(){this.a.numLonePair+=this.delta};a.innerReverse=function(){this.a.numLonePair-=this.delta}})(ChemDoodle.sketcher.actions); +(function(a){a.ChangeRadicalAction=function(a,e){this.a=a;this.delta=e};a=a.ChangeRadicalAction.prototype=new a._Action;a.innerForward=function(){this.a.numRadical+=this.delta};a.innerReverse=function(){this.a.numRadical-=this.delta}})(ChemDoodle.sketcher.actions);(function(a){a.ChangeRgroupAction=function(a,e){this.a=a;this.rbefore=a.rgroup;this.rafter=e};a=a.ChangeRgroupAction.prototype=new a._Action;a.innerForward=function(){this.a.rgroup=this.rafter};a.innerReverse=function(){this.a.rgroup=this.rbefore}})(ChemDoodle.sketcher.actions); +(function(a,f){f.ClearAction=function(b){this.sketcher=b;this.beforeMols=this.sketcher.molecules;this.beforeShapes=this.sketcher.shapes;this.sketcher.clear();this.sketcher.oneMolecule&&(this.afterMol=new a.Molecule,this.afterMol.atoms.push(new a.Atom),this.sketcher.molecules.push(this.afterMol),this.sketcher.center(),this.sketcher.repaint())};var e=f.ClearAction.prototype=new f._Action;e.innerForward=function(){this.sketcher.molecules=[];this.sketcher.shapes=[];this.sketcher.oneMolecule&&this.sketcher.molecules.push(this.afterMol)}; +e.innerReverse=function(){this.sketcher.molecules=this.beforeMols;this.sketcher.shapes=this.beforeShapes}})(ChemDoodle.structures,ChemDoodle.sketcher.actions); +(function(a){a.DeleteAction=function(a,b,c,d){this.sketcher=a;this.a=b;this.as=c;this.bs=d;this.ss=[]};var f=a.DeleteAction.prototype=new a._Action;f.innerForwardAReverse=a.AddAction.prototype.innerReverse;f.innerReverseAForward=a.AddAction.prototype.innerForward;f.innerForward=function(){this.innerForwardAReverse();for(var a=0,b=this.ss.length;a<b;a++)this.sketcher.removeShape(this.ss[a])};f.innerReverse=function(){this.innerReverseAForward();0<this.ss.length&&(this.sketcher.shapes=this.sketcher.shapes.concat(this.ss))}})(ChemDoodle.sketcher.actions); +(function(a,f){f.DeleteContentAction=function(a,c,d){this.sketcher=a;this.as=c;this.ss=d;this.bs=[];a=0;for(c=this.sketcher.molecules.length;a<c;a++){d=this.sketcher.molecules[a];for(var j=0,g=d.bonds.length;j<g;j++){var m=d.bonds[j];m.a1.isLassoed&&m.a2.isLassoed&&this.bs.push(m)}}};var e=f.DeleteContentAction.prototype=new f._Action;e.innerForward=function(){for(var b=0,c=this.ss.length;b<c;b++)this.sketcher.removeShape(this.ss[b]);for(var d=[],j=[],b=0,c=this.sketcher.molecules.length;b<c;b++){for(var g= +this.sketcher.molecules[b],m=0,h=g.atoms.length;m<h;m++){var k=g.atoms[m];-1===this.as.indexOf(k)&&d.push(k)}m=0;for(h=g.bonds.length;m<h;m++)k=g.bonds[m],-1===this.bs.indexOf(k)&&j.push(k)}this.sketcher.molecules=(new a.Splitter).split({atoms:d,bonds:j})};e.innerReverse=function(){this.sketcher.shapes=this.sketcher.shapes.concat(this.ss);for(var b=[],c=[],d=0,j=this.sketcher.molecules.length;d<j;d++)var g=this.sketcher.molecules[d],b=b.concat(g.atoms),c=c.concat(g.bonds);this.sketcher.molecules= +(new a.Splitter).split({atoms:b.concat(this.as),bonds:c.concat(this.bs)})}})(ChemDoodle.informatics,ChemDoodle.sketcher.actions);(function(a){a.DeleteShapeAction=function(a,b){this.sketcher=a;this.s=b};var f=a.DeleteShapeAction.prototype=new a._Action;f.innerForward=a.AddShapeAction.prototype.innerReverse;f.innerReverse=a.AddShapeAction.prototype.innerForward})(ChemDoodle.sketcher.actions); +(function(a){a.FlipBondAction=function(a){this.b=a};a=a.FlipBondAction.prototype=new a._Action;a.innerForward=function(){var a=this.b.a1;this.b.a1=this.b.a2;this.b.a2=a};a.innerReverse=function(){this.innerForward()}})(ChemDoodle.sketcher.actions);(function(a){a.MoveAction=function(a,e){this.ps=a;this.dif=e};a=a.MoveAction.prototype=new a._Action;a.innerForward=function(){for(var a=0,e=this.ps.length;a<e;a++)this.ps[a].add(this.dif)};a.innerReverse=function(){for(var a=0,e=this.ps.length;a<e;a++)this.ps[a].sub(this.dif)}})(ChemDoodle.sketcher.actions); +(function(a,f){f.NewMoleculeAction=function(a,c,d){this.sketcher=a;this.as=c;this.bs=d};var e=f.NewMoleculeAction.prototype=new f._Action;e.innerForward=function(){var b=new a.Molecule;b.atoms=b.atoms.concat(this.as);b.bonds=b.bonds.concat(this.bs);b.check();this.sketcher.addMolecule(b)};e.innerReverse=function(){this.sketcher.removeMolecule(this.sketcher.getMoleculeByAtom(this.as[0]))}})(ChemDoodle.structures,ChemDoodle.sketcher.actions); +(function(a,f){a.RotateAction=function(a,c,d){this.ps=a;this.dif=c;this.center=d};var e=a.RotateAction.prototype=new a._Action;e.innerForward=function(){for(var a=0,c=this.ps.length;a<c;a++){var d=this.ps[a],j=this.center.distance(d),g=this.center.angle(d)+this.dif;d.x=this.center.x+j*f.cos(g);d.y=this.center.y-j*f.sin(g)}};e.innerReverse=function(){for(var a=0,c=this.ps.length;a<c;a++){var d=this.ps[a],j=this.center.distance(d),g=this.center.angle(d)-this.dif;d.x=this.center.x+j*f.cos(g);d.y=this.center.y- +j*f.sin(g)}}})(ChemDoodle.sketcher.actions,Math);(function(a){a.SwitchMoleculeAction=function(a,e){this.sketcher=a;this.beforeMols=this.sketcher.molecules;this.beforeShapes=this.sketcher.shapes;this.molA=e};a=a.SwitchMoleculeAction.prototype=new a._Action;a.innerForward=function(){this.sketcher.loadMolecule(this.molA)};a.innerReverse=function(){this.sketcher.molecules=this.beforeMols;this.sketcher.shapes=this.beforeShapes}})(ChemDoodle.sketcher.actions); +(function(a){a.ToggleAnyAtomAction=function(a){this.a=a};var f=a.ToggleAnyAtomAction.prototype=new a._Action;f.innerForward=function(){this.a.any=!this.a.any};f.innerReverse=a.ToggleAnyAtomAction.prototype.innerForward})(ChemDoodle.sketcher.actions); +(function(a){a.HistoryManager=function(a){this.sketcher=a;this.undoStack=[];this.redoStack=[]};a=a.HistoryManager.prototype;a.undo=function(){if(0!==this.undoStack.length){this.sketcher.lasso&&this.sketcher.lasso.isActive()&&this.sketcher.lasso.empty();var a=this.undoStack.pop();a.reverse(this.sketcher);this.redoStack.push(a);0===this.undoStack.length&&this.sketcher.toolbarManager.buttonUndo.disable();this.sketcher.toolbarManager.buttonRedo.enable()}};a.redo=function(){if(0!==this.redoStack.length){this.sketcher.lasso&& +this.sketcher.lasso.isActive()&&this.sketcher.lasso.empty();var a=this.redoStack.pop();a.forward(this.sketcher);this.undoStack.push(a);this.sketcher.toolbarManager.buttonUndo.enable();0===this.redoStack.length&&this.sketcher.toolbarManager.buttonRedo.disable()}};a.pushUndo=function(a){a.forward(this.sketcher);this.undoStack.push(a);0!==this.redoStack.length&&(this.redoStack=[]);this.sketcher.toolbarManager.buttonUndo.enable();this.sketcher.toolbarManager.buttonRedo.disable()};a.clear=function(){0!== +this.undoStack.length&&(this.undoStack=[],this.sketcher.toolbarManager.buttonUndo.disable());0!==this.redoStack.length&&(this.redoStack=[],this.sketcher.toolbarManager.buttonRedo.disable())}})(ChemDoodle.sketcher.actions); +(function(a,f,e,b,c,d,j){b._State=function(){};b=b._State.prototype;b.setup=function(a){this.sketcher=a};b.clearHover=function(){this.sketcher.hovering&&(this.sketcher.hovering.isHover=!1,this.sketcher.hovering.isSelected=!1,this.sketcher.hovering=void 0)};b.findHoveredObject=function(a,c,h,k){this.clearHover();var d=Infinity,i,b=this.sketcher.specs.bondLength;this.sketcher.isMobile||(b/=this.sketcher.specs.scale);if(c){c=0;for(var j=this.sketcher.molecules.length;c<j;c++)for(var e=this.sketcher.molecules[c], +f=0,q=e.atoms.length;f<q;f++){var t=e.atoms[f];t.isHover=!1;var s=a.p.distance(t);s<b&&s<d&&(d=s,i=t)}}if(h){c=0;for(j=this.sketcher.molecules.length;c<j;c++){e=this.sketcher.molecules[c];f=0;for(q=e.bonds.length;f<q;f++)h=e.bonds[f],h.isHover=!1,s=a.p.distance(h.getCenter()),s<b&&s<d&&(d=s,i=h)}}if(k){c=0;for(j=this.sketcher.shapes.length;c<j;c++){k=this.sketcher.shapes[c];k.isHover=!1;k.hoverPoint=void 0;h=k.getPoints();f=0;for(q=h.length;f<q;f++)e=h[f],s=a.p.distance(e),s<b&&s<d&&(d=s,i=k,k.hoverPoint= +e)}if(!i){c=0;for(j=this.sketcher.shapes.length;c<j;c++)k=this.sketcher.shapes[c],k.isOver(a.p,b)&&(i=k)}}i&&(i.isHover=!0,this.sketcher.hovering=i)};b.getOptimumAngle=function(c){var d=this.sketcher.getMoleculeByAtom(c);c=d.getAngles(c);var h=0;if(0===c.length)h=j.PI/6;else if(1===c.length){for(var k,h=0,b=d.bonds.length;h<b;h++)d.bonds[h].contains(this.sketcher.hovering)&&(k=d.bonds[h]);3<=k.bondOrder?h=c[0]+j.PI:(d=2*(c[0]%j.PI),h=a.isBetween(d,0,j.PI/2)||a.isBetween(d,j.PI,3*j.PI/2)?c[0]+2*j.PI/ +3:c[0]-2*j.PI/3)}else h=a.angleBetweenLargest(c).angle;return h};b.removeStartAtom=function(){this.sketcher.startAtom&&(this.sketcher.startAtom.x=-10,this.sketcher.startAtom.y=-10,this.sketcher.repaint())};b.enter=function(){this.innerenter&&this.innerenter()};b.exit=function(){this.innerexit&&this.innerexit()};b.click=function(a){this.innerclick&&this.innerclick(a)};b.rightclick=function(a){this.innerrightclick&&this.innerrightclick(a)};b.dblclick=function(a){this.innerdblclick&&this.innerdblclick(a); +if(!this.sketcher.hovering){a=new c.Point(this.sketcher.width/2,this.sketcher.height/2);var d=this.sketcher.getContentBounds();a.x-=(d.maxX+d.minX)/2;a.y-=(d.maxY+d.minY)/2;this.sketcher.historyManager.pushUndo(new e.MoveAction(this.sketcher.getAllPoints(),a))}};b.mousedown=function(a){this.sketcher.lastPoint=a.p;this.sketcher.isHelp||this.sketcher.isMobile&&10>a.op.distance(this.sketcher.helpPos)?(this.sketcher.isHelp=!1,this.sketcher.repaint(),window.open("http://web.chemdoodle.com/sketcher")): +this.innermousedown&&this.innermousedown(a)};b.rightmousedown=function(a){this.innerrightmousedown&&this.innerrightmousedown(a)};b.mousemove=function(a){this.innermousemove&&this.innermousemove(a);this.sketcher.repaint()};b.mouseout=function(a){this.innermouseout&&this.innermouseout(a);this.sketcher.hovering&&(this.sketcher.hovering=void 0,this.sketcher.repaint())};b.mouseover=function(a){this.innermouseover&&this.innermouseover(a)};b.mouseup=function(a){this.parentAction=void 0;this.innermouseup&& +this.innermouseup(a)};b.rightmouseup=function(a){this.innerrightmouseup&&this.innerrightmouseup(a)};b.mousewheel=function(a,c){this.innermousewheel&&this.innermousewheel(a);this.sketcher.specs.scale+=c/10;this.sketcher.checkScale();this.sketcher.repaint()};b.drag=function(a){this.innerdrag&&this.innerdrag(a);if(!this.sketcher.hovering&&this!==this.sketcher.stateManager.STATE_LASSO&&this!==this.sketcher.stateManager.STATE_SHAPE&&this!==this.sketcher.stateManager.STATE_PUSHER){if(f.SHIFT)if(this.parentAction){var d= +this.parentAction.center,h=d.angle(this.sketcher.lastPoint),b=d.angle(a.p),p=b-h;this.parentAction.dif+=p;h=0;for(b=this.parentAction.ps.length;h<b;h++){var i=this.parentAction.ps[h],l=d.distance(i),n=d.angle(i)+p;i.x=d.x+l*j.cos(n);i.y=d.y-l*j.sin(n)}h=0;for(b=this.sketcher.molecules.length;h<b;h++)this.sketcher.molecules[h].check()}else d=new c.Point(this.sketcher.width/2,this.sketcher.height/2),h=d.angle(this.sketcher.lastPoint),b=d.angle(a.p),this.parentAction=new e.RotateAction(this.sketcher.getAllPoints(), +b-h,d),this.sketcher.historyManager.pushUndo(this.parentAction);else{if(!this.sketcher.lastPoint)return;d=new c.Point(a.p.x,a.p.y);d.sub(this.sketcher.lastPoint);if(this.parentAction){this.parentAction.dif.add(d);h=0;for(b=this.parentAction.ps.length;h<b;h++)this.parentAction.ps[h].add(d);this.sketcher.lasso&&this.sketcher.lasso.isActive()&&(this.sketcher.lasso.bounds.minX+=d.x,this.sketcher.lasso.bounds.maxX+=d.x,this.sketcher.lasso.bounds.minY+=d.y,this.sketcher.lasso.bounds.maxY+=d.y);h=0;for(b= +this.sketcher.molecules.length;h<b;h++)this.sketcher.molecules[h].check()}else this.parentAction=new e.MoveAction(this.sketcher.getAllPoints(),d),this.sketcher.historyManager.pushUndo(this.parentAction)}this.sketcher.repaint()}this.sketcher.lastPoint=a.p};b.keydown=function(b){if(f.CANVAS_DRAGGING===this.sketcher)this.sketcher.lastPoint&&(b.p=this.sketcher.lastPoint,this.drag(b));else if(f.META)90===b.which?this.sketcher.historyManager.undo():89===b.which?this.sketcher.historyManager.redo():83=== +b.which?this.sketcher.toolbarManager.buttonSave.getElement().click():79===b.which?this.sketcher.toolbarManager.buttonOpen.getElement().click():78===b.which?this.sketcher.toolbarManager.buttonClear.getElement().click():187===b.which||61===b.which?this.sketcher.toolbarManager.buttonScalePlus.getElement().click():189===b.which||109===b.which?this.sketcher.toolbarManager.buttonScaleMinus.getElement().click():65===b.which&&!this.sketcher.oneMolecule&&(this.sketcher.toolbarManager.buttonLasso.getElement().click(), +this.sketcher.lasso.select(this.sketcher.getAllAtoms(),this.sketcher.shapes));else if(9===b.which){if(!this.sketcher.oneMolecule)if(this.sketcher.lasso.block=!0,this.sketcher.toolbarManager.buttonLasso.getElement().click(),this.sketcher.lasso.block=!1,f.SHIFT){if(0<this.sketcher.shapes.length){var m=this.sketcher.shapes.length-1;0<this.sketcher.lasso.shapes.length&&(m=this.sketcher.shapes.indexOf(this.sketcher.lasso.shapes[0])+1);m===this.sketcher.shapes.length&&(m=0);this.sketcher.lasso.empty(); +this.sketcher.lasso.select([],[this.sketcher.shapes[m]])}}else 0<this.sketcher.molecules.length&&(m=this.sketcher.molecules.length-1,0<this.sketcher.lasso.atoms.length&&(m=this.sketcher.getMoleculeByAtom(this.sketcher.lasso.atoms[0]),m=this.sketcher.molecules.indexOf(m)+1),m===this.sketcher.molecules.length&&(m=0),this.sketcher.lasso.select(this.sketcher.molecules[m].atoms,[]))}else if(32===b.which)this.sketcher.lasso&&this.sketcher.lasso.empty(),this.sketcher.toolbarManager.buttonSingle.getElement().click(); +else if(37<=b.which&&40>=b.which){m=new c.Point;switch(b.which){case 37:m.x=-10;break;case 38:m.y=-10;break;case 39:m.x=10;break;case 40:m.y=10}this.sketcher.historyManager.pushUndo(new e.MoveAction(this.sketcher.lasso&&this.sketcher.lasso.isActive()?this.sketcher.lasso.getAllPoints():this.sketcher.getAllPoints(),m))}else if(187===b.which||189===b.which||61===b.which||109===b.which)this.sketcher.hovering&&this.sketcher.hovering instanceof c.Atom&&this.sketcher.historyManager.pushUndo(new e.ChangeChargeAction(this.sketcher.hovering, +187===b.which||61===b.which?1:-1));else if(8===b.which||127===b.which)this.sketcher.stateManager.STATE_ERASE.handleDelete();else if(48<=b.which&&57>=b.which){if(this.sketcher.hovering){var h=b.which-48,k=[],p=[];if(this.sketcher.hovering instanceof c.Atom)if(m=this.sketcher.hovering,f.SHIFT){if(2<h&&9>h){var i=this.sketcher.getMoleculeByAtom(this.sketcher.hovering),l=i.getAngles(this.sketcher.hovering),n=3*j.PI/2;0!==l.length&&(n=a.angleBetweenLargest(l).angle);l=this.sketcher.stateManager.STATE_NEW_RING.getRing(this.sketcher.hovering, +h,this.sketcher.specs.bondLength,n,!1);-1===i.atoms.indexOf(l[0])&&k.push(l[0]);this.sketcher.bondExists(this.sketcher.hovering,l[0])||p.push(new c.Bond(this.sketcher.hovering,l[0]));for(var o=1,r=l.length;o<r;o++)-1===i.atoms.indexOf(l[o])&&k.push(l[o]),this.sketcher.bondExists(l[o-1],l[o])||p.push(new c.Bond(l[o-1],l[o]));this.sketcher.bondExists(l[l.length-1],this.sketcher.hovering)||p.push(new c.Bond(l[l.length-1],this.sketcher.hovering))}}else{0===h&&(h=10);for(var q=new c.Point(this.sketcher.hovering.x, +this.sketcher.hovering.y),t=this.getOptimumAngle(this.sketcher.hovering),s=this.sketcher.hovering,v=0;v<h;v++){i=t+(1===v%2?j.PI/3:0);q.x+=this.sketcher.specs.bondLength*j.cos(i);q.y-=this.sketcher.specs.bondLength*j.sin(i);for(var u=new c.Atom("C",q.x,q.y),w=Infinity,x,o=0,r=this.sketcher.molecules.length;o<r;o++){i=this.sketcher.molecules[o];l=0;for(n=i.atoms.length;l<n;l++){var y=i.atoms[l],z=y.distance(u);z<w&&(w=z,x=y)}}5>w?u=x:k.push(u);this.sketcher.bondExists(s,u)||p.push(new c.Bond(s,u)); +s=u}}else if(this.sketcher.hovering instanceof c.Bond)if(m=this.sketcher.hovering.a1,f.SHIFT){if(2<h&&9>h){l=this.sketcher.stateManager.STATE_NEW_RING.getOptimalRing(this.sketcher.hovering,h);h=this.sketcher.hovering.a2;n=this.sketcher.hovering.a1;i=this.sketcher.getMoleculeByAtom(h);l[0]===this.sketcher.hovering.a1&&(h=this.sketcher.hovering.a1,n=this.sketcher.hovering.a2);-1===i.atoms.indexof(l[1])&&k.push(l[1]);this.sketcher.bondExists(h,l[1])||p.push(new c.Bond(h,l[1]));o=2;for(r=l.length;o<r;o++)-1=== +i.atoms.indexof(l[o])&&k.push(l[o]),this.sketcher.bondExists(l[o-1],l[o])||p.push(new c.Bond(l[o-1],l[o]));this.sketcher.bondExists(l[l.length-1],n)||p.push(new c.Bond(l[l.length-1],n))}}else 0<h&&(4>h&&this.sketcher.hovering.bondOrder!==h)&&this.sketcher.historyManager.pushUndo(new e.ChangeBondAction(this.sketcher.hovering,h,c.Bond.STEREO_NONE));(0!==k.length||0!==p.length)&&this.sketcher.historyManager.pushUndo(new e.AddAction(this.sketcher,m,k,p))}}else if(65<=b.which&&90>=b.which&&this.sketcher.hovering)if(this.sketcher.hovering instanceof +c.Atom){m=String.fromCharCode(b.which);i=!1;l=0;for(n=d.length;l<n;l++)if(this.sketcher.hovering.label.charAt(0)===m)d[l]===this.sketcher.hovering.label?i=!0:d[l].charAt(0)===m&&(i&&!p?p=d[l]:k||(k=d[l]));else if(d[l].charAt(0)===m){k=d[l];break}u="C";p?u=p:k&&(u=k);u!==this.sketcher.hovering.label&&this.sketcher.historyManager.pushUndo(new e.ChangeLabelAction(this.sketcher.hovering,u))}else this.sketcher.hovering instanceof c.Bond&&70===b.which&&this.sketcher.historyManager.pushUndo(new e.FlipBondAction(this.sketcher.hovering)); +this.innerkeydown&&this.innerkeydown(b)};b.keypress=function(a){this.innerkeypress&&this.innerkeypress(a)};b.keyup=function(a){f.CANVAS_DRAGGING===this.sketcher&&this.sketcher.lastPoint&&(a.p=this.sketcher.lastPoint,this.sketcher.drag(a));this.innerkeyup&&this.innerkeyup(a)}})(ChemDoodle.math,ChemDoodle.monitor,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.structures,ChemDoodle.SYMBOLS,Math); +(function(a,f,e,b){b.AtomQueryState=function(a){this.setup(a)};a=b.AtomQueryState.prototype=new b._State;a.mode=b.AtomQueryState.MODE_ANY;a.innermouseup=function(){if(this.mode===b.AtomQueryState.MODE_ANY)this.sketcher.historyManager.pushUndo(new f.ToggleAnyAtomAction(this.sketcher.hovering));else if(this.mode===b.AtomQueryState.MODE_RGROUP){var a=this,d=this.sketcher.hovering;this.sketcher.dialogManager.inputDialog.doneFunction=function(b){b.match(/[0-9]|\-/g)&&a.sketcher.historyManager.pushUndo(new f.ChangeRgroupAction(d, +parseInt(b)))};this.sketcher.dialogManager.inputDialog.getElement().dialog("open")}};a.innermousemove=function(a){this.findHoveredObject(a,!0)};b.AtomQueryState.MODE_ANY=1;b.AtomQueryState.MODE_RGROUP=2})(ChemDoodle.structures,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.gui.DialogManager,ChemDoodle.sketcher.states); +(function(a,f){f.ChargeState=function(a){this.setup(a)};var e=f.ChargeState.prototype=new f._State;e.delta=1;e.innermouseup=function(){this.sketcher.hovering&&this.sketcher.historyManager.pushUndo(new a.ChangeChargeAction(this.sketcher.hovering,this.delta))};e.innermousemove=function(a){this.findHoveredObject(a,!0,!1)}})(ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states); +(function(a,f,e,b){f.EraseState=function(a){this.setup(a)};f=f.EraseState.prototype=new f._State;f.handleDelete=function(){if(this.sketcher.lasso&&this.sketcher.lasso.isActive())this.sketcher.historyManager.pushUndo(new a.DeleteContentAction(this.sketcher,this.sketcher.lasso.atoms,this.sketcher.lasso.shapes)),this.sketcher.lasso.empty();else if(this.sketcher.hovering){if(this.sketcher.hovering instanceof e.Atom)if(this.sketcher.oneMolecule){for(var c=this.sketcher.molecules[0],d=0,j=c.atoms.length;d< +j;d++)c.atoms[d].visited=!1;var g=[],f=[];this.sketcher.hovering.visited=!0;d=0;for(j=c.bonds.length;d<j;d++){var h=c.bonds[d];if(h.contains(this.sketcher.hovering)){var k=[],p=[],i=new e.Queue;for(i.enqueue(h.getNeighbor(this.sketcher.hovering));!i.isEmpty();)if(h=i.dequeue(),!h.visited){h.visited=!0;k.push(h);for(var l=0,n=c.bonds.length;l<n;l++){var o=c.bonds[l];o.contains(h)&&!o.getNeighbor(h).visited&&(i.enqueue(o.getNeighbor(h)),p.push(o))}}g.push(k);f.push(p)}}l=h=-1;d=0;for(j=g.length;d<j;d++)g[d].length> +h&&(l=d,h=g[d].length);if(-1<l){for(var d=[],j=[],r,k=0,p=c.atoms.length;k<p;k++)h=c.atoms[k],-1===g[l].indexOf(h)?d.push(h):r||(r=h);k=0;for(p=c.bonds.length;k<p;k++)h=c.bonds[k],-1===f[l].indexOf(h)&&j.push(h);this.sketcher.historyManager.pushUndo(new a.DeleteAction(this.sketcher,r,d,j))}else this.sketcher.historyManager.pushUndo(new a.ClearAction(this.sketcher))}else c=this.sketcher.getMoleculeByAtom(this.sketcher.hovering),this.sketcher.historyManager.pushUndo(new a.DeleteAction(this.sketcher, +c.atoms[0],[this.sketcher.hovering],c.getBonds(this.sketcher.hovering)));else this.sketcher.hovering instanceof e.Bond?(!this.sketcher.oneMolecule||!this.sketcher.hovering.ring)&&this.sketcher.historyManager.pushUndo(new a.DeleteAction(this.sketcher,this.sketcher.hovering.a1,void 0,[this.sketcher.hovering])):this.sketcher.hovering instanceof b._Shape&&this.sketcher.historyManager.pushUndo(new a.DeleteShapeAction(this.sketcher,this.sketcher.hovering));this.sketcher.hovering=void 0;this.sketcher.repaint()}k= +0;for(p=this.sketcher.shapes.length;k<p;k++)if(f=this.sketcher.shapes[k],f instanceof b.Pusher){g=r=!1;d=0;for(j=this.sketcher.molecules.length;d<j;d++){c=this.sketcher.molecules[d];l=0;for(n=c.atoms.length;l<n;l++)h=c.atoms[l],h===f.o1?r=!0:h===f.o2&&(g=!0);l=0;for(n=c.bonds.length;l<n;l++)h=c.bonds[l],h===f.o1?r=!0:h===f.o2&&(g=!0)}if(!r||!g)this.sketcher.historyManager.undoStack[this.sketcher.historyManager.undoStack.length-1].ss.push(f),this.sketcher.removeShape(f)}};f.innermouseup=function(){this.handleDelete()}; +f.innermousemove=function(a){this.findHoveredObject(a,!0,!0,!0)}})(ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.structures,ChemDoodle.structures.d2); +(function(a,f,e){e.LabelState=function(a){this.setup(a)};e=e.LabelState.prototype=new e._State;e.label="C";e.innermousedown=function(){this.newMolAllowed=!0};e.innermouseup=function(b){this.sketcher.hovering?this.label!==this.sketcher.hovering.label&&this.sketcher.historyManager.pushUndo(new f.ChangeLabelAction(this.sketcher.hovering,this.label)):!this.sketcher.oneMolecule&&this.newMolAllowed&&(this.sketcher.historyManager.pushUndo(new f.NewMoleculeAction(this.sketcher,[new a.Atom(this.label,b.p.x, +b.p.y)],[])),this.sketcher.isMobile||this.mousemove(b))};e.innermousemove=function(a){this.findHoveredObject(a,!0,!1)};e.innerdrag=function(){this.newMolAllowed=!1}})(ChemDoodle.structures,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states); +(function(a,f,e,b,c,d,j,g){d.LassoState=function(a){this.setup(a)};var m,h=!1;d=d.LassoState.prototype=new d._State;d.innerdrag=function(a){this.inDrag=!0;if(this.sketcher.lasso.isActive()&&m){if(this.sketcher.lastPoint)if(1===m){var d=new e.Point(a.p.x,a.p.y);d.sub(this.sketcher.lastPoint);if(this.parentAction){this.parentAction.dif.add(d);a=0;for(var i=this.parentAction.ps.length;a<i;a++)this.parentAction.ps[a].add(d);a=0;for(i=this.sketcher.molecules.length;a<i;a++)this.sketcher.molecules[a].check(); +this.sketcher.lasso.bounds.minX+=d.x;this.sketcher.lasso.bounds.maxX+=d.x;this.sketcher.lasso.bounds.minY+=d.y;this.sketcher.lasso.bounds.maxY+=d.y;this.sketcher.repaint()}else this.parentAction=new c.MoveAction(this.sketcher.lasso.getAllPoints(),d),this.sketcher.historyManager.pushUndo(this.parentAction)}else if(2===m)if(this.parentAction){d=this.parentAction.center;i=d.angle(this.sketcher.lastPoint);a=d.angle(a.p);var h=a-i;this.parentAction.dif+=h;a=0;for(i=this.parentAction.ps.length;a<i;a++){var j= +this.parentAction.ps[a],o=d.distance(j),r=d.angle(j)+h;j.x=d.x+o*g.cos(r);j.y=d.y-o*g.sin(r)}a=0;for(i=this.sketcher.molecules.length;a<i;a++)this.sketcher.molecules[a].check();this.sketcher.lasso.setBounds();this.sketcher.repaint()}else d=new e.Point((this.sketcher.lasso.bounds.minX+this.sketcher.lasso.bounds.maxX)/2,(this.sketcher.lasso.bounds.minY+this.sketcher.lasso.bounds.maxY)/2),i=d.angle(this.sketcher.lastPoint),a=d.angle(a.p),this.parentAction=new c.RotateAction(this.sketcher.lasso.getAllPoints(), +a-i,d),this.sketcher.historyManager.pushUndo(this.parentAction)}else if(this.sketcher.hovering){if(this.sketcher.lastPoint)if(d=new e.Point(a.p.x,a.p.y),d.sub(this.sketcher.lastPoint),this.parentAction){this.parentAction.dif.add(d);a=0;for(i=this.parentAction.ps.length;a<i;a++)this.parentAction.ps[a].add(d);a=0;for(i=this.sketcher.molecules.length;a<i;a++)this.sketcher.molecules[a].check();this.sketcher.repaint()}else this.sketcher.hovering instanceof e.Atom?i=f.SHIFT?[this.sketcher.hovering]:this.sketcher.getMoleculeByAtom(this.sketcher.hovering).atoms: +this.sketcher.hovering instanceof e.Bond?i=[this.sketcher.hovering.a1,this.sketcher.hovering.a2]:this.sketcher.hovering instanceof b._Shape&&(i=this.sketcher.hovering.hoverPoint?[this.sketcher.hovering.hoverPoint]:this.sketcher.hovering.getPoints()),this.parentAction=new c.MoveAction(i,d),this.sketcher.historyManager.pushUndo(this.parentAction)}else this.sketcher.lasso.addPoint(a.p),this.sketcher.repaint()};d.innermousedown=function(c){this.inDrag=!1;if(this.sketcher.lasso.isActive()&&!f.SHIFT){m= +void 0;var d=25/this.sketcher.specs.scale;a.isBetween(c.p.x,this.sketcher.lasso.bounds.minX,this.sketcher.lasso.bounds.maxX)&&a.isBetween(c.p.y,this.sketcher.lasso.bounds.minY,this.sketcher.lasso.bounds.maxY)?m=1:a.isBetween(c.p.x,this.sketcher.lasso.bounds.minX-d,this.sketcher.lasso.bounds.maxX+d)&&a.isBetween(c.p.y,this.sketcher.lasso.bounds.minY-d,this.sketcher.lasso.bounds.maxY+d)&&(m=2)}else this.sketcher.hovering||(this.sketcher.lastPoint=void 0,this.sketcher.lasso.addPoint(c.p),this.sketcher.repaint())}; +d.innermouseup=function(a){m||this.sketcher.hovering||this.sketcher.lasso.select();this.innermousemove(a)};d.innerclick=function(){if(!m&&!this.inDrag)if(this.sketcher.hovering){var a=[],c=[];this.sketcher.hovering instanceof e.Atom?a.push(this.sketcher.hovering):this.sketcher.hovering instanceof e.Bond?(a.push(this.sketcher.hovering.a1),a.push(this.sketcher.hovering.a2)):this.sketcher.hovering instanceof b._Shape&&c.push(this.sketcher.hovering);this.sketcher.lasso.select(a,c)}else this.sketcher.lasso.isActive()&& +this.sketcher.lasso.empty();m=void 0};d.innermousemove=function(c){if(this.sketcher.lasso.isActive()){if(!f.SHIFT){var d=!1,i=25/this.sketcher.specs.scale;if((!a.isBetween(c.p.x,this.sketcher.lasso.bounds.minX,this.sketcher.lasso.bounds.maxX)||!a.isBetween(c.p.y,this.sketcher.lasso.bounds.minY,this.sketcher.lasso.bounds.maxY))&&a.isBetween(c.p.x,this.sketcher.lasso.bounds.minX-i,this.sketcher.lasso.bounds.maxX+i)&&a.isBetween(c.p.y,this.sketcher.lasso.bounds.minY-i,this.sketcher.lasso.bounds.maxY+ +i))d=!0;d!=h&&(h=d,this.sketcher.repaint())}}else d=this.sketcher.lasso.mode!==j.Lasso.MODE_LASSO_SHAPES,this.findHoveredObject(c,d,d,!0)};d.innerdblclick=function(){this.sketcher.lasso.isActive()&&this.sketcher.lasso.empty()};d.draw=function(a){if(h&&this.sketcher.lasso.bounds){a.fillStyle="rgba(0,0,255,.1)";var c=25/this.sketcher.specs.scale,i=this.sketcher.lasso.bounds;a.beginPath();a.rect(i.minX-c,i.minY-c,i.maxX-i.minX+2*c,c);a.rect(i.minX-c,i.maxY,i.maxX-i.minX+2*c,c);a.rect(i.minX-c,i.minY, +c,i.maxY-i.minY);a.rect(i.maxX,i.minY,c,i.maxY-i.minY);a.fill()}}})(ChemDoodle.math,ChemDoodle.monitor,ChemDoodle.structures,ChemDoodle.structures.d2,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.sketcher.tools,Math); +(function(a,f){f.LonePairState=function(a){this.setup(a)};var e=f.LonePairState.prototype=new f._State;e.delta=1;e.innermouseup=function(){0>this.delta&&1>this.sketcher.hovering.numLonePair||this.sketcher.hovering&&this.sketcher.historyManager.pushUndo(new a.ChangeLonePairAction(this.sketcher.hovering,this.delta))};e.innermousemove=function(a){this.findHoveredObject(a,!0,!1)}})(ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states); +(function(a,f,e){f.MoveState=function(a){this.setup(a)};f=f.MoveState.prototype=new f._State;f.action=void 0;f.innerdrag=function(b){if(this.sketcher.hovering)if(this.action){b=new e.Point(b.p.x,b.p.y);b.sub(this.sketcher.lastPoint);this.action.dif.add(b);for(var c=0,d=this.action.ps.length;c<d;c++)this.action.ps[c].add(b);c=0;for(d=this.sketcher.molecules.length;c<d;c++)this.sketcher.molecules[c].check();this.sketcher.repaint()}else c=[],b=new e.Point(b.p.x,b.p.y),this.sketcher.hovering instanceof +e.Atom?(b.sub(this.sketcher.hovering),c[0]=this.sketcher.hovering):this.sketcher.hovering instanceof e.Bond&&(b.sub(this.sketcher.lastPoint),c[0]=this.sketcher.hovering.a1,c[1]=this.sketcher.hovering.a2),this.action=new a.MoveAction(c,b),this.sketcher.historyManager.pushUndo(this.action)};f.innermousemove=function(a){this.findHoveredObject(a,!0,!0)};f.innermouseup=function(){this.action=void 0}})(ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.structures); +(function(a,f,e,b,c){e.NewBondState=function(a){this.setup(a)};e=e.NewBondState.prototype=new e._State;e.bondOrder=1;e.stereo=b.Bond.STEREO_NONE;e.incrementBondOrder=function(a){this.newMolAllowed=!1;1===this.bondOrder&&this.stereo===b.Bond.STEREO_NONE?this.sketcher.historyManager.pushUndo(new f.ChangeBondAction(a)):a.bondOrder===this.bondOrder&&a.stereo===this.stereo?(1===a.bondOrder&&a.stereo!==b.Bond.STEREO_NONE||2===a.bondOrder&&a.stereo===b.Bond.STEREO_NONE)&&this.sketcher.historyManager.pushUndo(new f.FlipBondAction(a)): +this.sketcher.historyManager.pushUndo(new f.ChangeBondAction(a,this.bondOrder,this.stereo))};e.innerexit=function(){this.removeStartAtom()};e.innerdrag=function(d){this.newMolAllowed=!1;this.removeStartAtom();if(this.sketcher.hovering instanceof b.Atom){if(15>d.p.distance(this.sketcher.hovering)){var j=this.getOptimumAngle(this.sketcher.hovering);d=this.sketcher.hovering.x+this.sketcher.specs.bondLength*c.cos(j);j=this.sketcher.hovering.y-this.sketcher.specs.bondLength*c.sin(j);this.sketcher.tempAtom= +new b.Atom("C",d,j,0)}else{for(var g=1E3,e=0,h=this.sketcher.molecules.length;e<h;e++)for(var k=this.sketcher.molecules[e],f=0,i=k.atoms.length;f<i;f++){var l=k.atoms[f],n=l.distance(d.p);if(5>n&&(!j||n<g))j=l,g=n}j?this.sketcher.tempAtom=new b.Atom("C",j.x,j.y,0):a.ALT&&a.SHIFT?this.sketcher.tempAtom=new b.Atom("C",d.p.x,d.p.y,0):(j=this.sketcher.hovering.angle(d.p),d=this.sketcher.hovering.distance(d.p),a.SHIFT||(d=this.sketcher.specs.bondLength),a.ALT||(j=c.floor((j+c.PI/12)/(c.PI/6))*c.PI/6), +this.sketcher.tempAtom=new b.Atom("C",this.sketcher.hovering.x+d*c.cos(j),this.sketcher.hovering.y-d*c.sin(j),0))}e=0;for(h=this.sketcher.molecules.length;e<h;e++){k=this.sketcher.molecules[e];f=0;for(i=k.atoms.length;f<i;f++)l=k.atoms[f],5>l.distance(this.sketcher.tempAtom)&&(this.sketcher.tempAtom.x=l.x,this.sketcher.tempAtom.y=l.y,this.sketcher.tempAtom.isOverlap=!0)}this.sketcher.repaint()}};e.innerclick=function(a){!this.sketcher.hovering&&(!this.sketcher.oneMolecule&&this.newMolAllowed)&&(this.sketcher.historyManager.pushUndo(new f.NewMoleculeAction(this.sketcher, +[new b.Atom("C",a.p.x,a.p.y)],[])),this.sketcher.isMobile||this.mousemove(a))};e.innermousedown=function(a){this.newMolAllowed=!0;if(this.sketcher.hovering instanceof b.Atom)this.sketcher.hovering.isHover=!1,this.sketcher.hovering.isSelected=!0,this.drag(a);else if(this.sketcher.hovering instanceof b.Bond){this.sketcher.hovering.isHover=!1;this.incrementBondOrder(this.sketcher.hovering);a=0;for(var c=this.sketcher.molecules.length;a<c;a++)this.sketcher.molecules[a].check();this.sketcher.repaint()}}; +e.innermouseup=function(a){if(this.sketcher.tempAtom&&this.sketcher.hovering){var c=[],g=[],e=!0;if(this.sketcher.tempAtom.isOverlap){for(var h=0,k=this.sketcher.molecules.length;h<k;h++)for(var p=this.sketcher.molecules[h],i=0,l=p.atoms.length;i<l;i++){var n=p.atoms[i];5>n.distance(this.sketcher.tempAtom)&&(this.sketcher.tempAtom=n)}if(h=this.sketcher.getBond(this.sketcher.hovering,this.sketcher.tempAtom))this.incrementBondOrder(h),e=!1}else c.push(this.sketcher.tempAtom);e&&(g[0]=new b.Bond(this.sketcher.hovering, +this.sketcher.tempAtom,this.bondOrder),g[0].stereo=this.stereo,this.sketcher.historyManager.pushUndo(new f.AddAction(this.sketcher,g[0].a1,c,g)))}this.sketcher.tempAtom=void 0;this.sketcher.isMobile||this.mousemove(a)};e.innermousemove=function(a){this.sketcher.tempAtom||(this.findHoveredObject(a,!0,!0),this.sketcher.startAtom&&(this.sketcher.hovering?(this.sketcher.startAtom.x=-10,this.sketcher.startAtom.y=-10):(this.sketcher.startAtom.x=a.p.x,this.sketcher.startAtom.y=a.p.y)))};e.innermouseout= +function(){this.removeStartAtom()}})(ChemDoodle.monitor,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,ChemDoodle.structures,Math); +(function(a,f,e,b,c,d){b.NewRingState=function(a){this.setup(a)};b=b.NewRingState.prototype=new b._State;b.numSides=6;b.unsaturated=!1;b.getRing=function(a,b,e,h,k){var f=d.PI-2*d.PI/b;h+=f/2;for(var i=[],l=0;l<b-1;l++){var n=0===l?new c.Atom("C",a.x,a.y):new c.Atom("C",i[i.length-1].x,i[i.length-1].y);n.x+=e*d.cos(h);n.y-=e*d.sin(h);i.push(n);h+=d.PI+f}l=0;for(a=this.sketcher.molecules.length;l<a;l++){b=this.sketcher.molecules[l];e=0;for(h=b.atoms.length;e<h;e++)b.atoms[e].isOverlap=!1}l=0;for(a= +i.length;l<a;l++){for(var f=Infinity,o,n=0,r=this.sketcher.molecules.length;n<r;n++){b=this.sketcher.molecules[n];e=0;for(h=b.atoms.length;e<h;e++){var q=b.atoms[e].distance(i[l]);q<f&&(f=q,o=b.atoms[e])}}5>f&&(i[l]=o,k&&(o.isOverlap=!0))}return i};b.getOptimalRing=function(a,c){for(var b=d.PI/2-d.PI/c,h=a.a1.distance(a.a2),e=this.getRing(a.a1,c,h,a.a1.angle(a.a2)-b,!1),b=this.getRing(a.a2,c,h,a.a2.angle(a.a1)-b,!1),f=h=0,i=1,l=e.length;i<l;i++)for(var n=0,o=this.sketcher.molecules.length;n<o;n++)for(var r= +this.sketcher.molecules[n],q=0,t=r.atoms.length;q<t;q++)var s=r.atoms[q].distance(e[i]),v=r.atoms[q].distance(b[i]),h=h+d.min(1E8,1/(s*s)),f=f+d.min(1E8,1/(v*v));return h<f?e:b};b.innerexit=function(){this.removeStartAtom()};b.innerdrag=function(b){this.newMolAllowed=!1;this.removeStartAtom();if(this.sketcher.hovering instanceof c.Atom){var g=0,e=0;if(15>b.p.distance(this.sketcher.hovering))b=this.sketcher.getMoleculeByAtom(this.sketcher.hovering).getAngles(this.sketcher.hovering),g=0===b.length? +3*d.PI/2:a.angleBetweenLargest(b).angle,e=this.sketcher.specs.bondLength;else if(g=this.sketcher.hovering.angle(b.p),e=this.sketcher.hovering.distance(b.p),!f.ALT||!f.SHIFT)f.SHIFT||(e=this.sketcher.specs.bondLength),f.ALT||(g=d.floor((g+d.PI/12)/(d.PI/6))*d.PI/6);this.sketcher.tempRing=this.getRing(this.sketcher.hovering,this.numSides,e,g,!0);this.sketcher.repaint()}else if(this.sketcher.hovering instanceof c.Bond){g=a.distanceFromPointToLineInclusive(b.p,this.sketcher.hovering.a1,this.sketcher.hovering.a2); +if(-1!==g&&7>=g)b=this.getOptimalRing(this.sketcher.hovering,this.numSides);else{for(var e=d.PI/2-d.PI/this.numSides,h=this.sketcher.hovering.a1.distance(this.sketcher.hovering.a2),g=this.getRing(this.sketcher.hovering.a1,this.numSides,h,this.sketcher.hovering.a1.angle(this.sketcher.hovering.a2)-e,!1),e=this.getRing(this.sketcher.hovering.a2,this.numSides,h,this.sketcher.hovering.a2.angle(this.sketcher.hovering.a1)-e,!1),k=new c.Point,h=new c.Point,p=1,i=g.length;p<i;p++)k.add(g[p]),h.add(e[p]);k.x/= +g.length-1;k.y/=g.length-1;h.x/=e.length-1;h.y/=e.length-1;k=k.distance(b.p);h=h.distance(b.p);b=e;k<h&&(b=g)}g=1;for(e=b.length;g<e;g++)-1!==this.sketcher.getAllAtoms().indexOf(b[g])&&(b[g].isOverlap=!0);this.sketcher.tempRing=b;this.sketcher.repaint()}};b.innerclick=function(a){!this.sketcher.hovering&&(!this.sketcher.oneMolecule&&this.newMolAllowed)&&(this.sketcher.historyManager.pushUndo(new e.NewMoleculeAction(this.sketcher,[new c.Atom("C",a.p.x,a.p.y)],[])),this.sketcher.isMobile||this.mousemove(a))}; +b.innermousedown=function(a){this.newMolAllowed=!0;this.sketcher.hovering&&(this.sketcher.hovering.isHover=!1,this.sketcher.hovering.isSelected=!0,this.drag(a))};b.innermouseup=function(a){if(this.sketcher.tempRing&&this.sketcher.hovering){var b=[],d=[],h=this.sketcher.getAllAtoms();if(this.sketcher.hovering instanceof c.Atom){-1===h.indexOf(this.sketcher.tempRing[0])&&b.push(this.sketcher.tempRing[0]);this.sketcher.bondExists(this.sketcher.hovering,this.sketcher.tempRing[0])||d.push(new c.Bond(this.sketcher.hovering, +this.sketcher.tempRing[0]));for(var k=1,f=this.sketcher.tempRing.length;k<f;k++)-1===h.indexOf(this.sketcher.tempRing[k])&&b.push(this.sketcher.tempRing[k]),this.sketcher.bondExists(this.sketcher.tempRing[k-1],this.sketcher.tempRing[k])||d.push(new c.Bond(this.sketcher.tempRing[k-1],this.sketcher.tempRing[k],1===k%2&&this.unsaturated?2:1));this.sketcher.bondExists(this.sketcher.tempRing[this.sketcher.tempRing.length-1],this.sketcher.hovering)||d.push(new c.Bond(this.sketcher.tempRing[this.sketcher.tempRing.length- +1],this.sketcher.hovering,this.unsaturated?2:1))}else if(this.sketcher.hovering instanceof c.Bond){var k=this.sketcher.hovering.a2,i=this.sketcher.hovering.a1;this.sketcher.tempRing[0]===this.sketcher.hovering.a1&&(k=this.sketcher.hovering.a1,i=this.sketcher.hovering.a2);-1===h.indexOf(this.sketcher.tempRing[1])&&b.push(this.sketcher.tempRing[1]);this.sketcher.bondExists(k,this.sketcher.tempRing[1])||d.push(new c.Bond(k,this.sketcher.tempRing[1]));k=2;for(f=this.sketcher.tempRing.length;k<f;k++)-1=== +h.indexOf(this.sketcher.tempRing[k])&&b.push(this.sketcher.tempRing[k]),this.sketcher.bondExists(this.sketcher.tempRing[k-1],this.sketcher.tempRing[k])||d.push(new c.Bond(this.sketcher.tempRing[k-1],this.sketcher.tempRing[k],0===k%2&&this.unsaturated?2:1));this.sketcher.bondExists(this.sketcher.tempRing[this.sketcher.tempRing.length-1],i)||d.push(new c.Bond(this.sketcher.tempRing[this.sketcher.tempRing.length-1],i))}(0!==b.length||0!==d.length)&&this.sketcher.historyManager.pushUndo(new e.AddAction(this.sketcher, +d[0].a1,b,d));b=0;for(d=h.length;b<d;b++)h[b].isOverlap=!1}this.sketcher.tempRing=void 0;this.sketcher.isMobile||this.mousemove(a)};b.innermousemove=function(a){this.sketcher.tempAtom||(this.findHoveredObject(a,!0,!0),this.sketcher.startAtom&&(this.sketcher.hovering?(this.sketcher.startAtom.x=-10,this.sketcher.startAtom.y=-10):(this.sketcher.startAtom.x=a.p.x,this.sketcher.startAtom.y=a.p.y)))};b.innermouseout=function(){this.removeStartAtom()}})(ChemDoodle.math,ChemDoodle.monitor,ChemDoodle.sketcher.actions, +ChemDoodle.sketcher.states,ChemDoodle.structures,Math); +(function(a,f,e,b,c){c.PusherState=function(a){this.setup(a)};c=c.PusherState.prototype=new c._State;c.numElectron=1;c.innermousedown=function(){this.sketcher.hovering&&(this.start=this.sketcher.hovering)};c.innerdrag=function(a){this.start&&(this.end=new f.Point(a.p.x,a.p.y),this.findHoveredObject(a,!0,!0),this.sketcher.repaint())};c.innermouseup=function(){if(this.start&&this.sketcher.hovering&&this.sketcher.hovering!==this.start){for(var a,c=!1,g=0,f=this.sketcher.shapes.length;g<f;g++){var h= +this.sketcher.shapes[g];h instanceof e.Pusher&&(h.o1===this.start&&h.o2===this.sketcher.hovering?a=h:h.o2===this.start&&h.o1===this.sketcher.hovering&&(a=h,c=!0))}a?(c&&this.sketcher.historyManager.pushUndo(new b.DeleteShapeAction(this.sketcher,a)),this.end=this.start=void 0,this.sketcher.repaint()):(a=new e.Pusher(this.start,this.sketcher.hovering,this.numElectron),this.end=this.start=void 0,this.sketcher.historyManager.pushUndo(new b.AddShapeAction(this.sketcher,a)))}else this.end=this.start=void 0, +this.sketcher.repaint()};c.innermousemove=function(a){this.findHoveredObject(a,!0,!0);this.sketcher.repaint()};c.draw=function(c){if(this.start&&this.end){c.strokeStyle="#00FF00";c.fillStyle="#00FF00";c.lineWidth=1;var b=this.start instanceof f.Atom?this.start:this.start.getCenter(),e=this.end;this.sketcher.hovering&&this.sketcher.hovering!==this.start&&(e=this.sketcher.hovering instanceof f.Atom?this.sketcher.hovering:this.sketcher.hovering.getCenter());c.beginPath();c.moveTo(b.x,b.y);a.contextHashTo(c, +b.x,b.y,e.x,e.y,2,2);c.stroke()}}})(ChemDoodle.extensions,ChemDoodle.structures,ChemDoodle.structures.d2,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states); +(function(a,f){f.RadicalState=function(a){this.setup(a)};var e=f.RadicalState.prototype=new f._State;e.delta=1;e.innermouseup=function(){0>this.delta&&1>this.sketcher.hovering.numRadical||this.sketcher.hovering&&this.sketcher.historyManager.pushUndo(new a.ChangeRadicalAction(this.sketcher.hovering,this.delta))};e.innermousemove=function(a){this.findHoveredObject(a,!0,!1)}})(ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states); +(function(a,f,e,b,c,d,j,g){function m(a,c,i,b,d){b&&g.abs(b.t)===d&&(a.fillStyle="#885110",a.beginPath(),0<b.t?(a.moveTo(c,i),a.lineTo(c+6,i-6),a.lineTo(c+12,i)):(a.moveTo(c,i+6),a.lineTo(c+6,i+12),a.lineTo(c+12,i+6)),a.closePath(),a.fill());a.strokeStyle="blue";a.beginPath();a.moveTo(c,i);a.lineTo(c+6,i-6);a.lineTo(c+12,i);a.moveTo(c,i+6);a.lineTo(c+6,i+12);a.lineTo(c+12,i+6);a.stroke()}j.ShapeState=function(a){this.setup(a)};var h=j.ShapeState.prototype=new j._State;h.shapeType=j.ShapeState.LINE; +h.superDoubleClick=h.dblclick;h.dblclick=function(a){this.control||this.superDoubleClick(a)};h.innerexit=function(){this.shapeType=j.ShapeState.LINE;this.sketcher.repaint()};h.innermousemove=function(a){this.control=void 0;if(this.shapeType===j.ShapeState.BRACKET){for(var b=0,i=this.sketcher.shapes.length;b<i;b++){var d=this.sketcher.shapes[b];if(d instanceof c.Bracket){var h=g.min(d.p1.x,d.p2.x),e=g.max(d.p1.x,d.p2.x),m=g.min(d.p1.y,d.p2.y),q=g.max(d.p1.y,d.p2.y),t=[];t.push({x:e+5,y:m+15,v:1}); +t.push({x:e+5,y:q+15,v:2});t.push({x:h-17,y:(m+q)/2+15,v:3});h=0;for(e=t.length;h<e;h++)if(m=t[h],f.isBetween(a.p.x,m.x,m.x+12)&&f.isBetween(a.p.y,m.y-6,m.y)){this.control={s:d,t:m.v};break}else if(f.isBetween(a.p.x,m.x,m.x+12)&&f.isBetween(a.p.y,m.y+6,m.y+12)){this.control={s:d,t:-1*m.v};break}if(this.control)break}}this.sketcher.repaint()}};h.innermousedown=function(a){this.control?(this.sketcher.historyManager.pushUndo(new d.ChangeBracketAttributeAction(this.control.s,this.control.t)),this.sketcher.repaint()): +this.end=this.start=new b.Point(a.p.x,a.p.y)};h.innerdrag=function(a){this.end=new b.Point(a.p.x,a.p.y);if(this.shapeType===j.ShapeState.BRACKET){if(e.SHIFT){a=this.end.x-this.start.x;var c=this.end.y-this.start.y;0>a&&0<c?c*=-1:0<a&&0>c&&(a*=-1);var i=c;g.abs(a)<g.abs(c)&&(i=a);this.end.x=this.start.x+i;this.end.y=this.start.y+i}}else e.ALT||(a=this.start.angle(this.end),c=this.start.distance(this.end),e.ALT||(a=g.floor((a+g.PI/12)/(g.PI/6))*g.PI/6),this.end.x=this.start.x+c*g.cos(a),this.end.y= +this.start.y-c*g.sin(a));this.sketcher.repaint()};h.innermouseup=function(){if(this.start&&this.end){var a;5<this.start.distance(this.end)&&(this.shapeType>=j.ShapeState.LINE&&this.shapeType<=j.ShapeState.ARROW_EQUILIBRIUM?(a=new c.Line(this.start,this.end),this.shapeType===j.ShapeState.ARROW_SYNTHETIC?a.arrowType=c.Line.ARROW_SYNTHETIC:this.shapeType===j.ShapeState.ARROW_RETROSYNTHETIC?a.arrowType=c.Line.ARROW_RETROSYNTHETIC:this.shapeType===j.ShapeState.ARROW_RESONANCE?a.arrowType=c.Line.ARROW_RESONANCE: +this.shapeType===j.ShapeState.ARROW_EQUILIBRIUM&&(a.arrowType=c.Line.ARROW_EQUILIBRIUM)):this.shapeType===j.ShapeState.BRACKET&&(a=new c.Bracket(this.start,this.end)));this.end=this.start=void 0;a&&this.sketcher.historyManager.pushUndo(new d.AddShapeAction(this.sketcher,a))}};h.draw=function(b){if(this.start&&this.end)b.strokeStyle="#00FF00",b.fillStyle="#00FF00",b.lineWidth=1,b.beginPath(),b.moveTo(this.start.x,this.start.y),this.shapeType===j.ShapeState.BRACKET?(a.contextHashTo(b,this.start.x,this.start.y, +this.end.x,this.start.y,2,2),a.contextHashTo(b,this.end.x,this.start.y,this.end.x,this.end.y,2,2),a.contextHashTo(b,this.end.x,this.end.y,this.start.x,this.end.y,2,2),a.contextHashTo(b,this.start.x,this.end.y,this.start.x,this.start.y,2,2)):a.contextHashTo(b,this.start.x,this.start.y,this.end.x,this.end.y,2,2),b.stroke();else if(this.shapeType===j.ShapeState.BRACKET){b.lineWidth=2;b.lineJoin="miter";b.lineCap="butt";for(var d=0,i=this.sketcher.shapes.length;d<i;d++){var h=this.sketcher.shapes[d]; +if(h instanceof c.Bracket){var e=g.min(h.p1.x,h.p2.x),f=g.max(h.p1.x,h.p2.x),r=g.min(h.p1.y,h.p2.y),q=g.max(h.p1.y,h.p2.y),h=this.control&&this.control.s===h?this.control:void 0;m(b,f+5,r+15,h,1);m(b,f+5,q+15,h,2);m(b,e-17,(r+q)/2+15,h,3)}}}};j.ShapeState.LINE=1;j.ShapeState.ARROW_SYNTHETIC=2;j.ShapeState.ARROW_RETROSYNTHETIC=3;j.ShapeState.ARROW_RESONANCE=4;j.ShapeState.ARROW_EQUILIBRIUM=5;j.ShapeState.BRACKET=10})(ChemDoodle.extensions,ChemDoodle.math,ChemDoodle.monitor,ChemDoodle.structures,ChemDoodle.structures.d2, +ChemDoodle.sketcher.actions,ChemDoodle.sketcher.states,Math); +(function(a){a.StateManager=function(f){this.STATE_NEW_BOND=new a.NewBondState(f);this.STATE_NEW_RING=new a.NewRingState(f);this.STATE_CHARGE=new a.ChargeState(f);this.STATE_LONE_PAIR=new a.LonePairState(f);this.STATE_RADICAL=new a.RadicalState(f);this.STATE_MOVE=new a.MoveState(f);this.STATE_ERASE=new a.EraseState(f);this.STATE_LABEL=new a.LabelState(f);this.STATE_LASSO=new a.LassoState(f);this.STATE_SHAPE=new a.ShapeState(f);this.STATE_PUSHER=new a.PusherState(f);this.STATE_ATOM_QUERY=new a.AtomQueryState(f); +var e=this.STATE_NEW_BOND;this.setState=function(a){a!==e&&(e.exit(),e=a,e.enter())};this.getCurrentState=function(){return e}}})(ChemDoodle.sketcher.states); +ChemDoodle.sketcher.gui.imageDepot=function(){return{getURI:function(a){return"data:image/png;base64,"+a},ADD_LONE_PAIR:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAANElEQVR42mNgGAWjYHACGyB+DMTPgdiFDHkMAFL8H4qfkyFPewNtoApB2IMM+VEwCgYcAADjvBhZpYZJbQAAAABJRU5ErkJggg\x3d\x3d",ADD_RADICAL:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAL0lEQVR42mNgGAWjYGgAGyB+DMTPgdiFGgaCDPsPxc8HpYE2UINA2GM0BYyCoQAAdQgMLdlWmzIAAAAASUVORK5CYII\x3d",ANY_ELEMENT:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABF0lEQVR42u3TsUtCURSA8ZePCJcgqCFwEomGNoWgpCFwaHHIv6CpJYqoxSWScAhqMopQKIjIpsYWoUkahCxahKaGqAjB9qK+C/fB4fBI6L3xHfiBHrgfvqs6TjQ+M4QEmvZ14FnDBYp4wnjQYBzr2MAsYmE88g0WsBvWPQ7859AMfpASuxG7y4rdCjZRx47YT6Alg4d4xZYKfuNO3J0XnEQPo3Z/hZx3cBDPWERHBR9wi2UVNHOKPczhWn66PM7h4g1pEWwjg3f7XgaT+MQ9pmTwEgX7EznCvgqaqaKigmZOcCZjw+jag8YjXuydyeAYPnCsgiWUZXAJB+obN/+IeRU0s4qvfsEGplVwGzWfoGuf4M9gNMHmF6UIOpc0VqXrAAAAAElFTkSuQmCC", ARROW_DOWN:"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", -ARROW_RETROSYNTHETIC:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAYElEQVR42mNgGI5AhZqGKQDxbSA2oaahBrQ01ILahr4HYhtskv8pwF9xGUouAHn7MRA7UNNQG6hrPahtoA+1vPwc3XWURooPtZLNc2qFG8iw+9Q2zIFahQPV05zG0C59AY3IMME0CTYYAAAAAElFTkSuQmCC",ARROW_SYNTHETIC:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAUklEQVR42mNgGAWjgC5ABoh5qGmgAhD/B+I7QJwAxALUMPQg1NAHQPwdiPegG/6fipgssA+q+REQ/wDivUCcAsQi5EYKLAzJNgQ9UmRGE/tIBgDIaCG7b3KulAAAAABJRU5ErkJggg==",BENZENE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA5klEQVR42s2VPwrCMBSH06k0o1MX6R2c7A08hDfRRdDVgp5BR71GvUKdtHNvIMRf4FcoIdgkzeCDD0r+fLyQl1ch3GMmIkUOzuADDkBOEVWgA0ewABfQgjVIQkU5x/vMlqAGD1CGiFKwBS+QcSxhli2znpsyvVAZIh0r8AQ3UFiS0FnvuDczJ9XgW2++g4bSsVC/BiWPt+FxXSRqbEHmmZVyTvtvhTKmUMvesS+lYO0Fl01f2JWlsJvQws75UjpDnPL4Xk/PRdzLSjaGmo3Cq30Nxbp9XXlhXu3LJj6xwe6nNNigX8AXVupH9hGtsNcAAAAASUVORK5CYII=", -BOND_DOUBLE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAQUlEQVR42mNgoA7gZqAicADi+0DMRS3DXgGxPTVcim4YzKVUMwyZP2rYqGGjhg0Dw7ihpQRVDIMBLmoahsulZAEA2GgvCVlTJIIAAAAASUVORK5CYII=",BOND_DOUBLE_AMBIGUOUS:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAwElEQVR42q2UsQ2DQBAE38EnBDQAJUBGA6YM04UD3n1AYhdhMkqAHpw4owgkJNbSfuLw904aIZLV3t/tOWdTmTOsGnytRHPwATcLpxcwgYH/HZ0mVwALXY10WqWKtWADDVjBm+0nVUmxO79BadPT0UyxqzrVF4V+b1eoYg+wgyedymIH6FUhzzZ3C7GSA9jYplRxz2YOwCtxCn97VihBn+ioUfesZhYHZnNVEpDxSsQTNDKbJhe3o9PcGVR0WikiJ/j5KxJqecPNAAAAAElFTkSuQmCC", -BOND_PROTRUDING:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAl0lEQVR42mNgoAwEAHEDA5WAChC/B+L/1DCUBYivQw37Tw1Dl6MZRpGhBTgM+w3EFaQaZgPEn7EY9hiIPUg1TAaI72Mx7DAQK5ATCbuxGNYPxDzkhFs3lvCKoCTxIht2G4g1qJF4QXg9uV5ET7xkJQlciZesJIEr8ZKVJHAl3n5Kwgs58d6mJEmgR8J0SpIENq/yMAx7AADDzz/MOB6JagAAAABJRU5ErkJggg==",BOND_RECESSED:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAQUlEQVR42mNgGGQghJqGBQDxbyBOoaahCYPSUGyaYYYOI28y4PDm4IxNBmp6k2JAE28OPvAdiBuoaaALwyggBQAA+tATdpIiCMcAAAAASUVORK5CYII=",BOND_SINGLE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAMklEQVR42mNgGMSAm5qGOQDxfSDmopZhr4DYftSwUcNGDRs1jP6GcUPLM6oYBgNUKRwBiE8XjxDJvZUAAAAASUVORK5CYII=", -BOND_TRIPLE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAUUlEQVR42mNgoAxwM1AROADxfSDmopZhr4DYnhouRTeMIpdiM4xslxIyDOZSqhmGzB81bNSwATeMG5rCqWIYDHBR0zBiXUoW4KKmYbhcShIAAA2MPiFy45L3AAAAAElFTkSuQmCC",BROMINE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA3UlEQVR42mNgGAVUB8s0NDYu09T8D8LLNTVvA+lZKzQ1dSg18MRSTU2X5RoarUD2dyC+SKmBu+B8Tc0FQPx3prExK1UMXK6lNRPo2rNIFnQB1UwCikUs09K6DuQXEGXgQg0NYaCGGCD7xVItLX8kA5cD8R1QsADDOBZosCoxBv6F4v9AQxNR5CEGPl2kpydGkpdXqalJA+ksIH4AxLNRDASqITsMgV6yA7kUlnQoNhCYdBRABgINzqTEwINAA+SXq6ubANnrgfgfiE2Jgf+h+C0QrwSKBZMdhqNg4AEAUSSF6Clvq/4AAAAASUVORK5CYII=", -CALCULATE:"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", -CARBON:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA2klEQVR42mNgGAXYwMyZM1knTZqk1dvbK9vQ0MBEtkETJ06UmzBhwi4g/gXEn4D4L5R9jGTDQK4BanwPxNeArtP///8/4/z58zmAfFcg7iHZQKCmaUD8derUqRIUh9mqVauYgYb9ABlKlUiYPHmyItCw//39/QlUMRBokAPIQFB4UcXAvr4+XaiB4VQxsLu7mxtqYDPVEjM0/b0BJhk+qhgINMgQaOBvID4LS4fAXMIC5JsDw3gCuZFjBDTgPNT7n4H4O1DsApDuoMi1HR0d/MBsaAyiR0s22gMANJ6AxDvp00kAAAAASUVORK5CYII=",CHLORINE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA9klEQVR42mNgGAXIwPi/MavcZzkt5bfKsgz/GZiQ5RTeKyTIfZBLI8ogpXdKcgofFHbJf5D/BcSfgPgvlH0MpgbIXq7wUWEjQcNArgEqfg/E1xTfK+oDXcao8F+BA+gaV6BYD8kGAhVOA+KvCl8UJAioI8LA/wzMQIU/QIYSYTFhA4GKFIH4PyjAqWIg0CAHkIGg8KKKgTLvZHTBLvygEE4VA8VfiHODDATGcTNVDAR7G5L+3qi8VeGjioFA1xkCFf8G4rOwdAjELEDN5kA8gWQDoYqNgPg82Psf5D8D8XcgvgB0fQdZBiJlQX5gjBuD6NGSjX4AAER4jBfAQ3QdAAAAAElFTkSuQmCC", -CLEAR:"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", +ARROW_EQUILIBRIUM:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAV0lEQVR42mNgGAXDArBQ28AKIL4GxAFAzEMtF/6H4s9AfBKIq4DYBFnRfyrhx0Mj1h5T0ctwYADERUB8FYh/APEvqAKqxCIHEHsA8Xkgbhj0iXgUDAAAAG9tMdQezXJsAAAAAElFTkSuQmCC",ARROW_RESONANCE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAWUlEQVR42mNgGAWjYPACFiBWwSOvAcQc+AzgAWIXIJ4BxP+h2AOPehMkdduAuAiIbaDmMNQgSVIDo7hwERkuPADEFUDsAHMhriBwgIYlNgDynshoUhsFVAIA/dMiIBsQRGUAAAAASUVORK5CYII\x3d",ARROW_RETROSYNTHETIC:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAYElEQVR42mNgGI5AhZqGKQDxbSA2oaahBrQ01ILahr4HYhtskv8pwF9xGUouAHn7MRA7UNNQG6hrPahtoA+1vPwc3XWURooPtZLNc2qFG8iw+9Q2zIFahQPV05zG0C59AY3IMME0CTYYAAAAAElFTkSuQmCC", +ARROW_SYNTHETIC:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAUklEQVR42mNgGAWjgC5ABoh5qGmgAhD/B+I7QJwAxALUMPQg1NAHQPwdiPegG/6fipgssA+q+REQ/wDivUCcAsQi5EYKLAzJNgQ9UmRGE/tIBgDIaCG7b3KulAAAAABJRU5ErkJggg\x3d\x3d",BENZENE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA5klEQVR42s2VPwrCMBSH06k0o1MX6R2c7A08hDfRRdDVgp5BR71GvUKdtHNvIMRf4FcoIdgkzeCDD0r+fLyQl1ch3GMmIkUOzuADDkBOEVWgA0ewABfQgjVIQkU5x/vMlqAGD1CGiFKwBS+QcSxhli2znpsyvVAZIh0r8AQ3UFiS0FnvuDczJ9XgW2++g4bSsVC/BiWPt+FxXSRqbEHmmZVyTvtvhTKmUMvesS+lYO0Fl01f2JWlsJvQws75UjpDnPL4Xk/PRdzLSjaGmo3Cq30Nxbp9XXlhXu3LJj6xwe6nNNigX8AXVupH9hGtsNcAAAAASUVORK5CYII\x3d", +BOND_DOUBLE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAQUlEQVR42mNgoA7gZqAicADi+0DMRS3DXgGxPTVcim4YzKVUMwyZP2rYqGGjhg0Dw7ihpQRVDIMBLmoahsulZAEA2GgvCVlTJIIAAAAASUVORK5CYII\x3d",BOND_DOUBLE_AMBIGUOUS:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAwElEQVR42q2UsQ2DQBAE38EnBDQAJUBGA6YM04UD3n1AYhdhMkqAHpw4owgkJNbSfuLw904aIZLV3t/tOWdTmTOsGnytRHPwATcLpxcwgYH/HZ0mVwALXY10WqWKtWADDVjBm+0nVUmxO79BadPT0UyxqzrVF4V+b1eoYg+wgyedymIH6FUhzzZ3C7GSA9jYplRxz2YOwCtxCn97VihBn+ioUfesZhYHZnNVEpDxSsQTNDKbJhe3o9PcGVR0WikiJ/j5KxJqecPNAAAAAElFTkSuQmCC", +BOND_HALF:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAYklEQVR42mNgGAVkAA8g3k4tw0yA+DXUUIqBC9SwGGq57jYQ+1Az7FioYYgCtQwCAQMgvg/EKtQy7DG1YtMB6jKqRUAFtVxGVeBATVeBIuA5tcIMFptUMUyH2rHJAXXh4AIAvQ0O0wCO68MAAAAASUVORK5CYII\x3d",BOND_PROTRUDING:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAl0lEQVR42mNgoAwEAHEDA5WAChC/B+L/1DCUBYivQw37Tw1Dl6MZRpGhBTgM+w3EFaQaZgPEn7EY9hiIPUg1TAaI72Mx7DAQK5ATCbuxGNYPxDzkhFs3lvCKoCTxIht2G4g1qJF4QXg9uV5ET7xkJQlciZesJIEr8ZKVJHAl3n5Kwgs58d6mJEmgR8J0SpIENq/yMAx7AADDzz/MOB6JagAAAABJRU5ErkJggg\x3d\x3d", +BOND_RECESSED:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAQUlEQVR42mNgGGQghJqGBQDxbyBOoaahCYPSUGyaYYYOI28y4PDm4IxNBmp6k2JAE28OPvAdiBuoaaALwyggBQAA+tATdpIiCMcAAAAASUVORK5CYII\x3d",BOND_RESONANCE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAfUlEQVR42mNgoA7gZqAicADi+0DMRS3DXgGx/aA3zAOIt1PLMBMgfg01lGLDXKCGxVArzG4DsQ81I4CFGoYpkGsQNsMMoIlYhVqGPaZWbMKyF9UioIJaLqNqdnIg11W4IuA5uWHGDQ1w9Nj0ocS7sMJRh5LYxAY4oC4kGwAAJbAmYdoaIPoAAAAASUVORK5CYII\x3d",BOND_SINGLE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAMklEQVR42mNgGMSAm5qGOQDxfSDmopZhr4DYftSwUcNGDRs1jP6GcUPLM6oYBgNUKRwBiE8XjxDJvZUAAAAASUVORK5CYII\x3d", +BOND_TRIPLE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAUUlEQVR42mNgoAxwM1AROADxfSDmopZhr4DYnhouRTeMIpdiM4xslxIyDOZSqhmGzB81bNSwATeMG5rCqWIYDHBR0zBiXUoW4KKmYbhcShIAAA2MPiFy45L3AAAAAElFTkSuQmCC",BOND_ZERO:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAH0lEQVR42mNgGAVkgPtQPHgNHA2z0TAbDbPRMBsAAADVkQ3x7nq43wAAAABJRU5ErkJggg\x3d\x3d",BROMINE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA3UlEQVR42mNgGAVUB8s0NDYu09T8D8LLNTVvA+lZKzQ1dSg18MRSTU2X5RoarUD2dyC+SKmBu+B8Tc0FQPx3prExK1UMXK6lNRPo2rNIFnQB1UwCikUs09K6DuQXEGXgQg0NYaCGGCD7xVItLX8kA5cD8R1QsADDOBZosCoxBv6F4v9AQxNR5CEGPl2kpydGkpdXqalJA+ksIH4AxLNRDASqITsMgV6yA7kUlnQoNhCYdBRABgINzqTEwINAA+SXq6ubANnrgfgfiE2Jgf+h+C0QrwSKBZMdhqNg4AEAUSSF6Clvq/4AAAAASUVORK5CYII\x3d", +CALCULATE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAKQ2lDQ1BJQ0MgUHJvZmlsZQAAeAGdlndUU1kTwO97L73QEkKREnoNTUoAkRJ6kV5FJSQBQgkYErBXRAVXFBVpiiKLIi64uhRZK6JYWBQUsC/IIqCsi6uIimVf9Bxl/9j9vrPzx5zfmztz79yZuec8ACi+gUJRJqwAQIZIIg7z8WDGxMYx8d0ABkSAA9YAcHnZWUHh3hEAFT8vDjMbdZKxTKDP+nX/F7jF8g1hMj+b/n+lyMsSS9CdQtCQuXxBNg/lPJTTcyVZMvskyvTENBnDGBmL0QRRVpVx8hc2/+zzhd1kzM8Q8VEfWc5Z/Ay+jDtQ3pIjFaCMBKKcnyMU5KJ8G2X9dGmGEOU3KNMzBNxsADAUmV0i4KWgbIUyRRwRxkF5HgAESvIsTpzFEsEyNE8AOJlZy8XC5BQJ05hnwrR2dGQzfQW56QKJhBXC5aVxxXwmJzMjiytaDsCXO8uigJKstky0yPbWjvb2LBsLtPxf5V8Xv3r9O8h6+8XjZejnnkGMrm+2b7HfbJnVALCn0Nrs+GZLLAOgZRMAqve+2fQPACCfB0DzjVn3YcjmJUUiyXKytMzNzbUQCngWsoJ+lf/p8NXzn2HWeRay877WjukpSOJK0yVMWVF5memZUjEzO4vLEzBZfxtidOv/HDgrrVl5mIcJkgRigQg9KgqdMqEoGW23iC+UCDNFTKHonzr8H8Nm5SDDL3ONAq3mI6AvsQAKN+gA+b0LYGhkgMTvR1egr30LJEYB2cuL1h79Mvcoo+uf9d8UXIR+wtnCZKbMzAmLYPKk4hwZo29CprCABOQBHagBLaAHjAEL2AAH4AzcgBfwB8EgAsSCxYAHUkAGEINcsAqsB/mgEOwAe0A5qAI1oA40gBOgBZwGF8BlcB3cBH3gPhgEI+AZmASvwQwEQXiICtEgNUgbMoDMIBuIDc2HvKBAKAyKhRKgZEgESaFV0EaoECqGyqGDUB30I3QKugBdhXqgu9AQNA79Cb2DEZgC02FN2BC2hNmwOxwAR8CL4GR4KbwCzoO3w6VwNXwMboYvwNfhPngQfgZPIQAhIwxEB2EhbISDBCNxSBIiRtYgBUgJUo00IG1IJ3ILGUQmkLcYHIaGYWJYGGeMLyYSw8MsxazBbMOUY45gmjEdmFuYIcwk5iOWitXAmmGdsH7YGGwyNhebjy3B1mKbsJewfdgR7GscDsfAGeEccL64WFwqbiVuG24frhF3HteDG8ZN4fF4NbwZ3gUfjOfiJfh8fBn+GP4cvhc/gn9DIBO0CTYEb0IcQUTYQCghHCWcJfQSRgkzRAWiAdGJGEzkE5cTi4g1xDbiDeIIcYakSDIiuZAiSKmk9aRSUgPpEukB6SWZTNYlO5JDyULyOnIp+Tj5CnmI/JaiRDGlcCjxFCllO+Uw5TzlLuUllUo1pLpR46gS6nZqHfUi9RH1jRxNzkLOT44vt1auQq5ZrlfuuTxR3kDeXX6x/Ar5EvmT8jfkJxSICoYKHAWuwhqFCoVTCgMKU4o0RWvFYMUMxW2KRxWvKo4p4ZUMlbyU+Ep5SoeULioN0xCaHo1D49E20mpol2gjdBzdiO5HT6UX0n+gd9MnlZWUbZWjlJcpVyifUR5kIAxDhh8jnVHEOMHoZ7xT0VRxVxGobFVpUOlVmVado+qmKlAtUG1U7VN9p8ZU81JLU9up1qL2UB2jbqoeqp6rvl/9kvrEHPoc5zm8OQVzTsy5pwFrmGqEaazUOKTRpTGlqaXpo5mlWaZ5UXNCi6HlppWqtVvrrNa4Nk17vrZQe7f2Oe2nTGWmOzOdWcrsYE7qaOj46kh1Dup068zoGulG6m7QbdR9qEfSY+sl6e3Wa9eb1NfWD9JfpV+vf8+AaMA2SDHYa9BpMG1oZBhtuNmwxXDMSNXIz2iFUb3RA2OqsavxUuNq49smOBO2SZrJPpObprCpnWmKaYXpDTPYzN5MaLbPrMcca+5oLjKvNh9gUVjurBxWPWvIgmERaLHBosXiuaW+ZZzlTstOy49WdlbpVjVW962VrP2tN1i3Wf9pY2rDs6mwuT2XOtd77tq5rXNf2JrZCmz3296xo9kF2W22a7f7YO9gL7ZvsB930HdIcKh0GGDT2SHsbewrjlhHD8e1jqcd3zrZO0mcTjj94cxyTnM+6jw2z2ieYF7NvGEXXReuy0GXwfnM+QnzD8wfdNVx5bpWuz5203Pju9W6jbqbuKe6H3N/7mHlIfZo8pjmOHFWc857Ip4+ngWe3V5KXpFe5V6PvHW9k73rvSd97HxW+pz3xfoG+O70HfDT9OP51flN+jv4r/bvCKAEhAeUBzwONA0UB7YFwUH+QbuCHiwwWCBa0BIMgv2CdwU/DDEKWRrycyguNCS0IvRJmHXYqrDOcFr4kvCj4a8jPCKKIu5HGkdKI9uj5KPio+qipqM9o4ujB2MsY1bHXI9VjxXGtsbh46LiauOmFnot3LNwJN4uPj++f5HRomWLri5WX5y++MwS+SXcJScTsAnRCUcT3nODudXcqUS/xMrESR6Ht5f3jO/G380fF7gIigWjSS5JxUljyS7Ju5LHU1xTSlImhBxhufBFqm9qVep0WnDa4bRP6dHpjRmEjISMUyIlUZqoI1Mrc1lmT5ZZVn7W4FKnpXuWTooDxLXZUPai7FYJHf2Z6pIaSzdJh3Lm51TkvMmNyj25THGZaFnXctPlW5ePrvBe8f1KzEreyvZVOqvWrxpa7b764BpoTeKa9rV6a/PWjqzzWXdkPWl92vpfNlhtKN7wamP0xrY8zbx1ecObfDbV58vli/MHNjtvrtqC2SLc0r117tayrR8L+AXXCq0KSwrfb+Ntu/ad9Xel333anrS9u8i+aP8O3A7Rjv6drjuPFCsWryge3hW0q3k3c3fB7ld7luy5WmJbUrWXtFe6d7A0sLS1TL9sR9n78pTyvgqPisZKjcqtldP7+Pt697vtb6jSrCqsendAeODOQZ+DzdWG1SWHcIdyDj2piarp/J79fV2tem1h7YfDosODR8KOdNQ51NUd1ThaVA/XS+vHj8Ufu/mD5w+tDayGg42MxsLj4Lj0+NMfE37sPxFwov0k+2TDTwY/VTbRmgqaoeblzZMtKS2DrbGtPaf8T7W3Obc1/Wzx8+HTOqcrziifKTpLOpt39tO5Feemzmedn7iQfGG4fUn7/YsxF293hHZ0Xwq4dOWy9+WLne6d5664XDl91enqqWvsay3X7a83d9l1Nf1i90tTt3138w2HG603HW+29czrOdvr2nvhluety7f9bl/vW9DX0x/Zf2cgfmDwDv/O2N30uy/u5dybub/uAfZBwUOFhyWPNB5V/2rya+Og/eCZIc+hrsfhj+8P84af/Zb92/uRvCfUJyWj2qN1YzZjp8e9x28+Xfh05FnWs5mJ/N8Vf698bvz8pz/c/uiajJkceSF+8enPbS/VXh5+ZfuqfSpk6tHrjNcz0wVv1N4cect+2/ku+t3oTO57/PvSDyYf2j4GfHzwKePTp78AA5vz/OzO54oAAAAJcEhZcwAACxMAAAsTAQCanBgAAAMtSURBVDgRnVXNTxNREP+1W6gW2oUKWNs0fAQUqCGNGjDB3iSmNhFJuPMHYLx5lpB4IRylV1M9E+RgbBMPJBpDxA8kNhUUAaUpFWiXtFDK9sM3D3ezS/HiJG/fvDczv52ZN2+eoVwugygcDntFUZwRBKHFZDJBO0guyzKOjo5weHiIdDqN1dVVKRaLDQWDwTmSK2RSmL29vYctjASjEaViEVarFbU2GywWC1fJZDLY2dkBzTTMZnNdIpF4woStCgbNKuDW1lZdh8eLdMmGz0sSFr/8QokpGGqM6Lokotldi5exLPL7VhQOrLiYe0WethCIlozKIpfLodEuQigbcPO6A5Yzx/9qEM0Y6nfBUiXgVncjVy+xNIn288jn84q5OquAtCMXSnj9dRtL39K40l3PlXw9DYh8TGLmUwLXmuv4XpNYjY4LZ1EqUQx60gH+TO1z6fJ6Blc9ds53tdrw4Xua8wdyETVmAXd6m7ASP9bVwwE6wGLx+I+7Uh40Ht3vQeTdlmoTjv7Gg0AbD/9HIqPuaxn1UGjzXJUMp0VGub6MNwtxvF1MwlRbjU5XLQqmIjvdLIIvliBLaTRV7WhxVF4HKBiAy4159DQZYGcHVGe3w8ZKhyiVSiEej2NtLYGN7AZSKKogWkYHSILHU1NgNYnbfj96+/owNjbG9YeHh8EKH6FQiK/b2tr4fPKjy+FJ4f+sKzy8NzoKo4FCtvOQp6enOa4S8sjICDY2WMgsBadRBeD27212X3Psihg4YDQa5XYULhUyu1GQJAlFdj1PowrA0LOn3JBymGfNYGJigtsFAgE4HA5EIhG+/lcOKwDb29uRzWbhdDrR2NAAj8fDAdxuN+84p3ml3asAvDs4qMvh+Pg416eczc/Pa21P5VVApS8+n53lHt7o74fX68Xk5CQ39Pl8OgC6x4qNVqACUuOkRK+srPDQPN3d2Gb9TzkU1ip5DsmY9Kgnks1JUgFZKUgL7xfQ1dnJGywpb25uYmBggNuQR1QuLpeL35jl5WXs7u6unwQ0KG77/X5vMpmcYSXBnwD2FMDIujcNIvKKRqFQ4BGwWWK2Q6xrz3GFv58/Du1jSFDkv4UAAAAASUVORK5CYII\x3d", +CARBON:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA2klEQVR42mNgGAXYwMyZM1knTZqk1dvbK9vQ0MBEtkETJ06UmzBhwi4g/gXEn4D4L5R9jGTDQK4BanwPxNeArtP///8/4/z58zmAfFcg7iHZQKCmaUD8derUqRIUh9mqVauYgYb9ABlKlUiYPHmyItCw//39/QlUMRBokAPIQFB4UcXAvr4+XaiB4VQxsLu7mxtqYDPVEjM0/b0BJhk+qhgINMgQaOBvID4LS4fAXMIC5JsDw3gCuZFjBDTgPNT7n4H4O1DsApDuoMi1HR0d/MBsaAyiR0s22gMANJ6AxDvp00kAAAAASUVORK5CYII\x3d",CHARGE_BRACKET:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAYUlEQVR42mNgGAnACYhF0AX/Q3EDDk0NSGrQwUogNsZmIDEApk4MiOWheAsQ+yLxyTJwIhBfgOIPQHwLiU+WgVT3Mk0NlAZiDkoNXAjEz3Bgil1IkcJRA4e6geSWNkMMAAAxJTQf078zGQAAAABJRU5ErkJggg\x3d\x3d", +CHLORINE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA9klEQVR42mNgGAXIwPi/MavcZzkt5bfKsgz/GZiQ5RTeKyTIfZBLI8ogpXdKcgofFHbJf5D/BcSfgPgvlH0MpgbIXq7wUWEjQcNArgEqfg/E1xTfK+oDXcao8F+BA+gaV6BYD8kGAhVOA+KvCl8UJAioI8LA/wzMQIU/QIYSYTFhA4GKFIH4PyjAqWIg0CAHkIGg8KKKgTLvZHTBLvygEE4VA8VfiHODDATGcTNVDAR7G5L+3qi8VeGjioFA1xkCFf8G4rOwdAjELEDN5kA8gWQDoYqNgPg82Psf5D8D8XcgvgB0fQdZBiJlQX5gjBuD6NGSjX4AAER4jBfAQ3QdAAAAAElFTkSuQmCC",CLEAR:"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\x3d\x3d", CYCLOBUTANE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAiklEQVR42q3UwQ2AIAwF0E7hOv4bTCN7uwIXG0MTYgRa2iYNF3lB+ECkr4MCK3NX7hSBgfvmvtp4RmCCnB4Ug8lbKBaTTCiUH6tQGH9nimJzw3/R7IyEoEluQG0581RpzlvJuUL0KyRnaKd7b0VVB6lFTalYoVsRG6HwHOAXRcQTJmiJwPqcql7sB1sQMyMuYZLDAAAAAElFTkSuQmCC",CYCLOHEPTANE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA+UlEQVR42mNgIB4IMFABMAOxJxCvAeK/QLwAiA3IMUgTiDuB+CkQnwDiDCBWAuIKIH4ExIeAOASIWfAZIgzEmUB8EmpQBxBr4HA1yLCDUMMrgVgcXREPEP8D4pVA7AHVRAzQB+J5UL08yBKKQPyQgrAGuVQBWcARiA9QYCDI+w7IAonQGCQXLATiBGSBRiBuoMBADP0YNpAIMHyIEQYkAow4wIglEgFKKuGFpiMTCgw0gZrBCxMIgdogQYZhElC9IegS1dB8y0GCYRzQrFqNS8FSKCYWLCOkngPqymoiDKsh1kewMAnCoyaY1DA3BOL/BLAhqbHHRY4cAH9nN15emqC1AAAAAElFTkSuQmCC", -CYCLOHEXANE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAoElEQVR42mNgIB4IMVAJSADxZCD+A8StQMxFiUH9QPwWiPuA2AiIlwLxYyCOAWJGcg2SQJO3AOITQHwSiC0pMQgZMEJd+Rjqall0BZxA/J8Ig9ABKDwboXo50SX/UxBx/4kWHDVw1EDcemEJu5+aCVsCmlPeEmEwwaxHisGW0ILhBLSgIKn4QjYYVHwtA+JHpBZf2AyeBC1gWygpYMmqAgB+TzRkG9cEtwAAAABJRU5ErkJggg==",CYCLOOCTANE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABBElEQVR42q2UvQ6CMBSFSXS1g4PRzVUXeRGdHH0KWfQlINGB1VcgzJLokxB2B3dIPDWnSYO1QutJvkB/ONxL7yUIumsU/EFLEIECNCAHOyC6GozBBqSgJPJ+DaY0y8CTVzme2MxkFFewBwvLiwXNcj4zM23a0KyvLuBgWkgZWV+FoAKD9kL5I02b7mDbPs3Soxqk2U2fiJiyq4ZMe6UmCpaGj448oHcHNKwz3yao1UB1gI8ScFID1QGuktk99CwF20l4RBe3JzPHtD+i09POHQzPpugC/jUaHn3YMbIzT3b+bdOMjV5p7TQ0GCVMM7aZ6Rpo7VSxaJctI+e6XfEz1Kwzq9ELFZA4hr9lYwQAAAAASUVORK5CYII=", -CYCLOPENTANE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA0klEQVR42mNgIB6IMFAJMAFxKRD/BuI0Sg1TAeJDUOwOxFeBeAEQc5Hjqnwgfg3EeUDMCBUHGTQfarAWOa5SxqEmHohfAXECOa7CBbTwBYEWEa7CBpCDwAAmKAjEf6ExyUhm5KUD8R8gFoAJ7AHiIApSA0jvbmSBHKjTyQUgvdnIAvJA/BIaMeQksZdQM1DAJSC2IMNAS6heDNAKxaQCnPpw2kQA4PQZzrDAAwiGPUZsEQCg1DGPUHraQYKBOwmlXx4g/k8i5iFkKxsJLmRjoDUAAID6NQMa+if+AAAAAElFTkSuQmCC",CYCLOPROPANE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAjElEQVR42mNgGE5AgZqGiQDxfyCWoJaBk4H4ORBPp4ZhGkB8G4h5gPg6EBtQauB2IA6Asj2AeD8Qs5BrGDYDkC0gCbDg8CIsCDhINbAATySAIqmC1GRyH08yISRPlgsKiE1GxIYRC7HJiJRYJJiMyElnOB3AQmZOwBlEBRTkVYxIlICWJpRimcFfCgMA4CwtbAP2SjIAAAAASUVORK5CYII=", -DECREASE_CHARGE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAs0lEQVR42mNgGAU4gAAQK0BpsgELEGcA8WUg/g3E/6H4NhCXQOVJMmw/EL8G4gYgdoC60AKIK4D4ORAfB2IeYg07DMT3gVgFhxoZID4PNZSDkIE5UJepEFAnA3VpCSEDL0O9SQyogIYp3tj8DQ0zUPhI4sE80DD9jy/2FaAKFKCu/I8H16Opp48LqR6GNIllWDq8jidsZKBqiEqHyIZSJacgG5oDdSly7N6HepNjwEubwQEAQdI454gPA8EAAAAASUVORK5CYII=",ERASE:"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", -FLUORINE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAUElEQVR42mNgGAU0AxPuB26c8CDgPxr+SqmBpyc+DDCG4UkP/AwpNXAvtb08+A38A8SfYbj/ob8LpQae6Hvoqw3DU1+F8oxGygAaOAoGDgAAN7dbSHln+I0AAAAASUVORK5CYII=",HYDROGEN:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAANElEQVR42mNgGAW0BBuBeC8W8SIg/jtqINEGngBiTTTcSYmB/4D4Jxr+Mxopw8jAUTBAAADIhCT11Q14ZwAAAABJRU5ErkJggg==",INCREASE_CHARGE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAyklEQVR42mNgGAU4gAAQK0BpsgELEGcA8WUg/g3E/6H4NhCXQOVJMmw/EL8G4gYgdoC60AKIK4D4ORAfB2IeYg07DMT3gVgFKsYDNRhmgAwQn4caykHIwByoy1SQxCSh3pVEEpOBurSEkIGXoa5hIGAgA9T7twnF5m9omPFADQBhA6iBBkhiPNAw/Y8v9hWgChSgrvyPB9ejqaePC6kehjSJZVg6vI4UNjzQMENOh4eJTYfIhlIlpyAbmgN1KXLs3od6k2PAS5vBAQCFSEECjKrjagAAAABJRU5ErkJggg==", -IODINE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAI0lEQVR42mNgGAV0AVMYpmyeyjB196iBowaOGkhXA0cBfQEADcspQU08dAAAAAAASUVORK5CYII=",LASSO:"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", +CYCLOHEXANE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAoElEQVR42mNgIB4IMVAJSADxZCD+A8StQMxFiUH9QPwWiPuA2AiIlwLxYyCOAWJGcg2SQJO3AOITQHwSiC0pMQgZMEJd+Rjqall0BZxA/J8Ig9ABKDwboXo50SX/UxBx/4kWHDVw1EDcemEJu5+aCVsCmlPeEmEwwaxHisGW0ILhBLSgIKn4QjYYVHwtA+JHpBZf2AyeBC1gWygpYMmqAgB+TzRkG9cEtwAAAABJRU5ErkJggg\x3d\x3d",CYCLOOCTANE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABBElEQVR42q2UvQ6CMBSFSXS1g4PRzVUXeRGdHH0KWfQlINGB1VcgzJLokxB2B3dIPDWnSYO1QutJvkB/ONxL7yUIumsU/EFLEIECNCAHOyC6GozBBqSgJPJ+DaY0y8CTVzme2MxkFFewBwvLiwXNcj4zM23a0KyvLuBgWkgZWV+FoAKD9kL5I02b7mDbPs3Soxqk2U2fiJiyq4ZMe6UmCpaGj448oHcHNKwz3yao1UB1gI8ScFID1QGuktk99CwF20l4RBe3JzPHtD+i09POHQzPpugC/jUaHn3YMbIzT3b+bdOMjV5p7TQ0GCVMM7aZ6Rpo7VSxaJctI+e6XfEz1Kwzq9ELFZA4hr9lYwQAAAAASUVORK5CYII\x3d", +CYCLOPENTANE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA0klEQVR42mNgIB6IMFAJMAFxKRD/BuI0Sg1TAeJDUOwOxFeBeAEQc5Hjqnwgfg3EeUDMCBUHGTQfarAWOa5SxqEmHohfAXECOa7CBbTwBYEWEa7CBpCDwAAmKAjEf6ExyUhm5KUD8R8gFoAJ7AHiIApSA0jvbmSBHKjTyQUgvdnIAvJA/BIaMeQksZdQM1DAJSC2IMNAS6heDNAKxaQCnPpw2kQA4PQZzrDAAwiGPUZsEQCg1DGPUHraQYKBOwmlXx4g/k8i5iFkKxsJLmRjoDUAAID6NQMa+if+AAAAAElFTkSuQmCC",CYCLOPROPANE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAjElEQVR42mNgGE5AgZqGiQDxfyCWoJaBk4H4ORBPp4ZhGkB8G4h5gPg6EBtQauB2IA6Asj2AeD8Qs5BrGDYDkC0gCbDg8CIsCDhINbAATySAIqmC1GRyH08yISRPlgsKiE1GxIYRC7HJiJRYJJiMyElnOB3AQmZOwBlEBRTkVYxIlICWJpRimcFfCgMA4CwtbAP2SjIAAAAASUVORK5CYII\x3d", +DECREASE_CHARGE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAs0lEQVR42mNgGAU4gAAQK0BpsgELEGcA8WUg/g3E/6H4NhCXQOVJMmw/EL8G4gYgdoC60AKIK4D4ORAfB2IeYg07DMT3gVgFhxoZID4PNZSDkIE5UJepEFAnA3VpCSEDL0O9SQyogIYp3tj8DQ0zUPhI4sE80DD9jy/2FaAKFKCu/I8H16Opp48LqR6GNIllWDq8jidsZKBqiEqHyIZSJacgG5oDdSly7N6HepNjwEubwQEAQdI454gPA8EAAAAASUVORK5CYII\x3d",ERASE:"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\x3d\x3d", +FLUORINE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAUElEQVR42mNgGAU0AxPuB26c8CDgPxr+SqmBpyc+DDCG4UkP/AwpNXAvtb08+A38A8SfYbj/ob8LpQae6Hvoqw3DU1+F8oxGygAaOAoGDgAAN7dbSHln+I0AAAAASUVORK5CYII\x3d",HYDROGEN:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAANElEQVR42mNgGAW0BBuBeC8W8SIg/jtqINEGngBiTTTcSYmB/4D4Jxr+Mxopw8jAUTBAAADIhCT11Q14ZwAAAABJRU5ErkJggg\x3d\x3d",INCREASE_CHARGE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAyklEQVR42mNgGAU4gAAQK0BpsgELEGcA8WUg/g3E/6H4NhCXQOVJMmw/EL8G4gYgdoC60AKIK4D4ORAfB2IeYg07DMT3gVgFKsYDNRhmgAwQn4caykHIwByoy1SQxCSh3pVEEpOBurSEkIGXoa5hIGAgA9T7twnF5m9omPFADQBhA6iBBkhiPNAw/Y8v9hWgChSgrvyPB9ejqaePC6kehjSJZVg6vI4UNjzQMENOh4eJTYfIhlIlpyAbmgN1KXLs3od6k2PAS5vBAQCFSEECjKrjagAAAABJRU5ErkJggg\x3d\x3d", +IODINE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAI0lEQVR42mNgGAV0AVMYpmyeyjB196iBowaOGkhXA0cBfQEADcspQU08dAAAAAAASUVORK5CYII\x3d",LASSO:"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\x3d", LASSO_SHAPES:"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", MARQUEE:"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", -MOVE:"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", -NITROGEN:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAoElEQVR42mNgGAU0AwaBPzYaBPx4Z+z7SQRZXN/vlyFQ/L9l6H9Ocgz8b+D/YxY1DfwJxH8N/X6ZUMdAoOuAml8ZBPw8wcDwn5EaLuw09P8eBzJA3/97IlUMBLMDfuwH4pfGof/5qWKgUeBPTWh4TqCKgRD+91Yg/zcsCCg2EGQAkH8PiJ9SxUAQMAz44QlOm9QyEBzLAT/WkGXgKBg4AABF1poQYk+4pAAAAABJRU5ErkJggg==",OPEN:"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", -OPTIMIZE:"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", -OXYGEN:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABCklEQVR42mNgGAXYwH8pKa7/PDxa/xkY2CgzSFBQ7j8v7wEg/gPEn4H4JxBvAGJh0g3j4pICanwDxCf+8/MrgcW4uXWB/FtAfA/katIM5OGZCNT44b+AgACKOD+/MtTFxcQbxsDADNTwDWQoVnle3nVAfJt4A/n5FYEa/v/n44vF4fpqoPxfoiMJqMEBbCA3twsOFyaC5aFhS4yBOmANPDwhOAwsAssLCfERG4acQA3/gLgKqzwf33Sg3CvSYpmXdy0Q3wEazoQiLirKAxR/jyvC8BmoAY3pZTCvAcNUHCi2F5w+eXhESU/ckLC8CE13T8Axy8u7D5SDKMuCvLwiwBg1Bnl3tGSjPQAAoX15+BfxFYQAAAAASUVORK5CYII=",PERIODIC_TABLE:"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", -PHOSPHORUS:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAeElEQVR42mNgGAU0A/8bGDYC8X8o/gLEV/43MqRSZmA9wwkgtgAalA/kXwSy//1vYtCnxIW74PxGBnewa+sZMqhjYD2DCtTAHOoY2MDQAjXQjBIDrwANKALS+4H4D5A9g9JY/gA1bC4Q+1Ej2eyidjocSQaOgoEDAIsaZcCSspZYAAAAAElFTkSuQmCC",PUSHER_DOUBLE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA8klEQVR42mNgGACgA8QxQBwAxCKUGOQAxKeB+DwQzwfiw0D8HohzyDEM5JrXQBwBxCxI4hpQC7pJ9eJjIDbBIS8BxLeBOIFYA/cDcQUBNSZQS3mICbfbaN7EBZYDcQEhRYuJcB0MeEDDE6flPNBYVCDSQBYCYQ327mUSUwPI2ym4JEuAeDaRBskAsQpUz3SoK1WwhV8JkQaCguc/NOHfg7IxYhyUE1xI8O5zqEEwjAFuY3M2HpAJxP+ghu3FpgAUwwIkGAhS+xdqYC82Bf/JyPM3ofpiqGVgGVSfCbXKSgFsMXwfinHxCYF+dAFKDZRB5gAAj/I5E2fZy9MAAAAASUVORK5CYII=", -PUSHER_SINGLE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA6ElEQVR42mNgGACgA8QxQBwAxCKUGOQAxKeB+DwQzwfiw0D8HohzyDEM5JrXQBwBxCxI4hpQC7pJ9eJjIDbBIS8BxLeBOIFYA/cDcQUBNSZQS3mICbfbaN7EBZYDcQEhRYuJcB0MeEDDE6flPNBYVCDSQBYCYQ327mUSUwPI2ym4JEuAeDaJBoL0TIeyZdB9txiqgBTgAU38O4H4P9RQOADlBBcSDVSAGvQPiO+gS4KSiwqJBgpADbyKLSzfQxWQCkAGfsFWcPwnsxAB6duOS4JcA1OoWV7+x1VO3odiUsFxXBLkGoiSdgEanzHP7ILArQAAAABJRU5ErkJggg==",REDO:"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", -REMOVE_LONE_PAIR:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAN0lEQVR42mNgGAWjYHACBSDeD8T/gfg4lE+KPAYAKTaBsg2gmkiRxwD/KeTT3oVUD8NRMAoIAAADoBa5tWLP/wAAAABJRU5ErkJggg==",REMOVE_RADICAL:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAM0lEQVR42mNgGAWjYGgABSDeD8T/gfg4lE8RABlmAmUbQA2lCPwnwB94F1I9DEfBKEADAAT6C11yCuPwAAAAAElFTkSuQmCC",RGROUP:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA3UlEQVR42u3SPwsBcRzH8YtYFGVELBYGu0dgskgWSgyKJyB2k+wWZTPxCDwBLJikDJKShQlFeF/9Tte5u25U7luv4X736fO7Pz9Jsuf/ZosjzpigqpPpoqRZq+isfQpzcCCDO8KaTAsHuMV1FjN4zArlCeGJhCYTFBsVkcQaAbNXlguj6GNpkBtghY3Ohl+FF7wwh9cglxaZmpWfUkYKV8R1Mj4ssMPQSqHyDXuYwqm678JYPFkeD0SsFvrFEaqr7subdFTle7StFspTwA0xNDASR0qZJk5GR8aeH5k3G/QvyONoufAAAAAASUVORK5CYII=", -SAVE:"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", -SEARCH:"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", -SULFUR:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAwUlEQVR42mNgGAXo4P9/Y7n///Wl//9nYKTQIAP///8NzwIN+w5k/wHir0BsQK6ruICa3wHxEiCbH8I3jPv/X1eJTAP1jICG/Qe6zoxK4WYmDDTwNxDXUzEyDOZBXGkw+/9/cz4qGMjACHIhEP8D4gdkRwgWl1oD8UNoLFtTKy2KAA17DcTzqRimhjuABh4jU7O+IdCAiP//VdihhpkADfsJpJvJdY0z0ICP0KTzDBoxi2EWUJiPDUxBYThaqtEPAAAQY5TwZ4cDHAAAAABJRU5ErkJggg==",UNDO:"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", -ZOOM_IN:"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", -ZOOM_OUT:"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"}}(); -(function(a,d,f){a.Button=function(a,e,b,d){this.id=a;this.icon=e;this.toggle=!1;this.tooltip=b?b:"";this.func=d?d:void 0;return!0};a.Button.prototype.getElement=function(){return f("#"+this.id)};a.Button.prototype.getSource=function(a){var e=[];this.toggle?(e.push('<input type="radio" name="'),e.push(a),e.push('" id="'),e.push(this.id),e.push('" title="'),e.push(this.tooltip),e.push('" /><label for="'),e.push(this.id),e.push('"><img id="'),e.push(this.id),e.push('_icon" title="'),e.push(this.tooltip), -e.push('" width="20" height="20" src="'),e.push(d.getURI(this.icon)),e.push('"></label>')):(e.push('<button id="'),e.push(this.id),e.push('" onclick="return false;" title="'),e.push(this.tooltip),e.push('"><img title="'),e.push(this.tooltip),e.push('" width="20" height="20" src="'),e.push(d.getURI(this.icon)),e.push('"></button>'));return e.join("")};a.Button.prototype.setup=function(a){var e=this.getElement();(!this.toggle||a)&&e.button();e.click(this.func)};a.Button.prototype.disable=function(){var a= -this.getElement();a.mouseout();a.button("disable")};a.Button.prototype.enable=function(){this.getElement().button("enable")};a.Button.prototype.select=function(){var a=this.getElement();a.attr("checked",!0);a.button("refresh")}})(ChemDoodle.sketcher.gui.desktop,ChemDoodle.sketcher.gui.imageDepot,jQuery); -(function(a,d){a.ButtonSet=function(a){this.id=a;this.buttons=[];return this.toggle=!0};a.ButtonSet.prototype.getElement=function(){return d("#"+this.id)};a.ButtonSet.prototype.getSource=function(a){var c=[];c.push('<span id="');c.push(this.id);c.push('">');for(var e=0,b=this.buttons.length;e<b;e++)this.toggle&&(this.buttons[e].toggle=!0),c.push(this.buttons[e].getSource(a));this.dropDown&&c.push(this.dropDown.getButtonSource());c.push("</span>");this.dropDown&&c.push(this.dropDown.getHiddenSource()); -return c.join("")};a.ButtonSet.prototype.setup=function(){this.getElement().buttonset();for(var a=0,c=this.buttons.length;a<c;a++)this.buttons[a].setup(!1);this.dropDown&&this.dropDown.setup()};a.ButtonSet.prototype.addDropDown=function(d){this.dropDown=new a.DropDown(this.id+"_dd",d,this.buttons[this.buttons.length-1])}})(ChemDoodle.sketcher.gui.desktop,jQuery); -(function(a,d,f){a.Dialog=function(a,e,b){this.sketcherid=a;this.id=a+e;this.title=b?b:"Information";this.afterMessage=this.message=this.buttons=void 0;this.includeTextField=this.includeTextArea=!1;return!0};a.Dialog.prototype.getElement=function(){return d("#"+this.id)};a.Dialog.prototype.getTextArea=function(){return d("#"+this.id+"_ta")};a.Dialog.prototype.getTextField=function(){return d("#"+this.id+"_tf")};a.Dialog.prototype.setup=function(){var a=[];a.push('<div style="font-size:12px;" id="'); -a.push(this.id);a.push('" title="');a.push(this.title);a.push('">');this.message&&(a.push("<p>"),a.push(this.message),a.push("</p>"));this.includeTextField&&(a.push('<input type="text" style="font-family:\'Courier New\';" id="'),a.push(this.id),a.push('_tf"></input>'));this.includeTextArea&&(a.push('<textarea style="font-family:\'Courier New\';" id="'),a.push(this.id),a.push('_ta" cols="55" rows="10"></textarea>'));this.afterMessage&&(a.push("<p>"),a.push(this.afterMessage),a.push("</p>"));a.push("</div>"); -f.getElementById(this.sketcherid)?d("#"+this.sketcherid).before(a.join("")):f.writeln(a.join(""));this.getElement().dialog({autoOpen:!1,width:435,buttons:this.buttons})}})(ChemDoodle.sketcher.gui.desktop,jQuery,document); -(function(a,d,f,c){d.MolGrabberDialog=function(a,b){this.sketcherid=a;this.id=a+b;this.title="MolGrabber";return!0};d.MolGrabberDialog.prototype=new d.Dialog;d.MolGrabberDialog.prototype.setup=function(){var a=[];a.push('<div style="font-size:12px;text-align:center;" id="');a.push(this.id);a.push('" title="');a.push(this.title);a.push('">');this.message&&(a.push("<p>"),a.push(this.message),a.push("</p>"));a.push('<canvas class="ChemDoodleWebComponent" id="');a.push(this.id);a.push('_mg"></canvas>'); -this.afterMessage&&(a.push("<p>"),a.push(this.afterMessage),a.push("</p>"));a.push("</div>");c.getElementById(this.sketcherid)?f("#"+this.sketcherid).before(a.join("")):c.writeln(a.join(""));this.canvas=new ChemDoodle.MolGrabberCanvas(this.id+"_mg",200,200);this.getElement().dialog({autoOpen:!1,width:250,buttons:this.buttons})}})(ChemDoodle,ChemDoodle.sketcher.gui.desktop,jQuery,document); -(function(a,d,f,c){d.PeriodicTableDialog=function(a,b){this.sketcherid=a;this.id=a+b;this.title="Periodic Table";return!0};d.PeriodicTableDialog.prototype=new d.Dialog;d.PeriodicTableDialog.prototype.setup=function(){var a=[];a.push('<div style="text-align:center;" id="');a.push(this.id);a.push('" title="');a.push(this.title);a.push('">');a.push('<canvas class="ChemDoodleWebComponents" id="');a.push(this.id);a.push('_pt"></canvas></div>');c.getElementById(this.sketcherid)?f("#"+this.sketcherid).before(a.join("")): -c.writeln(a.join(""));this.canvas=new ChemDoodle.PeriodicTableCanvas(this.id+"_pt",20);this.getElement().dialog({autoOpen:!1,width:400,buttons:this.buttons})}})(ChemDoodle,ChemDoodle.sketcher.gui.desktop,jQuery,document); -(function(a,d,f,c){d.SaveFileDialog=function(a,b){this.id=a;this.sketcher=b;this.title="Save File";return!0};d.SaveFileDialog.prototype=new d.Dialog;d.SaveFileDialog.prototype.clear=function(){f("#"+this.id+"_link").html("The file link will appear here.")};d.SaveFileDialog.prototype.setup=function(){var a=[];a.push('<div style="font-size:12px;" id="');a.push(this.id);a.push('" title="');a.push(this.title);a.push('">');a.push("<p>Select the file format to save your structure to and click on the <strong>Generate File</strong> button.</p>"); -a.push('<select id="');a.push(this.id);a.push('_select">');a.push('<option value="sk2">ACD/ChemSketch Document {sk2}');a.push('<option value="ros">Beilstein ROSDAL {ros}');a.push('<option value="cdx">Cambridgesoft ChemDraw Exchange {cdx}');a.push('<option value="cdxml">Cambridgesoft ChemDraw XML {cdxml}');a.push('<option value="mrv">ChemAxon Marvin Document {mrv}');a.push('<option value="cml">Chemical Markup Language {cml}');a.push('<option value="smiles">Daylight SMILES {smiles}');a.push('<option value="icl" selected>iChemLabs ChemDoodle Document {icl}'); -a.push('<option value="inchi">IUPAC InChI {inchi}');a.push('<option value="jdx">IUPAC JCAMP-DX {jdx}');a.push('<option value="skc">MDL ISIS Sketch {skc}');a.push('<option value="tgf">MDL ISIS Sketch Transportable Graphics File {tgf}');a.push('<option value="mol">MDL MOLFile {mol}');a.push('<option value="sdf">MDL SDFile {sdf}');a.push('<option value="jme">Molinspiration JME String {jme}');a.push('<option value="pdb">RCSB Protein Data Bank {pdb}');a.push('<option value="mmd">Schrödinger Macromodel {mmd}'); -a.push('<option value="mae">Schrödinger Maestro {mae}');a.push('<option value="smd">Standard Molecular Data {smd}');a.push('<option value="mol2">Tripos Mol2 {mol2}');a.push('<option value="sln">Tripos SYBYL SLN {sln}');a.push('<option value="xyz">XYZ {xyz}');a.push("</select>");a.push('<button id="');a.push(this.id);a.push('_button">');a.push("Generate File</button>");a.push("<p>When the file is written, a link will appear in the red-bordered box below, right-click on the link and choose the browser's <strong>Save As...</strong> function to save the file to your computer.</p>"); -a.push('<div style="width:100%;height:30px;border:1px solid #c10000;text-align:center;" id="');a.push(this.id);a.push('_link">The file link will appear here.</div>');a.push('<p><a href="http://www.chemdoodle.com" target="_blank">How do I use these files?</a></p>');a.push("</div>");c.getElementById(this.sketcher.id)?f("#"+this.sketcher.id).before(a.join("")):c.writeln(a.join(""));var b=this;f("#"+this.id+"_button").click(function(){f("#"+b.id+"_link").html("Generating file, please wait...");ChemDoodle.iChemLabs.saveFile(b.sketcher.oneMolecule? -b.sketcher.molecules[0]:b.sketcher.lasso.getFirstMolecule(),{ext:f("#"+b.id+"_select").val()},function(a){f("#"+b.id+"_link").html('<a href="'+a+'"><span style="text-decoration:underline;">File is generated. Right-click on this link and Save As...</span></a>')})});this.getElement().dialog({autoOpen:!1,width:435,buttons:b.buttons})}})(ChemDoodle,ChemDoodle.sketcher.gui.desktop,jQuery,document); -(function(a,d,f,c,e){f.DialogManager=function(b){b.useServices?this.saveDialog=new c.SaveFileDialog(b.id+"_save_dialog",b):(this.saveDialog=new c.Dialog(b.id,"_save_dialog","Save Molecule"),this.saveDialog.message="Copy and paste the content of the textarea into a file and save it with the extension <strong>.mol</strong>.",this.saveDialog.includeTextArea=!0,this.saveDialog.afterMessage='<a href="http://www.chemdoodle.com" target="_blank">How do I use MOLFiles?</a>');this.saveDialog.setup();this.loadDialog= -new c.Dialog(b.id,"_load_dialog","Load Molecule");this.loadDialog.message="Copy and paste the contents of a MOLFile (extension <strong>.mol</strong>) in the textarea below and then press the <strong>Load</strong> button.";this.loadDialog.includeTextArea=!0;this.loadDialog.afterMessage='<a href="http://www.chemdoodle.com" target="_blank">Where do I get MOLFiles?</a>';var f=this;this.loadDialog.buttons={Load:function(){e(this).dialog("close");var c=a.readMOL(f.loadDialog.getTextArea().val());if(c.atoms.length> -0)if(b.oneMolecule)b.historyManager.pushUndo(new d.SwitchMoleculeAction(b,c));else{b.historyManager.pushUndo(new d.NewMoleculeAction(b,c.atoms,c.bonds));b.toolbarManager.buttonLasso.getElement().click();b.lasso.select(c.atoms,[])}else alert("No chemical content was recognized.")}};this.loadDialog.setup();this.searchDialog=new c.MolGrabberDialog(b.id,"_search_dialog");this.searchDialog.buttons={Load:function(){e(this).dialog("close");var a=f.searchDialog.canvas.molecules[0];if(a&&a.atoms.length>0)if(b.oneMolecule)a!== -b.molecule&&b.historyManager.pushUndo(new d.SwitchMoleculeAction(b,a));else{b.historyManager.pushUndo(new d.NewMoleculeAction(b,a.atoms,a.bonds));b.toolbarManager.buttonLasso.getElement().click();b.lasso.select(a.atoms,[])}}};this.searchDialog.setup();this.periodicTableDialog=new c.PeriodicTableDialog(b.id,"_periodicTable_dialog");this.periodicTableDialog.buttons={Close:function(){e(this).dialog("close")}};this.periodicTableDialog.setup();this.periodicTableDialog.canvas.click=function(){if(this.hovered){this.selected= -this.hovered;var a=this.getHoveredElement();b.stateManager.setState(b.stateManager.STATE_LABEL);b.stateManager.STATE_LABEL.label=a.symbol;b.toolbarManager.buttonLabel.select();this.repaint()}};this.calculateDialog=new c.Dialog(b.id,"_calculate_dialog","Calculations");this.calculateDialog.includeTextArea=!0;this.calculateDialog.afterMessage='<a href="http://www.chemdoodle.com" target="_blank">Want more calculations?</a>';this.calculateDialog.setup();this.inputDialog=new c.Dialog(b.id,"_input_dialog", -"Input");this.inputDialog.message='Please input the rgroup number (must be a positive integer). Input "-1" to remove the rgroup.';this.inputDialog.includeTextField=!0;this.inputDialog.buttons={Done:function(){e(this).dialog("close");f.inputDialog.doneFunction&&f.inputDialog.doneFunction(f.inputDialog.getTextField().val())}};this.inputDialog.setup();return!0}})(ChemDoodle,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.gui,ChemDoodle.sketcher.gui.desktop,jQuery); -(function(a,d,f,c){a.DropDown=function(c,b,d){this.id=c;this.tooltip=b;this.dummy=d;this.buttonSet=new a.ButtonSet(c+"_set");this.buttonSet.buttonGroup=b;this.defaultButton=void 0;return!0};a.DropDown.prototype.getButtonSource=function(){var a=[];a.push('<button id="');a.push(this.id);a.push('" onclick="return false;" title="');a.push(this.tooltip);a.push('"><img title="');a.push(this.tooltip);a.push('" src="');a.push(d.getURI(d.ARROW_DOWN));a.push('"></button>');return a.join("")};a.DropDown.prototype.getHiddenSource= -function(){var a=[];a.push('<div style="display:none;position:absolute;z-index:10;border:1px #C1C1C1 solid;background:#F5F5F5;padding:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomleft:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomright:5px;" id="');a.push(this.id);a.push('_hidden">');a.push(this.buttonSet.getSource(this.id+"_popup_set"));a.push("</div>");return a.join("")};a.DropDown.prototype.setup=function(){this.defaultButton||(this.defaultButton=this.buttonSet.buttons[0]); -var a="#"+this.id;f(a).button();f(a+"_hidden").hide();f(a).click(function(){var b=f(a+"_hidden");b.show().position({my:"center top",at:"center bottom",of:this,collision:"fit"});f(c).one("click",function(){b.hide()});return false});this.buttonSet.setup();var b=this;f.each(this.buttonSet.buttons,function(a){b.buttonSet.buttons[a].getElement().click(function(){b.dummy.absorb(b.buttonSet.buttons[a]);b.dummy.select();b.dummy.func()})});b.dummy.absorb(this.defaultButton);this.defaultButton.select()}})(ChemDoodle.sketcher.gui.desktop, -ChemDoodle.sketcher.gui.imageDepot,jQuery,document); -(function(a,d,f){a.DummyButton=function(a,d,b){this.id=a;this.icon=d;this.toggle=!1;this.tooltip=b?b:"";this.func=void 0;return!0};a.DummyButton.prototype=new a.Button;a.DummyButton.prototype.setup=function(){var a=this;this.getElement().click(function(){a.func()})};a.DummyButton.prototype.absorb=function(a){f("#"+this.id+"_icon").attr("src",d.getURI(a.icon));this.func=a.func}})(ChemDoodle.sketcher.gui.desktop,ChemDoodle.sketcher.gui.imageDepot,jQuery); -(function(a,d,f,c,e,b,h,j,m,g,l,n){b.ToolbarManager=function(i){this.sketcher=i;this.buttonOpen=new j.Button(i.id+"_button_open",h.OPEN,"Open",function(){i.dialogManager.loadDialog.getTextArea().val("");i.dialogManager.loadDialog.getElement().dialog("open")});this.buttonSave=new j.Button(i.id+"_button_save",h.SAVE,"Save",function(){i.useServices?i.dialogManager.saveDialog.clear():i.oneMolecule?i.dialogManager.saveDialog.getTextArea().val(a.writeMOL(i.molecules[0])):i.lasso.isActive()&&i.dialogManager.saveDialog.getTextArea().val(a.writeMOL(i.lasso.getFirstMolecule())); -i.dialogManager.saveDialog.getElement().dialog("open")});this.buttonSearch=new j.Button(i.id+"_button_search",h.SEARCH,"Search",function(){i.dialogManager.searchDialog.getElement().dialog("open")});this.buttonCalculate=new j.Button(i.id+"_button_calculate",h.CALCULATE,"Calculate",function(){var a=i.oneMolecule?i.molecules[0]:i.lasso.getFirstMolecule();a&&d.calculate(a,{descriptors:"mf,mw,miw,deg_unsat,hba,hbd,pol_miller,cmr,tpsa,xlogp2".split(",")},function(a){function b(a,i,c){g.push(a);g.push(": "); -for(a=a.length+2;30>a;a++)g.push(" ");g.push(i);g.push(" ");g.push(c);g.push("\n")}var g=[];b("Molecular Formula",a.mf,"");b("Molecular Mass",a.mw,"amu");b("Monoisotopic Mass",a.miw,"amu");b("Degree of Unsaturation",a.deg_unsat,"");b("Hydrogen Bond Acceptors",a.hba,"");b("Hydrogen Bond Donors",a.hbd,"");b("Molecular Polarizability",a.pol_miller,"\u00c5\u00b3");b("Molar Refractivity",a.cmr,"cm\u00b3/mol");b("Polar Surface Area",a.tpsa,"\u00c5\u00b2");b("logP",a.xlogp2,"");i.dialogManager.calculateDialog.getTextArea().val(g.join("")); -i.dialogManager.calculateDialog.getElement().dialog("open")})});this.buttonMove=new j.Button(i.id+"_button_move",h.MOVE,"Move",function(){i.stateManager.setState(i.stateManager.STATE_MOVE)});this.buttonMove.toggle=!0;this.buttonErase=new j.Button(i.id+"_button_erase",h.ERASE,"Erase",function(){i.stateManager.setState(i.stateManager.STATE_ERASE)});this.buttonErase.toggle=!0;this.buttonClear=new j.Button(i.id+"_button_clear",h.CLEAR,"Clear",function(){var a=!0;if(i.oneMolecule){if(1===i.molecules[0].atoms.length){var b= -i.molecules[0].atoms[0];"C"===b.label&&0===b.charge&&-1===b.mass&&(a=!1)}}else 0===i.molecules.length&&0===i.shapes.length&&(a=!1);a&&(i.stateManager.getCurrentState().clearHover(),i.lasso&&i.lasso.isActive()&&i.lasso.empty(),i.historyManager.pushUndo(new e.ClearAction(i)))});this.buttonClean=new j.Button(i.id+"_button_clean",h.OPTIMIZE,"Clean",function(){var a=i.oneMolecule?i.molecules[0]:i.lasso.getFirstMolecule();if(a){var b=new f.JSONInterpreter;d._contactServer("optimize",{mol:b.molTo(a)},{dimension:2}, -function(g){var g=b.molFrom(g.mol),d=g.getCenter(),f=new c.Point(i.width/2,i.height/2);f.sub(d);for(var d=0,h=g.atoms.length;d<h;d++)g.atoms[d].add(f);i.historyManager.pushUndo(new e.ChangeCoordinatesAction(a.atoms,g.atoms))})}});this.makeLassoSet(this);this.makeScaleSet(this);this.makeHistorySet(this);this.makeLabelSet(this);this.makeBondSet(this);this.makeRingSet(this);this.makeAttributeSet(this);this.makeShapeSet(this);return!0};b.ToolbarManager.prototype.write=function(){var a=[],b=this.sketcher.id+ -"_main_group";this.sketcher.oneMolecule?a.push(this.buttonMove.getSource(b)):a.push(this.lassoSet.getSource(b));a.push(this.buttonClear.getSource());a.push(this.buttonErase.getSource(b));this.sketcher.useServices&&a.push(this.buttonClean.getSource());a.push(this.historySet.getSource());a.push(this.scaleSet.getSource());a.push(this.buttonOpen.getSource());a.push(this.buttonSave.getSource());this.sketcher.useServices&&(a.push(this.buttonSearch.getSource()),a.push(this.buttonCalculate.getSource())); -a.push("<br>");a.push(this.labelSet.getSource(b));a.push(this.attributeSet.getSource(b));a.push(this.bondSet.getSource(b));a.push(this.ringSet.getSource(b));this.sketcher.oneMolecule||a.push(this.shapeSet.getSource(b));a.push("<br>");n.getElementById(this.sketcher.id)?l("#"+this.sketcher.id).before(a.join("")):n.write(a.join(""))};b.ToolbarManager.prototype.setup=function(){this.sketcher.oneMolecule?this.buttonMove.setup(!0):this.lassoSet.setup();this.buttonClear.setup();this.buttonErase.setup(!0); -this.sketcher.useServices&&this.buttonClean.setup();this.historySet.setup();this.scaleSet.setup();this.buttonOpen.setup();this.buttonSave.setup();this.sketcher.useServices&&(this.buttonSearch.setup(),this.buttonCalculate.setup());this.labelSet.setup();this.attributeSet.setup();this.bondSet.setup();this.ringSet.setup();this.sketcher.oneMolecule||this.shapeSet.setup();this.buttonSingle.select();this.buttonUndo.disable();this.buttonRedo.disable();!this.sketcher.oneMolecule&&this.sketcher.useServices&& -(this.buttonClean.disable(),this.buttonCalculate.disable(),this.buttonSave.disable())};b.ToolbarManager.prototype.makeScaleSet=function(a){this.scaleSet=new j.ButtonSet(a.sketcher.id+"_buttons_scale");this.scaleSet.toggle=!1;this.buttonScalePlus=new j.Button(a.sketcher.id+"_button_scale_plus",h.ZOOM_IN,"Increase Scale",function(){a.sketcher.specs.scale*=1.5;a.sketcher.checkScale();a.sketcher.repaint()});this.scaleSet.buttons.push(this.buttonScalePlus);this.buttonScaleMinus=new j.Button(a.sketcher.id+ -"_button_scale_minus",h.ZOOM_OUT,"Decrease Scale",function(){a.sketcher.specs.scale/=1.5;a.sketcher.checkScale();a.sketcher.repaint()});this.scaleSet.buttons.push(this.buttonScaleMinus)};b.ToolbarManager.prototype.makeLassoSet=function(a){this.lassoSet=new j.ButtonSet(a.sketcher.id+"_buttons_lasso");this.buttonLasso=new j.DummyButton(a.sketcher.id+"_button_lasso",h.LASSO,"Selection Tool");this.lassoSet.buttons.push(this.buttonLasso);this.lassoSet.addDropDown("More Selection Tools");this.lassoSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+ -"_button_lasso_lasso",h.LASSO,"Lasso Tool",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LASSO);a.sketcher.lasso.mode=m.Lasso.MODE_LASSO;0<a.sketcher.molecules.length&&!a.sketcher.lasso.isActive()&&a.sketcher.lasso.select(a.sketcher.molecules[a.sketcher.molecules.length-1].atoms,[])}));this.lassoSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_lasso_shapes",h.LASSO_SHAPES,"Lasso Tool (shapes only)",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LASSO); -a.sketcher.lasso.mode=m.Lasso.MODE_LASSO_SHAPES;0<a.sketcher.shapes.length&&!a.sketcher.lasso.isActive()&&a.sketcher.lasso.select([],[a.sketcher.shapes[a.sketcher.shapes.length-1]])}));this.lassoSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_lasso_marquee",h.MARQUEE,"Marquee Tool",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LASSO);a.sketcher.lasso.mode=m.Lasso.MODE_RECTANGLE_MARQUEE;0<a.sketcher.molecules.length&&!a.sketcher.lasso.isActive()&& -a.sketcher.lasso.select(a.sketcher.molecules[a.sketcher.molecules.length-1].atoms,[])}))};b.ToolbarManager.prototype.makeHistorySet=function(a){this.historySet=new j.ButtonSet(a.sketcher.id+"_buttons_history");this.historySet.toggle=!1;this.buttonUndo=new j.Button(a.sketcher.id+"_button_undo",h.UNDO,"Undo",function(){a.sketcher.historyManager.undo()});this.historySet.buttons.push(this.buttonUndo);this.buttonRedo=new j.Button(a.sketcher.id+"_button_redo",h.REDO,"Redo",function(){a.sketcher.historyManager.redo()}); -this.historySet.buttons.push(this.buttonRedo)};b.ToolbarManager.prototype.makeLabelSet=function(a){this.labelSet=new j.ButtonSet(a.sketcher.id+"_buttons_label");this.buttonLabel=new j.DummyButton(a.sketcher.id+"_button_label",h.CARBON,"Set Label");this.labelSet.buttons.push(this.buttonLabel);this.labelSet.addDropDown("More Labels");this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_h",h.HYDROGEN,"Hydrogen",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL); -a.sketcher.stateManager.STATE_LABEL.label="H"}));this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_c",h.CARBON,"Carbon",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="C"}));this.labelSet.dropDown.defaultButton=this.labelSet.dropDown.buttonSet.buttons[this.labelSet.dropDown.buttonSet.buttons.length-1];this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_n", -h.NITROGEN,"Nitrogen",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="N"}));this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_o",h.OXYGEN,"Oxygen",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="O"}));this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_f",h.FLUORINE,"Fluorine", -function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="F"}));this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_cl",h.CHLORINE,"Chlorine",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="Cl"}));this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_br",h.BROMINE,"Bromine",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL); -a.sketcher.stateManager.STATE_LABEL.label="Br"}));this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_i",h.IODINE,"Iodine",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="I"}));this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_p",h.PHOSPHORUS,"Phosphorus",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label= -"P"}));this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_s",h.SULFUR,"Sulfur",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="S"}));this.labelSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_pt",h.PERIODIC_TABLE,"Choose Symbol",function(){for(var b=0,g=a.sketcher.dialogManager.periodicTableDialog.canvas.cells.length;b<g;b++){var c=a.sketcher.dialogManager.periodicTableDialog.canvas.cells[b]; -if(c.element.symbol===a.sketcher.stateManager.STATE_LABEL.label){a.sketcher.dialogManager.periodicTableDialog.canvas.selected=c;a.sketcher.dialogManager.periodicTableDialog.canvas.repaint();break}}a.sketcher.dialogManager.periodicTableDialog.getElement().dialog("open")}))};b.ToolbarManager.prototype.makeBondSet=function(a){this.bondSet=new j.ButtonSet(a.sketcher.id+"_buttons_bond");this.buttonSingle=new j.Button(a.sketcher.id+"_button_bond_single",h.BOND_SINGLE,"Single Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND); -a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=1;a.sketcher.stateManager.STATE_NEW_BOND.stereo=c.Bond.STEREO_NONE});this.bondSet.buttons.push(this.buttonSingle);this.buttonRecessed=new j.Button(a.sketcher.id+"_button_bond_recessed",h.BOND_RECESSED,"Recessed Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=1;a.sketcher.stateManager.STATE_NEW_BOND.stereo=c.Bond.STEREO_RECESSED});this.bondSet.buttons.push(this.buttonRecessed); -this.buttonProtruding=new j.Button(a.sketcher.id+"_button_bond_protruding",h.BOND_PROTRUDING,"Protruding Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=1;a.sketcher.stateManager.STATE_NEW_BOND.stereo=c.Bond.STEREO_PROTRUDING});this.bondSet.buttons.push(this.buttonProtruding);this.buttonDouble=new j.Button(a.sketcher.id+"_button_bond_double",h.BOND_DOUBLE,"Double Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND); -a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=2;a.sketcher.stateManager.STATE_NEW_BOND.stereo=c.Bond.STEREO_NONE});this.bondSet.buttons.push(this.buttonDouble);this.buttonBond=new j.DummyButton(a.sketcher.id+"_button_bond",h.BOND_TRIPLE,"Other Bond");this.bondSet.buttons.push(this.buttonBond);this.bondSet.addDropDown("More Bonds");this.bondSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_bond_triple",h.BOND_TRIPLE,"Triple Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND); -a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=3;a.sketcher.stateManager.STATE_NEW_BOND.stereo=c.Bond.STEREO_NONE}));this.bondSet.dropDown.defaultButton=this.bondSet.dropDown.buttonSet.buttons[this.bondSet.dropDown.buttonSet.buttons.length-1];this.bondSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_bond_ambiguous_double",h.BOND_DOUBLE_AMBIGUOUS,"Ambiguous Double Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder= -2;a.sketcher.stateManager.STATE_NEW_BOND.stereo=c.Bond.STEREO_AMBIGUOUS}))};b.ToolbarManager.prototype.makeRingSet=function(a){this.ringSet=new j.ButtonSet(a.sketcher.id+"_buttons_ring");this.buttonCyclohexane=new j.Button(a.sketcher.id+"_button_ring_cyclohexane",h.CYCLOHEXANE,"Cyclohexane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides=6;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1});this.ringSet.buttons.push(this.buttonCyclohexane); -this.buttonBenzene=new j.Button(a.sketcher.id+"_button_ring_benzene",h.BENZENE,"Benzene Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides=6;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!0});this.ringSet.buttons.push(this.buttonBenzene);this.buttonRing=new j.DummyButton(a.sketcher.id+"_button_ring",h.CYCLOPENTANE,"Other Ring");this.ringSet.buttons.push(this.buttonRing);this.ringSet.addDropDown("More Rings"); -this.ringSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_ring_cyclopropane",h.CYCLOPROPANE,"Cyclopropane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides=3;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1}));this.ringSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_ring_cyclobutane",h.CYCLOBUTANE,"Cyclobutane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING); -a.sketcher.stateManager.STATE_NEW_RING.numSides=4;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1}));this.ringSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_ring_cyclopentane",h.CYCLOPENTANE,"Cyclopentane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides=5;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1}));this.ringSet.dropDown.defaultButton=this.ringSet.dropDown.buttonSet.buttons[this.ringSet.dropDown.buttonSet.buttons.length- -1];this.ringSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_ring_cycloheptane",h.CYCLOHEPTANE,"Cycloheptane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides=7;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1}));this.ringSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_ring_cyclooctane",h.CYCLOOCTANE,"Cyclooctane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING); -a.sketcher.stateManager.STATE_NEW_RING.numSides=8;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1}))};b.ToolbarManager.prototype.makeAttributeSet=function(a){this.attributeSet=new j.ButtonSet(a.sketcher.id+"_buttons_attribute");this.buttonAttribute=new j.DummyButton(a.sketcher.id+"_button_attribute",h.INCREASE_CHARGE,"Attributes");this.attributeSet.buttons.push(this.buttonAttribute);this.attributeSet.addDropDown("More Attributes");this.attributeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+ -"_button_attribute_charge_increment",h.INCREASE_CHARGE,"Increase Charge",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_CHARGE);a.sketcher.stateManager.STATE_CHARGE.delta=1}));this.attributeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_attribute_charge_decrement",h.DECREASE_CHARGE,"Decrease Charge",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_CHARGE);a.sketcher.stateManager.STATE_CHARGE.delta=-1}));this.attributeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+ -"_button_attribute_lonePair_increment",h.ADD_LONE_PAIR,"Add Lone Pair",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LONE_PAIR);a.sketcher.stateManager.STATE_LONE_PAIR.delta=1}));this.attributeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_attribute_lonePair_decrement",h.REMOVE_LONE_PAIR,"Remove Lone Pair",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LONE_PAIR);a.sketcher.stateManager.STATE_LONE_PAIR.delta=-1}));this.attributeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+ -"_button_attribute_radical_increment",h.ADD_RADICAL,"Add Radical",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_RADICAL);a.sketcher.stateManager.STATE_RADICAL.delta=1}));this.attributeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_attribute_radical_decrement",h.REMOVE_RADICAL,"Remove Radical",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_RADICAL);a.sketcher.stateManager.STATE_RADICAL.delta=-1}));this.attributeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+ -"_button_label_any",h.ANY_ELEMENT,"Any Element",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_ATOM_QUERY);a.sketcher.stateManager.STATE_ATOM_QUERY.mode=g.AtomQueryState.MODE_ANY}));this.attributeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_label_rgroup",h.RGROUP,"Rgroup",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_ATOM_QUERY);a.sketcher.stateManager.STATE_ATOM_QUERY.mode=g.AtomQueryState.MODE_RGROUP}))};b.ToolbarManager.prototype.makeShapeSet= -function(a){this.shapeSet=new j.ButtonSet(a.sketcher.id+"_buttons_shape");this.buttonShape=new j.DummyButton(a.sketcher.id+"_button_shape",h.ARROW_SYNTHETIC,"Add Shape");this.shapeSet.buttons.push(this.buttonShape);this.shapeSet.addDropDown("More Shapes");this.shapeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_lasso_arrow_synthetic",h.ARROW_SYNTHETIC,"Synthetic Arrow",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_SHAPE);a.sketcher.stateManager.STATE_SHAPE.shapeType= -g.ShapeState.ARROW_SYNTHETIC}));this.shapeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_lasso_arrow_retrosynthetic",h.ARROW_RETROSYNTHETIC,"Retrosynthetic Arrow",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_SHAPE);a.sketcher.stateManager.STATE_SHAPE.shapeType=g.ShapeState.ARROW_RETROSYNTHETIC}));this.shapeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_lasso_pusher_1",h.PUSHER_SINGLE,"Single Electron Pusher",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_PUSHER); -a.sketcher.stateManager.STATE_PUSHER.numElectron=1}));this.shapeSet.dropDown.buttonSet.buttons.push(new j.Button(a.sketcher.id+"_button_lasso_pusher_2",h.PUSHER_DOUBLE,"Electron Pair Pusher",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_PUSHER);a.sketcher.stateManager.STATE_PUSHER.numElectron=2}))}})(ChemDoodle,ChemDoodle.iChemLabs,ChemDoodle.io,ChemDoodle.structures,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.gui,ChemDoodle.sketcher.gui.imageDepot,ChemDoodle.sketcher.gui.desktop, -ChemDoodle.sketcher.tools,ChemDoodle.sketcher.states,jQuery,document); -(function(a,d,f,c){f.Lasso=function(e){this.sketcher=e;this.atoms=[];this.shapes=[];this.bounds=void 0;this.mode=f.Lasso.MODE_LASSO;this.points=[];this.select=function(b,e){if(!this.block){d.SHIFT||this.empty();if(b)this.atoms=b.slice(0),this.shapes=e.slice(0);else{if(this.mode!==f.Lasso.MODE_LASSO_SHAPES){for(var j=[],m=0,g=this.sketcher.molecules.length;m<g;m++)for(var l=this.sketcher.molecules[m],n=0,i=l.atoms.length;n<i;n++){var o=l.atoms[n];this.mode===f.Lasso.MODE_RECTANGLE_MARQUEE?2===this.points.length&& -a.isBetween(o.x,this.points[0].x,this.points[1].x)&&a.isBetween(o.y,this.points[0].y,this.points[1].y)&&j.push(o):1<this.points.length&&a.isPointInPoly(this.points,o)&&j.push(o)}if(0===this.atoms.length)this.atoms=j;else{for(var k=[],m=0,g=this.atoms.length;m<g;m++)o=this.atoms[m],-1===c(o,j)?k.push(o):o.isLassoed=!1;m=0;for(g=j.length;m<g;m++)-1===c(j[m],this.atoms)&&k.push(j[m]);this.atoms=k}}j=[];m=0;for(g=this.sketcher.shapes.length;m<g;m++){for(var l=this.sketcher.shapes[m],o=l.getPoints(),p= -0<o.length,n=0,i=o.length;n<i;n++){var q=o[n];if(this.mode===f.Lasso.MODE_RECTANGLE_MARQUEE)if(2===this.points.length){if(!a.isBetween(q.x,this.points[0].x,this.points[1].x)||!a.isBetween(q.y,this.points[0].y,this.points[1].y)){p=!1;break}}else{p=!1;break}else if(1<this.points.length){if(!a.isPointInPoly(this.points,q)){p=!1;break}}else{p=!1;break}}p&&j.push(l)}if(0===this.shapes.length)this.shapes=j;else{n=[];m=0;for(g=this.shapes.length;m<g;m++)l=this.shapes[m],-1===c(l,j)?k.push(l):l.isLassoed= -!1;m=0;for(g=j.length;m<g;m++)-1===c(j[m],this.shapes)&&n.push(j[m]);this.shapes=n}}m=0;for(g=this.atoms.length;m<g;m++)this.atoms[m].isLassoed=!0;m=0;for(g=this.shapes.length;m<g;m++)this.shapes[m].isLassoed=!0;this.setBounds();this.bounds&&Infinity===this.bounds.minX&&this.empty();this.points=[];this.sketcher.stateManager.getCurrentState().clearHover();this.enableButtons();this.sketcher.repaint()}};this.enableButtons=function(){this.sketcher.useServices&&(0<this.atoms.length?(this.sketcher.toolbarManager.buttonClean.enable(), -this.sketcher.toolbarManager.buttonCalculate.enable(),this.sketcher.toolbarManager.buttonSave.enable()):(this.sketcher.toolbarManager.buttonClean.disable(),this.sketcher.toolbarManager.buttonCalculate.disable(),this.sketcher.toolbarManager.buttonSave.disable()))};this.setBounds=function(){if(this.isActive()){this.sketcher.repaint();this.bounds=new a.Bounds;for(var b=0,c=this.atoms.length;b<c;b++)this.bounds.expand(this.atoms[b].getBounds());b=0;for(c=this.shapes.length;b<c;b++)this.bounds.expand(this.shapes[b].getBounds()); -this.bounds.minX-=5;this.bounds.minY-=5;this.bounds.maxX+=5;this.bounds.maxY+=5}else this.bounds=void 0};this.empty=function(){for(var a=0,c=this.atoms.length;a<c;a++)this.atoms[a].isLassoed=!1;a=0;for(c=this.shapes.length;a<c;a++)this.shapes[a].isLassoed=!1;this.atoms=[];this.shapes=[];this.bounds=void 0;this.enableButtons();this.sketcher.repaint()};this.draw=function(a,c){a.strokeStyle="blue";a.lineWidth=0.5/c.scale;if(0<this.points.length)if(this.mode===f.Lasso.MODE_RECTANGLE_MARQUEE){if(2===this.points.length){var d= -this.points[0],e=this.points[1];a.beginPath();a.rect(d.x,d.y,e.x-d.x,e.y-d.y);a.stroke()}}else if(1<this.points.length){a.beginPath();a.moveTo(this.points[0].x,this.points[0].y);d=1;for(e=this.points.length;d<e;d++)a.lineTo(this.points[d].x,this.points[d].y);a.closePath();a.stroke()}this.bounds&&(a.beginPath(),a.rect(this.bounds.minX,this.bounds.minY,this.bounds.maxX-this.bounds.minX,this.bounds.maxY-this.bounds.minY),a.stroke())};this.isActive=function(){return 0<this.atoms.length||0<this.shapes.length}; -this.getFirstMolecule=function(){if(0<this.atoms.length)return this.sketcher.getMoleculeByAtom(this.atoms[0])};this.getAllPoints=function(){for(var a=this.atoms,c=0,d=this.shapes.length;c<d;c++)a=a.concat(this.shapes[c].getPoints());return a};this.addPoint=function(a){if(this.mode===f.Lasso.MODE_RECTANGLE_MARQUEE)if(2>this.points.length)this.points.push(a);else{var c=this.points[1];c.x=a.x;c.y=a.y}else this.points.push(a)};return!0};f.Lasso.MODE_LASSO="lasso";f.Lasso.MODE_LASSO_SHAPES="shapes";f.Lasso.MODE_RECTANGLE_MARQUEE= -"rectangle"})(ChemDoodle.math,ChemDoodle.monitor,ChemDoodle.sketcher.tools,jQuery.inArray); -(function(a,d,f,c,e,b,h,j,m){a.SketcherCanvas=function(a,d,j,i){this.isMobile=void 0===i.isMobile?f.supports_touch():i.isMobile;this.useServices=void 0===i.useServices?!1:i.useServices;this.oneMolecule=void 0===i.oneMolecule?!1:i.oneMolecule;this.includeToolbar=void 0===i.includeToolbar?!0:i.includeToolbar;this.id=a;this.toolbarManager=new c.gui.ToolbarManager(this);if(this.includeToolbar){this.toolbarManager.write();var o=this;document.getElementById(this.id)?h("#"+a+"_button_attribute_lonePair_decrement_icon").load(function(){o.toolbarManager.setup()}): -h(m).load(function(){o.toolbarManager.setup()});this.dialogManager=new c.gui.DialogManager(this)}this.stateManager=new c.states.StateManager(this);this.historyManager=new c.actions.HistoryManager(this);a&&this.create(a,d,j);this.specs.atoms_circleDiameter_2D=7;this.specs.atoms_circleBorderWidth_2D=0;this.isHelp=!1;this.helpPos=new e.Point(this.width-20,20);this.lastPinchScale=1;this.lastGestureRotate=0;this.inGesture=!1;this.oneMolecule?(a=new e.Molecule,a.atoms.push(new e.Atom),this.loadMolecule(a)): -(this.startAtom=new e.Atom("C",-10,-10),this.startAtom.isLone=!0,this.lasso=new b.Lasso(this));return!0};a.SketcherCanvas.prototype=new a._Canvas;a.SketcherCanvas.prototype.drawSketcherDecorations=function(a){a.save();a.translate(this.width/2,this.height/2);a.rotate(this.specs.rotateAngle);a.scale(this.specs.scale,this.specs.scale);a.translate(-this.width/2,-this.height/2);this.hovering&&this.hovering.drawDecorations(a,this.specs);this.startAtom&&-10!=this.startAtom.x&&!this.isMobile&&this.startAtom.draw(a, -this.specs);this.tempAtom&&(a.strokeStyle="#00FF00",a.fillStyle="#00FF00",a.lineWidth=1,a.beginPath(),a.moveTo(this.hovering.x,this.hovering.y),d.contextHashTo(a,this.hovering.x,this.hovering.y,this.tempAtom.x,this.tempAtom.y,2,2),a.stroke(),a.beginPath(),a.arc(this.tempAtom.x,this.tempAtom.y,3,0,2*j.PI,!1),a.fill(),this.tempAtom.isOverlap&&(a.strokeStyle="#C10000",a.lineWidth=1.2,a.beginPath(),a.arc(this.tempAtom.x,this.tempAtom.y,7,0,2*j.PI,!1),a.stroke()));if(this.tempRing){a.strokeStyle="#00FF00"; -a.fillStyle="#00FF00";a.lineWidth=1;a.beginPath();if(this.hovering instanceof e.Atom){a.moveTo(this.hovering.x,this.hovering.y);d.contextHashTo(a,this.hovering.x,this.hovering.y,this.tempRing[0].x,this.tempRing[0].y,2,2);for(var b=1,c=this.tempRing.length;b<c;b++)d.contextHashTo(a,this.tempRing[b-1].x,this.tempRing[b-1].y,this.tempRing[b].x,this.tempRing[b].y,2,2);d.contextHashTo(a,this.tempRing[this.tempRing.length-1].x,this.tempRing[this.tempRing.length-1].y,this.hovering.x,this.hovering.y,2,2)}else if(this.hovering instanceof -e.Bond){var b=this.hovering.a2,f=this.hovering.a1;this.tempRing[0]===this.hovering.a1&&(b=this.hovering.a1,f=this.hovering.a2);a.moveTo(b.x,b.y);d.contextHashTo(a,b.x,b.y,this.tempRing[1].x,this.tempRing[1].y,2,2);b=2;for(c=this.tempRing.length;b<c;b++)d.contextHashTo(a,this.tempRing[b-1].x,this.tempRing[b-1].y,this.tempRing[b].x,this.tempRing[b].y,2,2);d.contextHashTo(a,this.tempRing[this.tempRing.length-1].x,this.tempRing[this.tempRing.length-1].y,f.x,f.y,2,2)}a.stroke()}this.lasso&&this.lasso.draw(a, -this.specs);this.stateManager.getCurrentState().draw&&this.stateManager.getCurrentState().draw(a);a.restore()};a.SketcherCanvas.prototype.drawChildExtras=function(a){this.drawSketcherDecorations(a);if(!this.hideHelp){var b=a.createRadialGradient(this.width-20,20,10,this.width-20,20,2);b.addColorStop(0,"#00680F");b.addColorStop(1,"#FFFFFF");a.fillStyle=b;a.beginPath();a.arc(this.helpPos.x,this.helpPos.y,10,0,2*j.PI,!1);a.fill();this.isHelp&&(a.lineWidth=2,a.strokeStyle="black",a.stroke());a.fillStyle= -this.isHelp?"red":"black";a.textAlign="center";a.textBaseline="middle";a.font="14px sans-serif";a.fillText("?",this.helpPos.x,this.helpPos.y)}this.paidToHideTrademark||(b=a.measureText("ChemDoodle").width,a.textAlign="left",a.textBaseline="bottom",a.font="14px sans-serif",a.fillStyle="rgba(0, 60, 0, 0.5)",a.fillText("ChemDoodle",this.width-b-13,this.height-4),a.font="8px sans-serif",a.fillText("\u00ae",this.width-13,this.height-12))};a.SketcherCanvas.prototype.scaleEvent=function(a){a.op=new e.Point(a.p.x, -a.p.y);1!==this.specs.scale&&(a.p.x=this.width/2+(a.p.x-this.width/2)/this.specs.scale,a.p.y=this.height/2+(a.p.y-this.height/2)/this.specs.scale)};a.SketcherCanvas.prototype.checkScale=function(){0.5>this.specs.scale?this.specs.scale=0.5:10<this.specs.scale&&(this.specs.scale=10)};a.SketcherCanvas.prototype.click=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().click(a)};a.SketcherCanvas.prototype.rightclick=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().rightclick(a)}; -a.SketcherCanvas.prototype.dblclick=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().dblclick(a)};a.SketcherCanvas.prototype.mousedown=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().mousedown(a)};a.SketcherCanvas.prototype.rightmousedown=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().rightmousedown(a)};a.SketcherCanvas.prototype.mousemove=function(a){this.isHelp=!1;10>a.p.distance(this.helpPos)&&(this.isHelp=!0);this.scaleEvent(a);this.stateManager.getCurrentState().mousemove(a)}; -a.SketcherCanvas.prototype.mouseout=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().mouseout(a)};a.SketcherCanvas.prototype.mouseover=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().mouseover(a)};a.SketcherCanvas.prototype.mouseup=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().mouseup(a)};a.SketcherCanvas.prototype.rightmouseup=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().rightmouseup(a)};a.SketcherCanvas.prototype.mousewheel= -function(a,b){this.scaleEvent(a);this.stateManager.getCurrentState().mousewheel(a,b)};a.SketcherCanvas.prototype.drag=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().drag(a)};a.SketcherCanvas.prototype.keydown=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().keydown(a)};a.SketcherCanvas.prototype.keypress=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().keypress(a)};a.SketcherCanvas.prototype.keyup=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().keyup(a)}; -a.SketcherCanvas.prototype.touchstart=function(a){if(a.originalEvent.touches&&1<a.originalEvent.touches.length){if(this.tempAtom||this.tempRing)this.hovering=this.tempRing=this.tempAtom=void 0,this.repaint();this.lastPoint=void 0}else this.scaleEvent(a),this.stateManager.getCurrentState().mousemove(a),this.stateManager.getCurrentState().mousedown(a)};a.SketcherCanvas.prototype.touchmove=function(a){this.scaleEvent(a);this.inGesture||this.stateManager.getCurrentState().drag(a)};a.SketcherCanvas.prototype.touchend= -function(a){this.scaleEvent(a);this.stateManager.getCurrentState().mouseup(a);this.hovering&&(this.stateManager.getCurrentState().clearHover(),this.repaint())};a.SketcherCanvas.prototype.gesturechange=function(a){this.inGesture=!0;if(1!==a.originalEvent.scale-this.lastPinchScale){if(!this.lasso||!this.lasso.isActive())this.specs.scale*=a.originalEvent.scale/this.lastPinchScale,this.checkScale();this.lastPinchScale=a.originalEvent.scale}if(0!==this.lastGestureRotate-a.originalEvent.rotation){var b= -(this.lastGestureRotate-a.originalEvent.rotation)/180*j.PI;if(this.parentAction){this.parentAction.dif+=b;for(var d=0,f=this.parentAction.ps.length;d<f;d++){var h=this.parentAction.ps[d],k=this.parentAction.center.distance(h),m=this.parentAction.center.angle(h)+b;h.x=this.parentAction.center.x+k*j.cos(m);h.y=this.parentAction.center.y-k*j.sin(m)}d=0;for(f=this.molecules.length;d<f;d++)this.molecules[d].check();this.lasso&&this.lasso.isActive()&&this.lasso.setBounds()}else d=this.lasso&&this.lasso.isActive()? -this.lasso.getAllPoints():this.getAllPoints(),f=this.lasso&&this.lasso.isActive()?new e.Point((this.lasso.bounds.minX+this.lasso.bounds.maxX)/2,(this.lasso.bounds.minY+this.lasso.bounds.maxY)/2):new e.Point(this.width/2,this.height/2),this.parentAction=new c.actions.RotateAction(d,b,f),this.historyManager.pushUndo(this.parentAction);this.lastGestureRotate=a.originalEvent.rotation}this.repaint()};a.SketcherCanvas.prototype.gestureend=function(){this.inGesture=!1;this.lastPinchScale=1;this.lastGestureRotate= -0;this.parentAction=void 0}})(ChemDoodle,ChemDoodle.extensions,ChemDoodle.featureDetection,ChemDoodle.sketcher,ChemDoodle.structures,ChemDoodle.sketcher.tools,jQuery,Math,window); +MOVE:"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\x3d", +NITROGEN:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAoElEQVR42mNgGAU0AwaBPzYaBPx4Z+z7SQRZXN/vlyFQ/L9l6H9Ocgz8b+D/YxY1DfwJxH8N/X6ZUMdAoOuAml8ZBPw8wcDwn5EaLuw09P8eBzJA3/97IlUMBLMDfuwH4pfGof/5qWKgUeBPTWh4TqCKgRD+91Yg/zcsCCg2EGQAkH8PiJ9SxUAQMAz44QlOm9QyEBzLAT/WkGXgKBg4AABF1poQYk+4pAAAAABJRU5ErkJggg\x3d\x3d",OPEN:"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", +OPTIMIZE:"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\x3d\x3d", +OXYGEN:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAABCklEQVR42mNgGAXYwH8pKa7/PDxa/xkY2CgzSFBQ7j8v7wEg/gPEn4H4JxBvAGJh0g3j4pICanwDxCf+8/MrgcW4uXWB/FtAfA/katIM5OGZCNT44b+AgACKOD+/MtTFxcQbxsDADNTwDWQoVnle3nVAfJt4A/n5FYEa/v/n44vF4fpqoPxfoiMJqMEBbCA3twsOFyaC5aFhS4yBOmANPDwhOAwsAssLCfERG4acQA3/gLgKqzwf33Sg3CvSYpmXdy0Q3wEazoQiLirKAxR/jyvC8BmoAY3pZTCvAcNUHCi2F5w+eXhESU/ckLC8CE13T8Axy8u7D5SDKMuCvLwiwBg1Bnl3tGSjPQAAoX15+BfxFYQAAAAASUVORK5CYII\x3d",PERIODIC_TABLE:"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", +PHOSPHORUS:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAeElEQVR42mNgGAU0A/8bGDYC8X8o/gLEV/43MqRSZmA9wwkgtgAalA/kXwSy//1vYtCnxIW74PxGBnewa+sZMqhjYD2DCtTAHOoY2MDQAjXQjBIDrwANKALS+4H4D5A9g9JY/gA1bC4Q+1Ej2eyidjocSQaOgoEDAIsaZcCSspZYAAAAAElFTkSuQmCC",PUSHER_DOUBLE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA8klEQVR42mNgGACgA8QxQBwAxCKUGOQAxKeB+DwQzwfiw0D8HohzyDEM5JrXQBwBxCxI4hpQC7pJ9eJjIDbBIS8BxLeBOIFYA/cDcQUBNSZQS3mICbfbaN7EBZYDcQEhRYuJcB0MeEDDE6flPNBYVCDSQBYCYQ327mUSUwPI2ym4JEuAeDaRBskAsQpUz3SoK1WwhV8JkQaCguc/NOHfg7IxYhyUE1xI8O5zqEEwjAFuY3M2HpAJxP+ghu3FpgAUwwIkGAhS+xdqYC82Bf/JyPM3ofpiqGVgGVSfCbXKSgFsMXwfinHxCYF+dAFKDZRB5gAAj/I5E2fZy9MAAAAASUVORK5CYII\x3d", +PUSHER_SINGLE:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA6ElEQVR42mNgGACgA8QxQBwAxCKUGOQAxKeB+DwQzwfiw0D8HohzyDEM5JrXQBwBxCxI4hpQC7pJ9eJjIDbBIS8BxLeBOIFYA/cDcQUBNSZQS3mICbfbaN7EBZYDcQEhRYuJcB0MeEDDE6flPNBYVCDSQBYCYQ327mUSUwPI2ym4JEuAeDaJBoL0TIeyZdB9txiqgBTgAU38O4H4P9RQOADlBBcSDVSAGvQPiO+gS4KSiwqJBgpADbyKLSzfQxWQCkAGfsFWcPwnsxAB6duOS4JcA1OoWV7+x1VO3odiUsFxXBLkGoiSdgEanzHP7ILArQAAAABJRU5ErkJggg\x3d\x3d",REDO:"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\x3d\x3d", +REMOVE_LONE_PAIR:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAN0lEQVR42mNgGAWjYHACBSDeD8T/gfg4lE+KPAYAKTaBsg2gmkiRxwD/KeTT3oVUD8NRMAoIAAADoBa5tWLP/wAAAABJRU5ErkJggg\x3d\x3d",REMOVE_RADICAL:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAM0lEQVR42mNgGAWjYGgABSDeD8T/gfg4lE8RABlmAmUbQA2lCPwnwB94F1I9DEfBKEADAAT6C11yCuPwAAAAAElFTkSuQmCC",RGROUP:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAA3UlEQVR42u3SPwsBcRzH8YtYFGVELBYGu0dgskgWSgyKJyB2k+wWZTPxCDwBLJikDJKShQlFeF/9Tte5u25U7luv4X736fO7Pz9Jsuf/ZosjzpigqpPpoqRZq+isfQpzcCCDO8KaTAsHuMV1FjN4zArlCeGJhCYTFBsVkcQaAbNXlguj6GNpkBtghY3Ohl+FF7wwh9cglxaZmpWfUkYKV8R1Mj4ssMPQSqHyDXuYwqm678JYPFkeD0SsFvrFEaqr7subdFTle7StFspTwA0xNDASR0qZJk5GR8aeH5k3G/QvyONoufAAAAAASUVORK5CYII\x3d", +SAVE:"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\x3d", +SEARCH:"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\x3d\x3d", +SULFUR:"iVBORw0KGgoAAAANSUhEUgAAABQAAAAUCAYAAACNiR0NAAAAwUlEQVR42mNgGAXo4P9/Y7n///Wl//9nYKTQIAP///8NzwIN+w5k/wHir0BsQK6ruICa3wHxEiCbH8I3jPv/X1eJTAP1jICG/Qe6zoxK4WYmDDTwNxDXUzEyDOZBXGkw+/9/cz4qGMjACHIhEP8D4gdkRwgWl1oD8UNoLFtTKy2KAA17DcTzqRimhjuABh4jU7O+IdCAiP//VdihhpkADfsJpJvJdY0z0ICP0KTzDBoxi2EWUJiPDUxBYThaqtEPAAAQY5TwZ4cDHAAAAABJRU5ErkJggg\x3d\x3d",UNDO:"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\x3d", +ZOOM_IN:"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\x3d", +ZOOM_OUT:"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\x3d"}}(); +(function(a,f,e){a.Button=function(a,c,d,e){this.id=a;this.icon=c;this.toggle=!1;this.tooltip=d?d:"";this.func=e?e:void 0};a=a.Button.prototype;a.getElement=function(){return e("#"+this.id)};a.getSource=function(a){var c=[];this.toggle?(c.push('\x3cinput type\x3d"radio" name\x3d"'),c.push(a),c.push('" id\x3d"'),c.push(this.id),c.push('" title\x3d"'),c.push(this.tooltip),c.push('" /\x3e\x3clabel for\x3d"'),c.push(this.id),c.push('"\x3e\x3cimg id\x3d"'),c.push(this.id),c.push('_icon" title\x3d"'),c.push(this.tooltip), +c.push('" width\x3d"20" height\x3d"20" src\x3d"'),c.push(f.getURI(this.icon)),c.push('"\x3e\x3c/label\x3e')):(c.push('\x3cbutton id\x3d"'),c.push(this.id),c.push('" onclick\x3d"return false;" title\x3d"'),c.push(this.tooltip),c.push('"\x3e\x3cimg title\x3d"'),c.push(this.tooltip),c.push('" width\x3d"20" height\x3d"20" src\x3d"'),c.push(f.getURI(this.icon)),c.push('"\x3e\x3c/button\x3e'));return c.join("")};a.setup=function(a){var c=this.getElement();(!this.toggle||a)&&c.button();c.click(this.func)}; +a.disable=function(){var a=this.getElement();a.mouseout();a.button("disable")};a.enable=function(){this.getElement().button("enable")};a.select=function(){var a=this.getElement();a.attr("checked",!0);a.button("refresh")}})(ChemDoodle.sketcher.gui.desktop,ChemDoodle.sketcher.gui.imageDepot,jQuery); +(function(a,f){a.ButtonSet=function(a){this.id=a;this.buttons=[];this.toggle=!0};var e=a.ButtonSet.prototype;e.getElement=function(){return f("#"+this.id)};e.getSource=function(a){var c=[];c.push('\x3cspan id\x3d"');c.push(this.id);c.push('"\x3e');for(var d=0,e=this.buttons.length;d<e;d++)this.toggle&&(this.buttons[d].toggle=!0),c.push(this.buttons[d].getSource(a));this.dropDown&&c.push(this.dropDown.getButtonSource());c.push("\x3c/span\x3e");this.dropDown&&c.push(this.dropDown.getHiddenSource()); +return c.join("")};e.setup=function(){this.getElement().buttonset();for(var a=0,c=this.buttons.length;a<c;a++)this.buttons[a].setup(!1);this.dropDown&&this.dropDown.setup()};e.addDropDown=function(b){this.dropDown=new a.DropDown(this.id+"_dd",b,this.buttons[this.buttons.length-1])}})(ChemDoodle.sketcher.gui.desktop,jQuery); +(function(a,f,e){a.Dialog=function(a,c,d){this.sketcherid=a;this.id=a+c;this.title=d?d:"Information"};a=a.Dialog.prototype;a.buttons=void 0;a.message=void 0;a.afterMessage=void 0;a.includeTextArea=!1;a.includeTextField=!1;a.getElement=function(){return f("#"+this.id)};a.getTextArea=function(){return f("#"+this.id+"_ta")};a.getTextField=function(){return f("#"+this.id+"_tf")};a.setup=function(){var a=[];a.push('\x3cdiv style\x3d"font-size:12px;" id\x3d"');a.push(this.id);a.push('" title\x3d"');a.push(this.title); +a.push('"\x3e');this.message&&(a.push("\x3cp\x3e"),a.push(this.message),a.push("\x3c/p\x3e"));this.includeTextField&&(a.push('\x3cinput type\x3d"text" style\x3d"font-family:\'Courier New\';" id\x3d"'),a.push(this.id),a.push('_tf"\x3e\x3c/input\x3e'));this.includeTextArea&&(a.push('\x3ctextarea style\x3d"font-family:\'Courier New\';" id\x3d"'),a.push(this.id),a.push('_ta" cols\x3d"55" rows\x3d"10"\x3e\x3c/textarea\x3e'));this.afterMessage&&(a.push("\x3cp\x3e"),a.push(this.afterMessage),a.push("\x3c/p\x3e")); +a.push("\x3c/div\x3e");e.getElementById(this.sketcherid)?f("#"+this.sketcherid).before(a.join("")):e.writeln(a.join(""));this.getElement().dialog({autoOpen:!1,width:435,buttons:this.buttons})}})(ChemDoodle.sketcher.gui.desktop,jQuery,document); +(function(a,f,e,b){f.MolGrabberDialog=function(a,b){this.sketcherid=a;this.id=a+b};a=f.MolGrabberDialog.prototype=new f.Dialog;a.title="MolGrabber";a.setup=function(){var a=[];a.push('\x3cdiv style\x3d"font-size:12px;text-align:center;" id\x3d"');a.push(this.id);a.push('" title\x3d"');a.push(this.title);a.push('"\x3e');this.message&&(a.push("\x3cp\x3e"),a.push(this.message),a.push("\x3c/p\x3e"));a.push('\x3ccanvas class\x3d"ChemDoodleWebComponent" id\x3d"');a.push(this.id);a.push('_mg"\x3e\x3c/canvas\x3e'); +this.afterMessage&&(a.push("\x3cp\x3e"),a.push(this.afterMessage),a.push("\x3c/p\x3e"));a.push("\x3c/div\x3e");b.getElementById(this.sketcherid)?e("#"+this.sketcherid).before(a.join("")):b.writeln(a.join(""));this.canvas=new ChemDoodle.MolGrabberCanvas(this.id+"_mg",200,200);this.getElement().dialog({autoOpen:!1,width:250,buttons:this.buttons})}})(ChemDoodle,ChemDoodle.sketcher.gui.desktop,jQuery,document); +(function(a,f,e,b){f.PeriodicTableDialog=function(a,b){this.sketcherid=a;this.id=a+b};a=f.PeriodicTableDialog.prototype=new f.Dialog;a.title="Periodic Table";a.setup=function(){var a=[];a.push('\x3cdiv style\x3d"text-align:center;" id\x3d"');a.push(this.id);a.push('" title\x3d"');a.push(this.title);a.push('"\x3e');a.push('\x3ccanvas class\x3d"ChemDoodleWebComponents" id\x3d"');a.push(this.id);a.push('_pt"\x3e\x3c/canvas\x3e\x3c/div\x3e');b.getElementById(this.sketcherid)?e("#"+this.sketcherid).before(a.join("")): +b.writeln(a.join(""));this.canvas=new ChemDoodle.PeriodicTableCanvas(this.id+"_pt",20);this.getElement().dialog({autoOpen:!1,width:400,buttons:this.buttons})}})(ChemDoodle,ChemDoodle.sketcher.gui.desktop,jQuery,document); +(function(a,f,e,b){f.SaveFileDialog=function(a,b){this.id=a;this.sketcher=b};a=f.SaveFileDialog.prototype=new f.Dialog;a.title="Save File";a.clear=function(){e("#"+this.id+"_link").html("The file link will appear here.")};a.setup=function(){var a=[];a.push('\x3cdiv style\x3d"font-size:12px;" id\x3d"');a.push(this.id);a.push('" title\x3d"');a.push(this.title);a.push('"\x3e');a.push("\x3cp\x3eSelect the file format to save your structure to and click on the \x3cstrong\x3eGenerate File\x3c/strong\x3e button.\x3c/p\x3e"); +a.push('\x3cselect id\x3d"');a.push(this.id);a.push('_select"\x3e');a.push('\x3coption value\x3d"sk2"\x3eACD/ChemSketch Document {sk2}');a.push('\x3coption value\x3d"ros"\x3eBeilstein ROSDAL {ros}');a.push('\x3coption value\x3d"cdx"\x3eCambridgesoft ChemDraw Exchange {cdx}');a.push('\x3coption value\x3d"cdxml"\x3eCambridgesoft ChemDraw XML {cdxml}');a.push('\x3coption value\x3d"mrv"\x3eChemAxon Marvin Document {mrv}');a.push('\x3coption value\x3d"cml"\x3eChemical Markup Language {cml}');a.push('\x3coption value\x3d"smiles"\x3eDaylight SMILES {smiles}'); +a.push('\x3coption value\x3d"icl" selected\x3eiChemLabs ChemDoodle Document {icl}');a.push('\x3coption value\x3d"inchi"\x3eIUPAC InChI {inchi}');a.push('\x3coption value\x3d"jdx"\x3eIUPAC JCAMP-DX {jdx}');a.push('\x3coption value\x3d"skc"\x3eMDL ISIS Sketch {skc}');a.push('\x3coption value\x3d"tgf"\x3eMDL ISIS Sketch Transportable Graphics File {tgf}');a.push('\x3coption value\x3d"mol"\x3eMDL MOLFile {mol}');a.push('\x3coption value\x3d"sdf"\x3eMDL SDFile {sdf}');a.push('\x3coption value\x3d"jme"\x3eMolinspiration JME String {jme}'); +a.push('\x3coption value\x3d"pdb"\x3eRCSB Protein Data Bank {pdb}');a.push('\x3coption value\x3d"mmd"\x3eSchr\x26ouml;dinger Macromodel {mmd}');a.push('\x3coption value\x3d"mae"\x3eSchr\x26ouml;dinger Maestro {mae}');a.push('\x3coption value\x3d"smd"\x3eStandard Molecular Data {smd}');a.push('\x3coption value\x3d"mol2"\x3eTripos Mol2 {mol2}');a.push('\x3coption value\x3d"sln"\x3eTripos SYBYL SLN {sln}');a.push('\x3coption value\x3d"xyz"\x3eXYZ {xyz}');a.push("\x3c/select\x3e");a.push('\x3cbutton id\x3d"'); +a.push(this.id);a.push('_button"\x3e');a.push("Generate File\x3c/button\x3e");a.push("\x3cp\x3eWhen the file is written, a link will appear in the red-bordered box below, right-click on the link and choose the browser's \x3cstrong\x3eSave As...\x3c/strong\x3e function to save the file to your computer.\x3c/p\x3e");a.push('\x3cdiv style\x3d"width:100%;height:30px;border:1px solid #c10000;text-align:center;" id\x3d"');a.push(this.id);a.push('_link"\x3eThe file link will appear here.\x3c/div\x3e');a.push('\x3cp\x3e\x3ca href\x3d"http://www.chemdoodle.com" target\x3d"_blank"\x3eHow do I use these files?\x3c/a\x3e\x3c/p\x3e'); +a.push("\x3c/div\x3e");b.getElementById(this.sketcher.id)?e("#"+this.sketcher.id).before(a.join("")):b.writeln(a.join(""));var d=this;e("#"+this.id+"_button").click(function(){e("#"+d.id+"_link").html("Generating file, please wait...");ChemDoodle.iChemLabs.saveFile(d.sketcher.oneMolecule?d.sketcher.molecules[0]:d.sketcher.lasso.getFirstMolecule(),{ext:e("#"+d.id+"_select").val()},function(a){e("#"+d.id+"_link").html('\x3ca href\x3d"'+a+'"\x3e\x3cspan style\x3d"text-decoration:underline;"\x3eFile is generated. Right-click on this link and Save As...\x3c/span\x3e\x3c/a\x3e')})}); +this.getElement().dialog({autoOpen:!1,width:435,buttons:d.buttons})}})(ChemDoodle,ChemDoodle.sketcher.gui.desktop,jQuery,document); +(function(a,f,e,b,c){e.DialogManager=function(d){d.useServices?this.saveDialog=new b.SaveFileDialog(d.id+"_save_dialog",d):(this.saveDialog=new b.Dialog(d.id,"_save_dialog","Save Molecule"),this.saveDialog.message="Copy and paste the content of the textarea into a file and save it with the extension \x3cstrong\x3e.mol\x3c/strong\x3e.",this.saveDialog.includeTextArea=!0,this.saveDialog.afterMessage='\x3ca href\x3d"http://www.chemdoodle.com" target\x3d"_blank"\x3eHow do I use MOLFiles?\x3c/a\x3e'); +this.saveDialog.setup();this.loadDialog=new b.Dialog(d.id,"_load_dialog","Load Molecule");this.loadDialog.message="Copy and paste the contents of a MOLFile (extension \x3cstrong\x3e.mol\x3c/strong\x3e) in the textarea below and then press the \x3cstrong\x3eLoad\x3c/strong\x3e button.";this.loadDialog.includeTextArea=!0;this.loadDialog.afterMessage='\x3ca href\x3d"http://www.chemdoodle.com" target\x3d"_blank"\x3eWhere do I get MOLFiles?\x3c/a\x3e';var e=this;this.loadDialog.buttons={Load:function(){c(this).dialog("close"); +var b=a.readMOL(e.loadDialog.getTextArea().val());0<b.atoms.length?d.oneMolecule?d.historyManager.pushUndo(new f.SwitchMoleculeAction(d,b)):(d.historyManager.pushUndo(new f.NewMoleculeAction(d,b.atoms,b.bonds)),d.toolbarManager.buttonLasso.getElement().click(),d.lasso.select(b.atoms,[])):alert("No chemical content was recognized.")}};this.loadDialog.setup();this.searchDialog=new b.MolGrabberDialog(d.id,"_search_dialog");this.searchDialog.buttons={Load:function(){c(this).dialog("close");var a=e.searchDialog.canvas.molecules[0]; +a&&0<a.atoms.length&&(d.oneMolecule?a!==d.molecule&&d.historyManager.pushUndo(new f.SwitchMoleculeAction(d,a)):(d.historyManager.pushUndo(new f.NewMoleculeAction(d,a.atoms,a.bonds)),d.toolbarManager.buttonLasso.getElement().click(),d.lasso.select(a.atoms,[])))}};this.searchDialog.setup();this.periodicTableDialog=new b.PeriodicTableDialog(d.id,"_periodicTable_dialog");this.periodicTableDialog.buttons={Close:function(){c(this).dialog("close")}};this.periodicTableDialog.setup();this.periodicTableDialog.canvas.click= +function(){if(this.hovered){this.selected=this.hovered;var a=this.getHoveredElement();d.stateManager.setState(d.stateManager.STATE_LABEL);d.stateManager.STATE_LABEL.label=a.symbol;d.toolbarManager.buttonLabel.select();this.repaint()}};this.calculateDialog=new b.Dialog(d.id,"_calculate_dialog","Calculations");this.calculateDialog.includeTextArea=!0;this.calculateDialog.afterMessage='\x3ca href\x3d"http://www.chemdoodle.com" target\x3d"_blank"\x3eWant more calculations?\x3c/a\x3e';this.calculateDialog.setup(); +this.inputDialog=new b.Dialog(d.id,"_input_dialog","Input");this.inputDialog.message='Please input the rgroup number (must be a positive integer). Input "-1" to remove the rgroup.';this.inputDialog.includeTextField=!0;this.inputDialog.buttons={Done:function(){c(this).dialog("close");e.inputDialog.doneFunction&&e.inputDialog.doneFunction(e.inputDialog.getTextField().val())}};this.inputDialog.setup()}})(ChemDoodle,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.gui,ChemDoodle.sketcher.gui.desktop,jQuery); +(function(a,f,e,b){a.DropDown=function(c,b,e){this.id=c;this.tooltip=b;this.dummy=e;this.buttonSet=new a.ButtonSet(c+"_set");this.buttonSet.buttonGroup=b;this.defaultButton=void 0};var c=a.DropDown.prototype;c.getButtonSource=function(){var a=[];a.push('\x3cbutton id\x3d"');a.push(this.id);a.push('" onclick\x3d"return false;" title\x3d"');a.push(this.tooltip);a.push('"\x3e\x3cimg title\x3d"');a.push(this.tooltip);a.push('" src\x3d"');a.push(f.getURI(f.ARROW_DOWN));a.push('"\x3e\x3c/button\x3e');return a.join("")}; +c.getHiddenSource=function(){var a=[];a.push('\x3cdiv style\x3d"display:none;position:absolute;z-index:10;border:1px #C1C1C1 solid;background:#F5F5F5;padding:5px;border-bottom-left-radius:5px;-moz-border-radius-bottomleft:5px;border-bottom-right-radius:5px;-moz-border-radius-bottomright:5px;" id\x3d"');a.push(this.id);a.push('_hidden"\x3e');a.push(this.buttonSet.getSource(this.id+"_popup_set"));a.push("\x3c/div\x3e");return a.join("")};c.setup=function(){this.defaultButton||(this.defaultButton=this.buttonSet.buttons[0]); +var a="#"+this.id;e(a).button();e(a+"_hidden").hide();e(a).click(function(){var c=e(a+"_hidden");c.show().position({my:"center top",at:"center bottom",of:this,collision:"fit"});e(b).one("click",function(){c.hide()});return!1});this.buttonSet.setup();var c=this;e.each(this.buttonSet.buttons,function(a){c.buttonSet.buttons[a].getElement().click(function(){c.dummy.absorb(c.buttonSet.buttons[a]);c.dummy.select();c.dummy.func()})});c.dummy.absorb(this.defaultButton);this.defaultButton.select()}})(ChemDoodle.sketcher.gui.desktop, +ChemDoodle.sketcher.gui.imageDepot,jQuery,document);(function(a,f,e){a.DummyButton=function(a,c,d){this.id=a;this.icon=c;this.toggle=!1;this.tooltip=d?d:"";this.func=void 0};a=a.DummyButton.prototype=new a.Button;a.setup=function(){var a=this;this.getElement().click(function(){a.func()})};a.absorb=function(a){e("#"+this.id+"_icon").attr("src",f.getURI(a.icon));this.func=a.func}})(ChemDoodle.sketcher.gui.desktop,ChemDoodle.sketcher.gui.imageDepot,jQuery); +(function(a,f,e,b,c,d,j,g,m,h,k,p){d.ToolbarManager=function(i){this.sketcher=i;this.buttonOpen=new g.Button(i.id+"_button_open",j.OPEN,"Open",function(){i.dialogManager.loadDialog.getTextArea().val("");i.dialogManager.loadDialog.getElement().dialog("open")});this.buttonSave=new g.Button(i.id+"_button_save",j.SAVE,"Save",function(){i.useServices?i.dialogManager.saveDialog.clear():i.oneMolecule?i.dialogManager.saveDialog.getTextArea().val(a.writeMOL(i.molecules[0])):i.lasso.isActive()&&i.dialogManager.saveDialog.getTextArea().val(a.writeMOL(i.lasso.getFirstMolecule())); +i.dialogManager.saveDialog.getElement().dialog("open")});this.buttonSearch=new g.Button(i.id+"_button_search",j.SEARCH,"Search",function(){i.dialogManager.searchDialog.getElement().dialog("open")});this.buttonCalculate=new g.Button(i.id+"_button_calculate",j.CALCULATE,"Calculate",function(){var a=i.oneMolecule?i.molecules[0]:i.lasso.getFirstMolecule();a&&f.calculate(a,{descriptors:"mf mw miw deg_unsat hba hbd pol_miller cmr tpsa xlogp2".split(" ")},function(a){function c(a,i,h){b.push(a);b.push(": "); +for(a=a.length+2;30>a;a++)b.push(" ");b.push(i);b.push(" ");b.push(h);b.push("\n")}var b=[];c("Molecular Formula",a.mf,"");c("Molecular Mass",a.mw,"amu");c("Monoisotopic Mass",a.miw,"amu");c("Degree of Unsaturation",a.deg_unsat,"");c("Hydrogen Bond Acceptors",a.hba,"");c("Hydrogen Bond Donors",a.hbd,"");c("Molecular Polarizability",a.pol_miller,"????");c("Molar Refractivity",a.cmr,"cm??/mol");c("Polar Surface Area",a.tpsa,"????");c("logP",a.xlogp2,"");i.dialogManager.calculateDialog.getTextArea().val(b.join("")); +i.dialogManager.calculateDialog.getElement().dialog("open")})});this.buttonMove=new g.Button(i.id+"_button_move",j.MOVE,"Move",function(){i.stateManager.setState(i.stateManager.STATE_MOVE)});this.buttonMove.toggle=!0;this.buttonErase=new g.Button(i.id+"_button_erase",j.ERASE,"Erase",function(){i.stateManager.setState(i.stateManager.STATE_ERASE)});this.buttonErase.toggle=!0;this.buttonClear=new g.Button(i.id+"_button_clear",j.CLEAR,"Clear",function(){var a=!0;if(i.oneMolecule){if(1===i.molecules[0].atoms.length){var b= +i.molecules[0].atoms[0];"C"===b.label&&(0===b.charge&&-1===b.mass)&&(a=!1)}}else 0===i.molecules.length&&0===i.shapes.length&&(a=!1);a&&(i.stateManager.getCurrentState().clearHover(),i.lasso&&i.lasso.isActive()&&i.lasso.empty(),i.historyManager.pushUndo(new c.ClearAction(i)))});this.buttonClean=new g.Button(i.id+"_button_clean",j.OPTIMIZE,"Clean",function(){var a=i.oneMolecule?i.molecules[0]:i.lasso.getFirstMolecule();if(a){var h=new e.JSONInterpreter;f._contactServer("optimize",{mol:h.molTo(a)}, +{dimension:2},function(d){d=h.molFrom(d.mol);var e=d.getCenter(),f=i.oneMolecule?new b.Point(i.width/2,i.height/2):a.getCenter();f.sub(e);for(var e=0,g=d.atoms.length;e<g;e++)d.atoms[e].add(f);i.historyManager.pushUndo(new c.ChangeCoordinatesAction(a.atoms,d.atoms))})}});this.makeLassoSet(this);this.makeScaleSet(this);this.makeHistorySet(this);this.makeLabelSet(this);this.makeBondSet(this);this.makeRingSet(this);this.makeAttributeSet(this);this.makeShapeSet(this)};d=d.ToolbarManager.prototype;d.write= +function(){var a=[],c=this.sketcher.id+"_main_group";this.sketcher.oneMolecule?a.push(this.buttonMove.getSource(c)):a.push(this.lassoSet.getSource(c));a.push(this.buttonClear.getSource());a.push(this.buttonErase.getSource(c));this.sketcher.useServices&&a.push(this.buttonClean.getSource());a.push(this.historySet.getSource());a.push(this.scaleSet.getSource());a.push(this.buttonOpen.getSource());a.push(this.buttonSave.getSource());this.sketcher.useServices&&(a.push(this.buttonSearch.getSource()),a.push(this.buttonCalculate.getSource())); +a.push("\x3cbr\x3e");a.push(this.labelSet.getSource(c));a.push(this.attributeSet.getSource(c));a.push(this.bondSet.getSource(c));a.push(this.ringSet.getSource(c));this.sketcher.oneMolecule||a.push(this.shapeSet.getSource(c));a.push("\x3cbr\x3e");p.getElementById(this.sketcher.id)?k("#"+this.sketcher.id).before(a.join("")):p.write(a.join(""))};d.setup=function(){this.sketcher.oneMolecule?this.buttonMove.setup(!0):this.lassoSet.setup();this.buttonClear.setup();this.buttonErase.setup(!0);this.sketcher.useServices&& +this.buttonClean.setup();this.historySet.setup();this.scaleSet.setup();this.buttonOpen.setup();this.buttonSave.setup();this.sketcher.useServices&&(this.buttonSearch.setup(),this.buttonCalculate.setup());this.labelSet.setup();this.attributeSet.setup();this.bondSet.setup();this.ringSet.setup();this.sketcher.oneMolecule||this.shapeSet.setup();this.buttonSingle.select();this.buttonUndo.disable();this.buttonRedo.disable();!this.sketcher.oneMolecule&&this.sketcher.useServices&&(this.buttonClean.disable(), +this.buttonCalculate.disable(),this.buttonSave.disable())};d.makeScaleSet=function(a){this.scaleSet=new g.ButtonSet(a.sketcher.id+"_buttons_scale");this.scaleSet.toggle=!1;this.buttonScalePlus=new g.Button(a.sketcher.id+"_button_scale_plus",j.ZOOM_IN,"Increase Scale",function(){a.sketcher.specs.scale*=1.5;a.sketcher.checkScale();a.sketcher.repaint()});this.scaleSet.buttons.push(this.buttonScalePlus);this.buttonScaleMinus=new g.Button(a.sketcher.id+"_button_scale_minus",j.ZOOM_OUT,"Decrease Scale", +function(){a.sketcher.specs.scale/=1.5;a.sketcher.checkScale();a.sketcher.repaint()});this.scaleSet.buttons.push(this.buttonScaleMinus)};d.makeLassoSet=function(a){this.lassoSet=new g.ButtonSet(a.sketcher.id+"_buttons_lasso");this.buttonLasso=new g.DummyButton(a.sketcher.id+"_button_lasso",j.LASSO,"Selection Tool");this.lassoSet.buttons.push(this.buttonLasso);this.lassoSet.addDropDown("More Selection Tools");this.lassoSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_lasso_lasso", +j.LASSO,"Lasso Tool",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LASSO);a.sketcher.lasso.mode=m.Lasso.MODE_LASSO;0<a.sketcher.molecules.length&&!a.sketcher.lasso.isActive()&&a.sketcher.lasso.select(a.sketcher.molecules[a.sketcher.molecules.length-1].atoms,[])}));this.lassoSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_lasso_shapes",j.LASSO_SHAPES,"Lasso Tool (shapes only)",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LASSO); +a.sketcher.lasso.mode=m.Lasso.MODE_LASSO_SHAPES;0<a.sketcher.shapes.length&&!a.sketcher.lasso.isActive()&&a.sketcher.lasso.select([],[a.sketcher.shapes[a.sketcher.shapes.length-1]])}));this.lassoSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_lasso_marquee",j.MARQUEE,"Marquee Tool",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LASSO);a.sketcher.lasso.mode=m.Lasso.MODE_RECTANGLE_MARQUEE;0<a.sketcher.molecules.length&&!a.sketcher.lasso.isActive()&& +a.sketcher.lasso.select(a.sketcher.molecules[a.sketcher.molecules.length-1].atoms,[])}))};d.makeHistorySet=function(a){this.historySet=new g.ButtonSet(a.sketcher.id+"_buttons_history");this.historySet.toggle=!1;this.buttonUndo=new g.Button(a.sketcher.id+"_button_undo",j.UNDO,"Undo",function(){a.sketcher.historyManager.undo()});this.historySet.buttons.push(this.buttonUndo);this.buttonRedo=new g.Button(a.sketcher.id+"_button_redo",j.REDO,"Redo",function(){a.sketcher.historyManager.redo()});this.historySet.buttons.push(this.buttonRedo)}; +d.makeLabelSet=function(a){this.labelSet=new g.ButtonSet(a.sketcher.id+"_buttons_label");this.buttonLabel=new g.DummyButton(a.sketcher.id+"_button_label",j.CARBON,"Set Label");this.labelSet.buttons.push(this.buttonLabel);this.labelSet.addDropDown("More Labels");this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_h",j.HYDROGEN,"Hydrogen",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="H"})); +this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_c",j.CARBON,"Carbon",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="C"}));this.labelSet.dropDown.defaultButton=this.labelSet.dropDown.buttonSet.buttons[this.labelSet.dropDown.buttonSet.buttons.length-1];this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_n",j.NITROGEN,"Nitrogen",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL); +a.sketcher.stateManager.STATE_LABEL.label="N"}));this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_o",j.OXYGEN,"Oxygen",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="O"}));this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_f",j.FLUORINE,"Fluorine",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label= +"F"}));this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_cl",j.CHLORINE,"Chlorine",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="Cl"}));this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_br",j.BROMINE,"Bromine",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="Br"}));this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+ +"_button_label_i",j.IODINE,"Iodine",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="I"}));this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_p",j.PHOSPHORUS,"Phosphorus",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="P"}));this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_s", +j.SULFUR,"Sulfur",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LABEL);a.sketcher.stateManager.STATE_LABEL.label="S"}));this.labelSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_pt",j.PERIODIC_TABLE,"Choose Symbol",function(){for(var c=0,b=a.sketcher.dialogManager.periodicTableDialog.canvas.cells.length;c<b;c++){var h=a.sketcher.dialogManager.periodicTableDialog.canvas.cells[c];if(h.element.symbol===a.sketcher.stateManager.STATE_LABEL.label){a.sketcher.dialogManager.periodicTableDialog.canvas.selected= +h;a.sketcher.dialogManager.periodicTableDialog.canvas.repaint();break}}a.sketcher.dialogManager.periodicTableDialog.getElement().dialog("open")}))};d.makeBondSet=function(a){this.bondSet=new g.ButtonSet(a.sketcher.id+"_buttons_bond");this.buttonSingle=new g.Button(a.sketcher.id+"_button_bond_single",j.BOND_SINGLE,"Single Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=1;a.sketcher.stateManager.STATE_NEW_BOND.stereo= +b.Bond.STEREO_NONE});this.bondSet.buttons.push(this.buttonSingle);this.buttonRecessed=new g.Button(a.sketcher.id+"_button_bond_recessed",j.BOND_RECESSED,"Recessed Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=1;a.sketcher.stateManager.STATE_NEW_BOND.stereo=b.Bond.STEREO_RECESSED});this.bondSet.buttons.push(this.buttonRecessed);this.buttonProtruding=new g.Button(a.sketcher.id+"_button_bond_protruding",j.BOND_PROTRUDING, +"Protruding Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=1;a.sketcher.stateManager.STATE_NEW_BOND.stereo=b.Bond.STEREO_PROTRUDING});this.bondSet.buttons.push(this.buttonProtruding);this.buttonDouble=new g.Button(a.sketcher.id+"_button_bond_double",j.BOND_DOUBLE,"Double Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder= +2;a.sketcher.stateManager.STATE_NEW_BOND.stereo=b.Bond.STEREO_NONE});this.bondSet.buttons.push(this.buttonDouble);this.buttonBond=new g.DummyButton(a.sketcher.id+"_button_bond",j.BOND_TRIPLE,"Other Bond");this.bondSet.buttons.push(this.buttonBond);this.bondSet.addDropDown("More Bonds");this.bondSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_bond_zero",j.BOND_ZERO,"Zero Bond (Ionic/Hydrogen)",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND); +a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=0;a.sketcher.stateManager.STATE_NEW_BOND.stereo=b.Bond.STEREO_NONE}));this.bondSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_bond_half",j.BOND_HALF,"Half Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=0.5;a.sketcher.stateManager.STATE_NEW_BOND.stereo=b.Bond.STEREO_NONE}));this.bondSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+ +"_button_bond_resonance",j.BOND_RESONANCE,"Resonance Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=1.5;a.sketcher.stateManager.STATE_NEW_BOND.stereo=b.Bond.STEREO_NONE}));this.bondSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_bond_ambiguous_double",j.BOND_DOUBLE_AMBIGUOUS,"Ambiguous Double Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder= +2;a.sketcher.stateManager.STATE_NEW_BOND.stereo=b.Bond.STEREO_AMBIGUOUS}));this.bondSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_bond_triple",j.BOND_TRIPLE,"Triple Bond",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_BOND);a.sketcher.stateManager.STATE_NEW_BOND.bondOrder=3;a.sketcher.stateManager.STATE_NEW_BOND.stereo=b.Bond.STEREO_NONE}));this.bondSet.dropDown.defaultButton=this.bondSet.dropDown.buttonSet.buttons[this.bondSet.dropDown.buttonSet.buttons.length- +1]};d.makeRingSet=function(a){this.ringSet=new g.ButtonSet(a.sketcher.id+"_buttons_ring");this.buttonCyclohexane=new g.Button(a.sketcher.id+"_button_ring_cyclohexane",j.CYCLOHEXANE,"Cyclohexane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides=6;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1});this.ringSet.buttons.push(this.buttonCyclohexane);this.buttonBenzene=new g.Button(a.sketcher.id+"_button_ring_benzene", +j.BENZENE,"Benzene Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides=6;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!0});this.ringSet.buttons.push(this.buttonBenzene);this.buttonRing=new g.DummyButton(a.sketcher.id+"_button_ring",j.CYCLOPENTANE,"Other Ring");this.ringSet.buttons.push(this.buttonRing);this.ringSet.addDropDown("More Rings");this.ringSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+ +"_button_ring_cyclopropane",j.CYCLOPROPANE,"Cyclopropane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides=3;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1}));this.ringSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_ring_cyclobutane",j.CYCLOBUTANE,"Cyclobutane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides= +4;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1}));this.ringSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_ring_cyclopentane",j.CYCLOPENTANE,"Cyclopentane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides=5;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1}));this.ringSet.dropDown.defaultButton=this.ringSet.dropDown.buttonSet.buttons[this.ringSet.dropDown.buttonSet.buttons.length- +1];this.ringSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_ring_cycloheptane",j.CYCLOHEPTANE,"Cycloheptane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING);a.sketcher.stateManager.STATE_NEW_RING.numSides=7;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1}));this.ringSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_ring_cyclooctane",j.CYCLOOCTANE,"Cyclooctane Ring",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_NEW_RING); +a.sketcher.stateManager.STATE_NEW_RING.numSides=8;a.sketcher.stateManager.STATE_NEW_RING.unsaturated=!1}))};d.makeAttributeSet=function(a){this.attributeSet=new g.ButtonSet(a.sketcher.id+"_buttons_attribute");this.buttonAttribute=new g.DummyButton(a.sketcher.id+"_button_attribute",j.INCREASE_CHARGE,"Attributes");this.attributeSet.buttons.push(this.buttonAttribute);this.attributeSet.addDropDown("More Attributes");this.attributeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_attribute_charge_increment", +j.INCREASE_CHARGE,"Increase Charge",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_CHARGE);a.sketcher.stateManager.STATE_CHARGE.delta=1}));this.attributeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_attribute_charge_decrement",j.DECREASE_CHARGE,"Decrease Charge",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_CHARGE);a.sketcher.stateManager.STATE_CHARGE.delta=-1}));this.attributeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+ +"_button_attribute_lonePair_increment",j.ADD_LONE_PAIR,"Add Lone Pair",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LONE_PAIR);a.sketcher.stateManager.STATE_LONE_PAIR.delta=1}));this.attributeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_attribute_lonePair_decrement",j.REMOVE_LONE_PAIR,"Remove Lone Pair",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_LONE_PAIR);a.sketcher.stateManager.STATE_LONE_PAIR.delta=-1}));this.attributeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+ +"_button_attribute_radical_increment",j.ADD_RADICAL,"Add Radical",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_RADICAL);a.sketcher.stateManager.STATE_RADICAL.delta=1}));this.attributeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_attribute_radical_decrement",j.REMOVE_RADICAL,"Remove Radical",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_RADICAL);a.sketcher.stateManager.STATE_RADICAL.delta=-1}));this.attributeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+ +"_button_label_any",j.ANY_ELEMENT,"Any Element",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_ATOM_QUERY);a.sketcher.stateManager.STATE_ATOM_QUERY.mode=h.AtomQueryState.MODE_ANY}));this.attributeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_label_rgroup",j.RGROUP,"Rgroup",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_ATOM_QUERY);a.sketcher.stateManager.STATE_ATOM_QUERY.mode=h.AtomQueryState.MODE_RGROUP}))};d.makeShapeSet= +function(a){this.shapeSet=new g.ButtonSet(a.sketcher.id+"_buttons_shape");this.buttonShape=new g.DummyButton(a.sketcher.id+"_button_shape",j.ARROW_SYNTHETIC,"Add Shape");this.shapeSet.buttons.push(this.buttonShape);this.shapeSet.addDropDown("More Shapes");this.shapeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_shape_arrow_synthetic",j.ARROW_SYNTHETIC,"Synthetic Arrow",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_SHAPE);a.sketcher.stateManager.STATE_SHAPE.shapeType= +h.ShapeState.ARROW_SYNTHETIC}));this.shapeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_shape_arrow_retrosynthetic",j.ARROW_RETROSYNTHETIC,"Retrosynthetic Arrow",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_SHAPE);a.sketcher.stateManager.STATE_SHAPE.shapeType=h.ShapeState.ARROW_RETROSYNTHETIC}));this.shapeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_shape_arrow_resonance",j.ARROW_RESONANCE,"Resonance Arrow",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_SHAPE); +a.sketcher.stateManager.STATE_SHAPE.shapeType=h.ShapeState.ARROW_RESONANCE}));this.shapeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_shape_arrow_equilibrium",j.ARROW_EQUILIBRIUM,"Equilibrium Arrow",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_SHAPE);a.sketcher.stateManager.STATE_SHAPE.shapeType=h.ShapeState.ARROW_EQUILIBRIUM}));this.shapeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_shape_pusher_1",j.PUSHER_SINGLE,"Single Electron Pusher", +function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_PUSHER);a.sketcher.stateManager.STATE_PUSHER.numElectron=1}));this.shapeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_shape_pusher_2",j.PUSHER_DOUBLE,"Electron Pair Pusher",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_PUSHER);a.sketcher.stateManager.STATE_PUSHER.numElectron=2}));this.shapeSet.dropDown.buttonSet.buttons.push(new g.Button(a.sketcher.id+"_button_shape_charge_bracket", +j.CHARGE_BRACKET,"Bracket",function(){a.sketcher.stateManager.setState(a.sketcher.stateManager.STATE_SHAPE);a.sketcher.stateManager.STATE_SHAPE.shapeType=h.ShapeState.BRACKET;a.sketcher.repaint()}))}})(ChemDoodle,ChemDoodle.iChemLabs,ChemDoodle.io,ChemDoodle.structures,ChemDoodle.sketcher.actions,ChemDoodle.sketcher.gui,ChemDoodle.sketcher.gui.imageDepot,ChemDoodle.sketcher.gui.desktop,ChemDoodle.sketcher.tools,ChemDoodle.sketcher.states,jQuery,document); +(function(a,f,e){e.Lasso=function(a){this.sketcher=a;this.atoms=[];this.shapes=[];this.bounds=void 0;this.mode=e.Lasso.MODE_LASSO;this.points=[]};e.Lasso.MODE_LASSO="lasso";e.Lasso.MODE_LASSO_SHAPES="shapes";e.Lasso.MODE_RECTANGLE_MARQUEE="rectangle";var b=e.Lasso.prototype;b.select=function(c,b){if(!this.block){f.SHIFT||this.empty();if(c)this.atoms=c.slice(0),this.shapes=b.slice(0);else{if(this.mode!==e.Lasso.MODE_LASSO_SHAPES){for(var j=[],g=0,m=this.sketcher.molecules.length;g<m;g++)for(var h= +this.sketcher.molecules[g],k=0,p=h.atoms.length;k<p;k++){var i=h.atoms[k];this.mode===e.Lasso.MODE_RECTANGLE_MARQUEE?2===this.points.length&&a.isBetween(i.x,this.points[0].x,this.points[1].x)&&a.isBetween(i.y,this.points[0].y,this.points[1].y)&&j.push(i):1<this.points.length&&a.isPointInPoly(this.points,i)&&j.push(i)}if(0===this.atoms.length)this.atoms=j;else{for(var l=[],g=0,m=this.atoms.length;g<m;g++)i=this.atoms[g],-1===j.indexOf(i)?l.push(i):i.isLassoed=!1;g=0;for(m=j.length;g<m;g++)-1===this.atoms.indexOf(j[g])&& +l.push(j[g]);this.atoms=l}}j=[];g=0;for(m=this.sketcher.shapes.length;g<m;g++){for(var h=this.sketcher.shapes[g],i=h.getPoints(),n=0<i.length,k=0,p=i.length;k<p;k++){var o=i[k];if(this.mode===e.Lasso.MODE_RECTANGLE_MARQUEE)if(2===this.points.length){if(!a.isBetween(o.x,this.points[0].x,this.points[1].x)||!a.isBetween(o.y,this.points[0].y,this.points[1].y)){n=!1;break}}else{n=!1;break}else if(1<this.points.length){if(!a.isPointInPoly(this.points,o)){n=!1;break}}else{n=!1;break}}n&&j.push(h)}if(0=== +this.shapes.length)this.shapes=j;else{k=[];g=0;for(m=this.shapes.length;g<m;g++)h=this.shapes[g],-1===j.indexOf(h)?l.push(h):h.isLassoed=!1;g=0;for(m=j.length;g<m;g++)-1===this.shapes.indexOf(j[g])&&k.push(j[g]);this.shapes=k}}g=0;for(m=this.atoms.length;g<m;g++)this.atoms[g].isLassoed=!0;g=0;for(m=this.shapes.length;g<m;g++)this.shapes[g].isLassoed=!0;this.setBounds();this.bounds&&Infinity===this.bounds.minX&&this.empty();this.points=[];this.sketcher.stateManager.getCurrentState().clearHover();this.enableButtons(); +this.sketcher.repaint()}};b.enableButtons=function(){this.sketcher.useServices&&(0<this.atoms.length?(this.sketcher.toolbarManager.buttonClean.enable(),this.sketcher.toolbarManager.buttonCalculate.enable(),this.sketcher.toolbarManager.buttonSave.enable()):(this.sketcher.toolbarManager.buttonClean.disable(),this.sketcher.toolbarManager.buttonCalculate.disable(),this.sketcher.toolbarManager.buttonSave.disable()))};b.setBounds=function(){if(this.isActive()){this.sketcher.repaint();this.bounds=new a.Bounds; +for(var c=0,b=this.atoms.length;c<b;c++)this.bounds.expand(this.atoms[c].getBounds());c=0;for(b=this.shapes.length;c<b;c++)this.bounds.expand(this.shapes[c].getBounds());this.bounds.minX-=5;this.bounds.minY-=5;this.bounds.maxX+=5;this.bounds.maxY+=5}else this.bounds=void 0};b.empty=function(){for(var a=0,b=this.atoms.length;a<b;a++)this.atoms[a].isLassoed=!1;a=0;for(b=this.shapes.length;a<b;a++)this.shapes[a].isLassoed=!1;this.atoms=[];this.shapes=[];this.bounds=void 0;this.enableButtons();this.sketcher.repaint()}; +b.draw=function(a,b){a.strokeStyle="blue";a.lineWidth=0.5/b.scale;if(0<this.points.length)if(this.mode===e.Lasso.MODE_RECTANGLE_MARQUEE){if(2===this.points.length){var f=this.points[0],g=this.points[1];a.beginPath();a.rect(f.x,f.y,g.x-f.x,g.y-f.y);a.stroke()}}else if(1<this.points.length){a.beginPath();a.moveTo(this.points[0].x,this.points[0].y);f=1;for(g=this.points.length;f<g;f++)a.lineTo(this.points[f].x,this.points[f].y);a.closePath();a.stroke()}this.bounds&&(a.beginPath(),a.rect(this.bounds.minX, +this.bounds.minY,this.bounds.maxX-this.bounds.minX,this.bounds.maxY-this.bounds.minY),a.stroke())};b.isActive=function(){return 0<this.atoms.length||0<this.shapes.length};b.getFirstMolecule=function(){if(0<this.atoms.length)return this.sketcher.getMoleculeByAtom(this.atoms[0])};b.getAllPoints=function(){for(var a=this.atoms,b=0,e=this.shapes.length;b<e;b++)a=a.concat(this.shapes[b].getPoints());return a};b.addPoint=function(a){if(this.mode===e.Lasso.MODE_RECTANGLE_MARQUEE)if(2>this.points.length)this.points.push(a); +else{var b=this.points[1];b.x=a.x;b.y=a.y}else this.points.push(a)}})(ChemDoodle.math,ChemDoodle.monitor,ChemDoodle.sketcher.tools); +(function(a,f,e,b,c,d,j,g,m){a.SketcherCanvas=function(a,f,g,i){this.isMobile=void 0===i.isMobile?e.supports_touch():i.isMobile;this.useServices=void 0===i.useServices?!1:i.useServices;this.oneMolecule=void 0===i.oneMolecule?!1:i.oneMolecule;this.includeToolbar=void 0===i.includeToolbar?!0:i.includeToolbar;this.id=a;this.toolbarManager=new b.gui.ToolbarManager(this);if(this.includeToolbar){this.toolbarManager.write();var l=this;document.getElementById(this.id)?j("#"+a+"_button_attribute_lonePair_decrement_icon").load(function(){l.toolbarManager.setup()}): +j(m).load(function(){l.toolbarManager.setup()});this.dialogManager=new b.gui.DialogManager(this)}this.stateManager=new b.states.StateManager(this);this.historyManager=new b.actions.HistoryManager(this);a&&this.create(a,f,g);this.specs.atoms_circleDiameter_2D=7;this.specs.atoms_circleBorderWidth_2D=0;this.isHelp=!1;this.helpPos=new c.Point(this.width-20,20);this.lastPinchScale=1;this.lastGestureRotate=0;this.inGesture=!1;this.oneMolecule?(a=new c.Molecule,a.atoms.push(new c.Atom),this.loadMolecule(a)): +(this.startAtom=new c.Atom("C",-10,-10),this.startAtom.isLone=!0,this.lasso=new d.Lasso(this))};a=a.SketcherCanvas.prototype=new a._Canvas;a.drawSketcherDecorations=function(a){a.save();a.translate(this.width/2,this.height/2);a.rotate(this.specs.rotateAngle);a.scale(this.specs.scale,this.specs.scale);a.translate(-this.width/2,-this.height/2);this.hovering&&this.hovering.drawDecorations(a,this.specs);this.startAtom&&(-10!=this.startAtom.x&&!this.isMobile)&&this.startAtom.draw(a,this.specs);this.tempAtom&& +(a.strokeStyle="#00FF00",a.fillStyle="#00FF00",a.lineWidth=1,a.beginPath(),a.moveTo(this.hovering.x,this.hovering.y),f.contextHashTo(a,this.hovering.x,this.hovering.y,this.tempAtom.x,this.tempAtom.y,2,2),a.stroke(),a.beginPath(),a.arc(this.tempAtom.x,this.tempAtom.y,3,0,2*g.PI,!1),a.fill(),this.tempAtom.isOverlap&&(a.strokeStyle="#C10000",a.lineWidth=1.2,a.beginPath(),a.arc(this.tempAtom.x,this.tempAtom.y,7,0,2*g.PI,!1),a.stroke()));if(this.tempRing){a.strokeStyle="#00FF00";a.fillStyle="#00FF00"; +a.lineWidth=1;a.beginPath();if(this.hovering instanceof c.Atom){a.moveTo(this.hovering.x,this.hovering.y);f.contextHashTo(a,this.hovering.x,this.hovering.y,this.tempRing[0].x,this.tempRing[0].y,2,2);for(var b=1,d=this.tempRing.length;b<d;b++)f.contextHashTo(a,this.tempRing[b-1].x,this.tempRing[b-1].y,this.tempRing[b].x,this.tempRing[b].y,2,2);f.contextHashTo(a,this.tempRing[this.tempRing.length-1].x,this.tempRing[this.tempRing.length-1].y,this.hovering.x,this.hovering.y,2,2)}else if(this.hovering instanceof +c.Bond){var b=this.hovering.a2,e=this.hovering.a1;this.tempRing[0]===this.hovering.a1&&(b=this.hovering.a1,e=this.hovering.a2);a.moveTo(b.x,b.y);f.contextHashTo(a,b.x,b.y,this.tempRing[1].x,this.tempRing[1].y,2,2);b=2;for(d=this.tempRing.length;b<d;b++)f.contextHashTo(a,this.tempRing[b-1].x,this.tempRing[b-1].y,this.tempRing[b].x,this.tempRing[b].y,2,2);f.contextHashTo(a,this.tempRing[this.tempRing.length-1].x,this.tempRing[this.tempRing.length-1].y,e.x,e.y,2,2)}a.stroke()}this.lasso&&this.lasso.draw(a, +this.specs);this.stateManager.getCurrentState().draw&&this.stateManager.getCurrentState().draw(a);a.restore()};a.drawChildExtras=function(a){this.drawSketcherDecorations(a);if(!this.hideHelp){var b=a.createRadialGradient(this.width-20,20,10,this.width-20,20,2);b.addColorStop(0,"#00680F");b.addColorStop(1,"#FFFFFF");a.fillStyle=b;a.beginPath();a.arc(this.helpPos.x,this.helpPos.y,10,0,2*g.PI,!1);a.fill();this.isHelp&&(a.lineWidth=2,a.strokeStyle="black",a.stroke());a.fillStyle=this.isHelp?"red":"black"; +a.textAlign="center";a.textBaseline="middle";a.font="14px sans-serif";a.fillText("?",this.helpPos.x,this.helpPos.y)}this.paidToHideTrademark||(b=a.measureText("ChemDoodle").width,a.textAlign="left",a.textBaseline="bottom",a.font="14px sans-serif",a.fillStyle="rgba(0, 60, 0, 0.5)",a.fillText("ChemDoodle",this.width-b-13,this.height-4),a.font="8px sans-serif",a.fillText("\u00ae",this.width-13,this.height-12))};a.scaleEvent=function(a){a.op=new c.Point(a.p.x,a.p.y);1!==this.specs.scale&&(a.p.x=this.width/ +2+(a.p.x-this.width/2)/this.specs.scale,a.p.y=this.height/2+(a.p.y-this.height/2)/this.specs.scale)};a.checkScale=function(){0.5>this.specs.scale?this.specs.scale=0.5:10<this.specs.scale&&(this.specs.scale=10)};a.click=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().click(a)};a.rightclick=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().rightclick(a)};a.dblclick=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().dblclick(a)};a.mousedown=function(a){this.scaleEvent(a); +this.stateManager.getCurrentState().mousedown(a)};a.rightmousedown=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().rightmousedown(a)};a.mousemove=function(a){this.isHelp=!1;10>a.p.distance(this.helpPos)&&(this.isHelp=!0);this.scaleEvent(a);this.stateManager.getCurrentState().mousemove(a)};a.mouseout=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().mouseout(a)};a.mouseover=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().mouseover(a)};a.mouseup= +function(a){this.scaleEvent(a);this.stateManager.getCurrentState().mouseup(a)};a.rightmouseup=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().rightmouseup(a)};a.mousewheel=function(a,b){this.scaleEvent(a);this.stateManager.getCurrentState().mousewheel(a,b)};a.drag=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().drag(a)};a.keydown=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().keydown(a)};a.keypress=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().keypress(a)}; +a.keyup=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().keyup(a)};a.touchstart=function(a){if(a.originalEvent.touches&&1<a.originalEvent.touches.length){if(this.tempAtom||this.tempRing)this.hovering=this.tempRing=this.tempAtom=void 0,this.repaint();this.lastPoint=void 0}else this.scaleEvent(a),this.stateManager.getCurrentState().mousemove(a),this.stateManager.getCurrentState().mousedown(a)};a.touchmove=function(a){this.scaleEvent(a);this.inGesture||this.stateManager.getCurrentState().drag(a)}; +a.touchend=function(a){this.scaleEvent(a);this.stateManager.getCurrentState().mouseup(a);this.hovering&&(this.stateManager.getCurrentState().clearHover(),this.repaint())};a.gesturechange=function(a){this.inGesture=!0;if(1!==a.originalEvent.scale-this.lastPinchScale){if(!this.lasso||!this.lasso.isActive())this.specs.scale*=a.originalEvent.scale/this.lastPinchScale,this.checkScale();this.lastPinchScale=a.originalEvent.scale}if(0!==this.lastGestureRotate-a.originalEvent.rotation){var d=(this.lastGestureRotate- +a.originalEvent.rotation)/180*g.PI;if(this.parentAction){this.parentAction.dif+=d;for(var e=0,f=this.parentAction.ps.length;e<f;e++){var j=this.parentAction.ps[e],m=this.parentAction.center.distance(j),o=this.parentAction.center.angle(j)+d;j.x=this.parentAction.center.x+m*g.cos(o);j.y=this.parentAction.center.y-m*g.sin(o)}e=0;for(f=this.molecules.length;e<f;e++)this.molecules[e].check();this.lasso&&this.lasso.isActive()&&this.lasso.setBounds()}else e=this.lasso&&this.lasso.isActive()?this.lasso.getAllPoints(): +this.getAllPoints(),f=this.lasso&&this.lasso.isActive()?new c.Point((this.lasso.bounds.minX+this.lasso.bounds.maxX)/2,(this.lasso.bounds.minY+this.lasso.bounds.maxY)/2):new c.Point(this.width/2,this.height/2),this.parentAction=new b.actions.RotateAction(e,d,f),this.historyManager.pushUndo(this.parentAction);this.lastGestureRotate=a.originalEvent.rotation}this.repaint()};a.gestureend=function(){this.inGesture=!1;this.lastPinchScale=1;this.lastGestureRotate=0;this.parentAction=void 0}})(ChemDoodle, +ChemDoodle.extensions,ChemDoodle.featureDetection,ChemDoodle.sketcher,ChemDoodle.structures,ChemDoodle.sketcher.tools,jQuery,Math,window); \ No newline at end of file Modified: trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb.js =================================================================== --- trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb.js 2013-02-25 15:02:04 UTC (rev 155) +++ trunk/cantharella.web/src/main/webapp/ChemDoodleWeb/js/ChemDoodleWeb.js 2013-02-25 15:02:42 UTC (rev 156) @@ -1,9 +1,9 @@ // %%Ignore-License -// ChemDoodle Web Components 5.0.0 +// ChemDoodle Web Components 5.1.0 // // http://web.chemdoodle.com // -// Copyright 2009-2012 iChemLabs, LLC. All rights reserved. +// Copyright 2009-2013 iChemLabs, LLC. All rights reserved. // // This program is free software: you can redistribute it and/or modify // it under the terms of the GNU General Public License as published by @@ -28,398 +28,423 @@ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // -// Please contact iChemLabs <http://www.ichemlabs.com/contact> for +// Please contact iChemLabs <http://www.ichemlabs.com/contact-us> for // alternate licensing options. // -var ChemDoodle=function(){var b={structures:{}};b.structures.d2={};b.structures.d3={};b.iChemLabs={};b.informatics={};b.io={};b.getVersion=function(){return"5.0.0"};return b}(); -ChemDoodle.extensions=function(b,e,a){return{stringStartsWith:function(a,c){return a.slice(0,c.length)===c},vec3AngleFrom:function(b,c){var d=e.length(b),f=e.length(c),d=e.dot(b,c)/d/f;return a.acos(d)},contextHashTo:function(a,c,d,f,q,g,e){for(var m=0,j=(new b.Point(c,d)).distance(new b.Point(f,q)),l=!1,n=c,r=d,c=f-c,d=q-d;m<j;){if(l)if(m+e>j){a.moveTo(f,q);break}else{var k=e/j,n=n+k*c,r=r+k*d;a.moveTo(n,r);m+=e}else if(m+g>j){a.lineTo(f,q);break}else k=g/j,n+=k*c,r+=k*d,a.lineTo(n,r),m+=g;l=!l}}, -contextRoundRect:function(a,c,d,f,q,g){a.beginPath();a.moveTo(c+g,d);a.lineTo(c+f-g,d);a.quadraticCurveTo(c+f,d,c+f,d+g);a.lineTo(c+f,d+q-g);a.quadraticCurveTo(c+f,d+q,c+f-g,d+q);a.lineTo(c+g,d+q);a.quadraticCurveTo(c,d+q,c,d+q-g);a.lineTo(c,d+g);a.quadraticCurveTo(c,d,c+g,d);a.closePath()},contextEllipse:function(a,c,d,f,q){var g=0.5522848*(f/2),b=0.5522848*(q/2),m=c+f,j=d+q,f=c+f/2,q=d+q/2;a.beginPath();a.moveTo(c,q);a.bezierCurveTo(c,q-b,f-g,d,f,d);a.bezierCurveTo(f+g,d,m,q-b,m,q);a.bezierCurveTo(m, -q+b,f+g,j,f,j);a.bezierCurveTo(f-g,j,c,q+b,c,q);a.closePath()}}}(ChemDoodle.structures,vec3,Math); -ChemDoodle.math=function(b,e,a){var h={},c={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b", +var ChemDoodle=function(){var c={structures:{}};c.structures.d2={};c.structures.d3={};c.iChemLabs={};c.informatics={};c.io={};c.getVersion=function(){return"5.1.0"};return c}(); +ChemDoodle.extensions=function(c,b,a){return{stringStartsWith:function(a,f){return a.slice(0,f.length)===f},vec3AngleFrom:function(g,f){var e=b.length(g),o=b.length(f),e=b.dot(g,f)/e/o;return a.acos(e)},contextHashTo:function(a,f,e,o,d,k,b){var l=0,h=(new c.Point(f,e)).distance(new c.Point(o,d)),j=!1,m=f,t=e;f=o-f;for(e=d-e;l<h;){if(j)if(l+b>h){a.moveTo(o,d);break}else{var n=b/h,m=m+n*f,t=t+n*e;a.moveTo(m,t);l+=b}else if(l+k>h){a.lineTo(o,d);break}else n=k/h,m+=n*f,t+=n*e,a.lineTo(m,t),l+=k;j=!j}}, +contextRoundRect:function(a,f,e,o,d,k){a.beginPath();a.moveTo(f+k,e);a.lineTo(f+o-k,e);a.quadraticCurveTo(f+o,e,f+o,e+k);a.lineTo(f+o,e+d-k);a.quadraticCurveTo(f+o,e+d,f+o-k,e+d);a.lineTo(f+k,e+d);a.quadraticCurveTo(f,e+d,f,e+d-k);a.lineTo(f,e+k);a.quadraticCurveTo(f,e,f+k,e);a.closePath()},contextEllipse:function(a,f,e,o,d){var k=0.5522848*(o/2),b=0.5522848*(d/2),l=f+o,h=e+d;o=f+o/2;d=e+d/2;a.beginPath();a.moveTo(f,d);a.bezierCurveTo(f,d-b,o-k,e,o,e);a.bezierCurveTo(o+k,e,l,d-b,l,d);a.bezierCurveTo(l, +d+b,o+k,h,o,h);a.bezierCurveTo(o-k,h,f,d+b,f,d);a.closePath()}}}(ChemDoodle.structures,vec3,Math); +ChemDoodle.math=function(c,b,a){var g={},f={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b", darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff", gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4","indianred ":"#cd5c5c","indigo ":"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa", lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080", oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0", -skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};h.angleBetweenLargest=function(d){if(0===d.length)return{angle:0,largest:2*a.PI};if(1===d.length)return{angle:d[0]+a.PI,largest:2*a.PI};for(var f=0,c=0,g=0,b=d.length-1;g<b;g++){var m=d[g+1]-d[g]; -m>f&&(f=m,c=(d[g+1]+d[g])/2)}g=d[0]+2*a.PI-d[d.length-1];g>f&&(c=d[0]-g/2,f=g,0>c&&(c+=2*a.PI));return{angle:c,largest:f}};h.isBetween=function(a,f,c){if(f>c)var g=f,f=c,c=g;return a>=f&&a<=c};h.getRGB=function(a,f){var q=[0,0,0];c[a.toLowerCase()]&&(a=c[a.toLowerCase()]);if("#"===a.charAt(0))return 4===a.length&&(a="#"+a.charAt(1)+a.charAt(1)+a.charAt(2)+a.charAt(2)+a.charAt(3)+a.charAt(3)),[parseInt(a.substring(1,3),16)/255*f,parseInt(a.substring(3,5),16)/255*f,parseInt(a.substring(5,7),16)/255* -f];if(b.stringStartsWith(a,"rgb")){var g=a.replace(/rgb\(|\)/g,"").split(",");return 3!==g.length?q:[parseInt(g[0])/255*f,parseInt(g[1])/255*f,parseInt(g[2])/255*f]}return q};h.distanceFromPointToLineInclusive=function(d,f,c){var g=f.distance(c),c=f.angle(c),c=a.PI/2-c,c=f.angle(d)+c,d=f.distance(d),d=new e.Point(d*a.cos(c),-d*a.sin(c));return h.isBetween(-d.y,0,g)?a.abs(d.x):-1};h.calculateDistanceInterior=function(d,f,c){if(this.isBetween(f.x,c.x,c.x+c.w)&&this.isBetween(f.y,c.y,c.y+c.w))return d.distance(f); -var g=[];g.push({x1:c.x,y1:c.y,x2:c.x+c.w,y2:c.y});g.push({x1:c.x,y1:c.y+c.h,x2:c.x+c.w,y2:c.y+c.h});g.push({x1:c.x,y1:c.y,x2:c.x,y2:c.y+c.h});g.push({x1:c.x+c.w,y1:c.y,x2:c.x+c.w,y2:c.y+c.h});for(var c=[],b=0;4>b;b++){var m=g[b];(m=this.intersectLines(f.x,f.y,d.x,d.y,m.x1,m.y1,m.x2,m.y2))&&c.push(m)}if(0===c.length)return 0;b=f=0;for(g=c.length;b<g;b++)var m=c[b],j=d.x-m.x,m=d.y-m.y,f=a.max(f,a.sqrt(j*j+m*m));return f};h.intersectLines=function(a,f,c,g,b,m,j,e){var c=c-a,g=g-f,j=j-b,e=e-m,h=g*j- -c*e;if(0===h)return!1;j=(e*(a-b)-j*(f-m))/h;b=(g*(a-b)-c*(f-m))/h;return 0<=b&&1>=b&&0<=j&&1>=j?{x:a+j*c,y:f+j*g}:!1};h.hsl2rgb=function(a,f,c){var g=function(a,d,c){0>c?c+=1:1<c&&(c-=1);return c<1/6?a+6*(d-a)*c:0.5>c?d:c<2/3?a+6*(d-a)*(2/3-c):a};if(0===f)c=f=a=c;else var b=0.5>c?c*(1+f):c+f-c*f,m=2*c-b,c=g(m,b,a+1/3),f=g(m,b,a),a=g(m,b,a-1/3);return[255*c,255*f,255*a]};h.isPointInPoly=function(a,c){for(var b=!1,g=-1,e=a.length,m=e-1;++g<e;m=g)(a[g].y<=c.y&&c.y<a[m].y||a[m].y<=c.y&&c.y<a[g].y)&&c.x< -(a[m].x-a[g].x)*(c.y-a[g].y)/(a[m].y-a[g].y)+a[g].x&&(b=!b);return b};return h}(ChemDoodle.extensions,ChemDoodle.structures,Math); -(function(b,e){b.Bounds=function(){this.minX=this.minY=Infinity;this.maxX=this.maxY=-Infinity;this.expand=function(a,h,c,d){a instanceof b.Bounds?(this.minX=e.min(this.minX,a.minX),this.minY=e.min(this.minY,a.minY),this.maxX=e.max(this.maxX,a.maxX),this.maxY=e.max(this.maxY,a.maxY)):(this.minX=e.min(this.minX,a),this.maxX=e.max(this.maxX,a),this.minY=e.min(this.minY,h),this.maxY=e.max(this.maxY,h),void 0!==c&&void 0!==d&&(this.minX=e.min(this.minX,c),this.maxX=e.max(this.maxX,c),this.minY=e.min(this.minY, -d),this.maxY=e.max(this.maxY,d)))};return!0}})(ChemDoodle.math,Math); -ChemDoodle.featureDetection=function(b,e,a,h){var c={supports_canvas:function(){return!!a.createElement("canvas").getContext},supports_canvas_text:function(){return!c.supports_canvas()?!1:"function"===typeof a.createElement("canvas").getContext("2d").fillText},supports_webgl:function(){var c=a.createElement("canvas");try{if(c.getContext("webgl")||c.getContext("experimental-webgl"))return!0}catch(f){}return!1},supports_xhr2:function(){return e.support.cors},supports_touch:function(){return"ontouchstart"in -h},supports_gesture:function(){return"ongesturestart"in h}};return c}(ChemDoodle.iChemLabs,jQuery,document,window);ChemDoodle.SYMBOLS="H,He,Li,Be,B,C,N,O,F,Ne,Na,Mg,Al,Si,P,S,Cl,Ar,K,Ca,Sc,Ti,V,Cr,Mn,Fe,Co,Ni,Cu,Zn,Ga,Ge,As,Se,Br,Kr,Rb,Sr,Y,Zr,Nb,Mo,Tc,Ru,Rh,Pd,Ag,Cd,In,Sn,Sb,Te,I,Xe,Cs,Ba,La,Ce,Pr,Nd,Pm,Sm,Eu,Gd,Tb,Dy,Ho,Er,Tm,Yb,Lu,Hf,Ta,W,Re,Os,Ir,Pt,Au,Hg,Tl,Pb,Bi,Po,At,Rn,Fr,Ra,Ac,Th,Pa,U,Np,Pu,Am,Cm,Bk,Cf,Es,Fm,Md,No,Lr,Rf,Db,Sg,Bh,Hs,Mt,Ds,Rg,Cn,Uut,Uuq,Uup,Uuh,Uus,Uuo".split(","); -ChemDoodle.ELEMENT=function(b){function e(a,c,b){this.symbol=a;this.name=c;this.atomicNumber=b;return!0}var a=[];a.H=new e("H","Hydrogen",1);a.He=new e("He","Helium",2);a.Li=new e("Li","Lithium",3);a.Be=new e("Be","Beryllium",4);a.B=new e("B","Boron",5);a.C=new e("C","Carbon",6);a.N=new e("N","Nitrogen",7);a.O=new e("O","Oxygen",8);a.F=new e("F","Fluorine",9);a.Ne=new e("Ne","Neon",10);a.Na=new e("Na","Sodium",11);a.Mg=new e("Mg","Magnesium",12);a.Al=new e("Al","Aluminum",13);a.Si=new e("Si","Silicon", -14);a.P=new e("P","Phosphorus",15);a.S=new e("S","Sulfur",16);a.Cl=new e("Cl","Chlorine",17);a.Ar=new e("Ar","Argon",18);a.K=new e("K","Potassium",19);a.Ca=new e("Ca","Calcium",20);a.Sc=new e("Sc","Scandium",21);a.Ti=new e("Ti","Titanium",22);a.V=new e("V","Vanadium",23);a.Cr=new e("Cr","Chromium",24);a.Mn=new e("Mn","Manganese",25);a.Fe=new e("Fe","Iron",26);a.Co=new e("Co","Cobalt",27);a.Ni=new e("Ni","Nickel",28);a.Cu=new e("Cu","Copper",29);a.Zn=new e("Zn","Zinc",30);a.Ga=new e("Ga","Gallium", -31);a.Ge=new e("Ge","Germanium",32);a.As=new e("As","Arsenic",33);a.Se=new e("Se","Selenium",34);a.Br=new e("Br","Bromine",35);a.Kr=new e("Kr","Krypton",36);a.Rb=new e("Rb","Rubidium",37);a.Sr=new e("Sr","Strontium",38);a.Y=new e("Y","Yttrium",39);a.Zr=new e("Zr","Zirconium",40);a.Nb=new e("Nb","Niobium",41);a.Mo=new e("Mo","Molybdenum",42);a.Tc=new e("Tc","Technetium",43);a.Ru=new e("Ru","Ruthenium",44);a.Rh=new e("Rh","Rhodium",45);a.Pd=new e("Pd","Palladium",46);a.Ag=new e("Ag","Silver",47);a.Cd= -new e("Cd","Cadmium",48);a.In=new e("In","Indium",49);a.Sn=new e("Sn","Tin",50);a.Sb=new e("Sb","Antimony",51);a.Te=new e("Te","Tellurium",52);a.I=new e("I","Iodine",53);a.Xe=new e("Xe","Xenon",54);a.Cs=new e("Cs","Cesium",55);a.Ba=new e("Ba","Barium",56);a.La=new e("La","Lanthanum",57);a.Ce=new e("Ce","Cerium",58);a.Pr=new e("Pr","Praseodymium",59);a.Nd=new e("Nd","Neodymium",60);a.Pm=new e("Pm","Promethium",61);a.Sm=new e("Sm","Samarium",62);a.Eu=new e("Eu","Europium",63);a.Gd=new e("Gd","Gadolinium", -64);a.Tb=new e("Tb","Terbium",65);a.Dy=new e("Dy","Dysprosium",66);a.Ho=new e("Ho","Holmium",67);a.Er=new e("Er","Erbium",68);a.Tm=new e("Tm","Thulium",69);a.Yb=new e("Yb","Ytterbium",70);a.Lu=new e("Lu","Lutetium",71);a.Hf=new e("Hf","Hafnium",72);a.Ta=new e("Ta","Tantalum",73);a.W=new e("W","Tungsten",74);a.Re=new e("Re","Rhenium",75);a.Os=new e("Os","Osmium",76);a.Ir=new e("Ir","Iridium",77);a.Pt=new e("Pt","Platinum",78);a.Au=new e("Au","Gold",79);a.Hg=new e("Hg","Mercury",80);a.Tl=new e("Tl", -"Thallium",81);a.Pb=new e("Pb","Lead",82);a.Bi=new e("Bi","Bismuth",83);a.Po=new e("Po","Polonium",84);a.At=new e("At","Astatine",85);a.Rn=new e("Rn","Radon",86);a.Fr=new e("Fr","Francium",87);a.Ra=new e("Ra","Radium",88);a.Ac=new e("Ac","Actinium",89);a.Th=new e("Th","Thorium",90);a.Pa=new e("Pa","Protactinium",91);a.U=new e("U","Uranium",92);a.Np=new e("Np","Neptunium",93);a.Pu=new e("Pu","Plutonium",94);a.Am=new e("Am","Americium",95);a.Cm=new e("Cm","Curium",96);a.Bk=new e("Bk","Berkelium",97); -a.Cf=new e("Cf","Californium",98);a.Es=new e("Es","Einsteinium",99);a.Fm=new e("Fm","Fermium",100);a.Md=new e("Md","Mendelevium",101);a.No=new e("No","Nobelium",102);a.Lr=new e("Lr","Lawrencium",103);a.Rf=new e("Rf","Rutherfordium",104);a.Db=new e("Db","Dubnium",105);a.Sg=new e("Sg","Seaborgium",106);a.Bh=new e("Bh","Bohrium",107);a.Hs=new e("Hs","Hassium",108);a.Mt=new e("Mt","Meitnerium",109);a.Ds=new e("Ds","Darmstadtium",110);a.Rg=new e("Rg","Roentgenium",111);a.Cn=new e("Cn","Copernicium",112); -a.Uut=new e("Uut","Ununtrium",113);a.Uuq=new e("Uuq","Ununquadium",114);a.Uup=new e("Uup","Ununpentium",115);a.Uuh=new e("Uuh","Ununhexium",116);a.Uus=new e("Uus","Ununseptium",117);a.Uuo=new e("Uuo","Ununoctium",118);a.H.jmolColor="#FFFFFF";a.He.jmolColor="#D9FFFF";a.Li.jmolColor="#CC80FF";a.Be.jmolColor="#C2FF00";a.B.jmolColor="#FFB5B5";a.C.jmolColor="#909090";a.N.jmolColor="#3050F8";a.O.jmolColor="#FF0D0D";a.F.jmolColor="#90E050";a.Ne.jmolColor="#B3E3F5";a.Na.jmolColor="#AB5CF2";a.Mg.jmolColor= -"#8AFF00";a.Al.jmolColor="#BFA6A6";a.Si.jmolColor="#F0C8A0";a.P.jmolColor="#FF8000";a.S.jmolColor="#FFFF30";a.Cl.jmolColor="#1FF01F";a.Ar.jmolColor="#80D1E3";a.K.jmolColor="#8F40D4";a.Ca.jmolColor="#3DFF00";a.Sc.jmolColor="#E6E6E6";a.Ti.jmolColor="#BFC2C7";a.V.jmolColor="#A6A6AB";a.Cr.jmolColor="#8A99C7";a.Mn.jmolColor="#9C7AC7";a.Fe.jmolColor="#E06633";a.Co.jmolColor="#F090A0";a.Ni.jmolColor="#50D050";a.Cu.jmolColor="#C88033";a.Zn.jmolColor="#7D80B0";a.Ga.jmolColor="#C28F8F";a.Ge.jmolColor="#668F8F"; -a.As.jmolColor="#BD80E3";a.Se.jmolColor="#FFA100";a.Br.jmolColor="#A62929";a.Kr.jmolColor="#5CB8D1";a.Rb.jmolColor="#702EB0";a.Sr.jmolColor="#00FF00";a.Y.jmolColor="#94FFFF";a.Zr.jmolColor="#94E0E0";a.Nb.jmolColor="#73C2C9";a.Mo.jmolColor="#54B5B5";a.Tc.jmolColor="#3B9E9E";a.Ru.jmolColor="#248F8F";a.Rh.jmolColor="#0A7D8C";a.Pd.jmolColor="#006985";a.Ag.jmolColor="#C0C0C0";a.Cd.jmolColor="#FFD98F";a.In.jmolColor="#A67573";a.Sn.jmolColor="#668080";a.Sb.jmolColor="#9E63B5";a.Te.jmolColor="#D47A00";a.I.jmolColor= -"#940094";a.Xe.jmolColor="#429EB0";a.Cs.jmolColor="#57178F";a.Ba.jmolColor="#00C900";a.La.jmolColor="#70D4FF";a.Ce.jmolColor="#FFFFC7";a.Pr.jmolColor="#D9FFC7";a.Nd.jmolColor="#C7FFC7";a.Pm.jmolColor="#A3FFC7";a.Sm.jmolColor="#8FFFC7";a.Eu.jmolColor="#61FFC7";a.Gd.jmolColor="#45FFC7";a.Tb.jmolColor="#30FFC7";a.Dy.jmolColor="#1FFFC7";a.Ho.jmolColor="#00FF9C";a.Er.jmolColor="#00E675";a.Tm.jmolColor="#00D452";a.Yb.jmolColor="#00BF38";a.Lu.jmolColor="#00AB24";a.Hf.jmolColor="#4DC2FF";a.Ta.jmolColor="#4DA6FF"; -a.W.jmolColor="#2194D6";a.Re.jmolColor="#267DAB";a.Os.jmolColor="#266696";a.Ir.jmolColor="#175487";a.Pt.jmolColor="#D0D0E0";a.Au.jmolColor="#FFD123";a.Hg.jmolColor="#B8B8D0";a.Tl.jmolColor="#A6544D";a.Pb.jmolColor="#575961";a.Bi.jmolColor="#9E4FB5";a.Po.jmolColor="#AB5C00";a.At.jmolColor="#754F45";a.Rn.jmolColor="#428296";a.Fr.jmolColor="#420066";a.Ra.jmolColor="#007D00";a.Ac.jmolColor="#70ABFA";a.Th.jmolColor="#00BAFF";a.Pa.jmolColor="#00A1FF";a.U.jmolColor="#008FFF";a.Np.jmolColor="#0080FF";a.Pu.jmolColor= -"#006BFF";a.Am.jmolColor="#545CF2";a.Cm.jmolColor="#785CE3";a.Bk.jmolColor="#8A4FE3";a.Cf.jmolColor="#A136D4";a.Es.jmolColor="#B31FD4";a.Fm.jmolColor="#B31FBA";a.Md.jmolColor="#B30DA6";a.No.jmolColor="#BD0D87";a.Lr.jmolColor="#C70066";a.Rf.jmolColor="#CC0059";a.Db.jmolColor="#D1004F";a.Sg.jmolColor="#D90045";a.Bh.jmolColor="#E00038";a.Hs.jmolColor="#E6002E";a.Mt.jmolColor="#EB0026";a.Ds.jmolColor="#000000";a.Rg.jmolColor="#000000";a.Cn.jmolColor="#000000";a.Uut.jmolColor="#000000";a.Uuq.jmolColor= -"#000000";a.Uup.jmolColor="#000000";a.Uuh.jmolColor="#000000";a.Uus.jmolColor="#000000";a.Uuo.jmolColor="#000000";for(var h=0,c=b.length;h<c;h++)a[b[h]].pymolColor=a[b[h]].jmolColor;a.H.pymolColor="#E6E6E6";a.C.pymolColor="#33FF33";a.N.pymolColor="#3333FF";a.O.pymolColor="#FF4D4D";a.F.pymolColor="#B3FFFF";a.S.pymolColor="#E6C640";a.H.covalentRadius=0.31;a.He.covalentRadius=0.28;a.Li.covalentRadius=1.28;a.Be.covalentRadius=0.96;a.B.covalentRadius=0.84;a.C.covalentRadius=0.76;a.N.covalentRadius=0.71; -a.O.covalentRadius=0.66;a.F.covalentRadius=0.57;a.Ne.covalentRadius=0.58;a.Na.covalentRadius=1.66;a.Mg.covalentRadius=1.41;a.Al.covalentRadius=1.21;a.Si.covalentRadius=1.11;a.P.covalentRadius=1.07;a.S.covalentRadius=1.05;a.Cl.covalentRadius=1.02;a.Ar.covalentRadius=1.06;a.K.covalentRadius=2.03;a.Ca.covalentRadius=1.76;a.Sc.covalentRadius=1.7;a.Ti.covalentRadius=1.6;a.V.covalentRadius=1.53;a.Cr.covalentRadius=1.39;a.Mn.covalentRadius=1.39;a.Fe.covalentRadius=1.32;a.Co.covalentRadius=1.26;a.Ni.covalentRadius= -1.24;a.Cu.covalentRadius=1.32;a.Zn.covalentRadius=1.22;a.Ga.covalentRadius=1.22;a.Ge.covalentRadius=1.2;a.As.covalentRadius=1.19;a.Se.covalentRadius=1.2;a.Br.covalentRadius=1.2;a.Kr.covalentRadius=1.16;a.Rb.covalentRadius=2.2;a.Sr.covalentRadius=1.95;a.Y.covalentRadius=1.9;a.Zr.covalentRadius=1.75;a.Nb.covalentRadius=1.64;a.Mo.covalentRadius=1.54;a.Tc.covalentRadius=1.47;a.Ru.covalentRadius=1.46;a.Rh.covalentRadius=1.42;a.Pd.covalentRadius=1.39;a.Ag.covalentRadius=1.45;a.Cd.covalentRadius=1.44;a.In.covalentRadius= -1.42;a.Sn.covalentRadius=1.39;a.Sb.covalentRadius=1.39;a.Te.covalentRadius=1.38;a.I.covalentRadius=1.39;a.Xe.covalentRadius=1.4;a.Cs.covalentRadius=2.44;a.Ba.covalentRadius=2.15;a.La.covalentRadius=2.07;a.Ce.covalentRadius=2.04;a.Pr.covalentRadius=2.03;a.Nd.covalentRadius=2.01;a.Pm.covalentRadius=1.99;a.Sm.covalentRadius=1.98;a.Eu.covalentRadius=1.98;a.Gd.covalentRadius=1.96;a.Tb.covalentRadius=1.94;a.Dy.covalentRadius=1.92;a.Ho.covalentRadius=1.92;a.Er.covalentRadius=1.89;a.Tm.covalentRadius=1.9; -a.Yb.covalentRadius=1.87;a.Lu.covalentRadius=1.87;a.Hf.covalentRadius=1.75;a.Ta.covalentRadius=1.7;a.W.covalentRadius=1.62;a.Re.covalentRadius=1.51;a.Os.covalentRadius=1.44;a.Ir.covalentRadius=1.41;a.Pt.covalentRadius=1.36;a.Au.covalentRadius=1.36;a.Hg.covalentRadius=1.32;a.Tl.covalentRadius=1.45;a.Pb.covalentRadius=1.46;a.Bi.covalentRadius=1.48;a.Po.covalentRadius=1.4;a.At.covalentRadius=1.5;a.Rn.covalentRadius=1.5;a.Fr.covalentRadius=2.6;a.Ra.covalentRadius=2.21;a.Ac.covalentRadius=2.15;a.Th.covalentRadius= -2.06;a.Pa.covalentRadius=2;a.U.covalentRadius=1.96;a.Np.covalentRadius=1.9;a.Pu.covalentRadius=1.87;a.Am.covalentRadius=1.8;a.Cm.covalentRadius=1.69;a.Bk.covalentRadius=0;a.Cf.covalentRadius=0;a.Es.covalentRadius=0;a.Fm.covalentRadius=0;a.Md.covalentRadius=0;a.No.covalentRadius=0;a.Lr.covalentRadius=0;a.Rf.covalentRadius=0;a.Db.covalentRadius=0;a.Sg.covalentRadius=0;a.Bh.covalentRadius=0;a.Hs.covalentRadius=0;a.Mt.covalentRadius=0;a.Ds.covalentRadius=0;a.Rg.covalentRadius=0;a.Cn.covalentRadius=0; -a.Uut.covalentRadius=0;a.Uuq.covalentRadius=0;a.Uup.covalentRadius=0;a.Uuh.covalentRadius=0;a.Uus.covalentRadius=0;a.Uuo.covalentRadius=0;a.H.vdWRadius=1.2;a.He.vdWRadius=1.4;a.Li.vdWRadius=1.82;a.Be.vdWRadius=0;a.B.vdWRadius=0;a.C.vdWRadius=1.7;a.N.vdWRadius=1.55;a.O.vdWRadius=1.52;a.F.vdWRadius=1.47;a.Ne.vdWRadius=1.54;a.Na.vdWRadius=2.27;a.Mg.vdWRadius=1.73;a.Al.vdWRadius=0;a.Si.vdWRadius=2.1;a.P.vdWRadius=1.8;a.S.vdWRadius=1.8;a.Cl.vdWRadius=1.75;a.Ar.vdWRadius=1.88;a.K.vdWRadius=2.75;a.Ca.vdWRadius= -0;a.Sc.vdWRadius=0;a.Ti.vdWRadius=0;a.V.vdWRadius=0;a.Cr.vdWRadius=0;a.Mn.vdWRadius=0;a.Fe.vdWRadius=0;a.Co.vdWRadius=0;a.Ni.vdWRadius=1.63;a.Cu.vdWRadius=1.4;a.Zn.vdWRadius=1.39;a.Ga.vdWRadius=1.87;a.Ge.vdWRadius=0;a.As.vdWRadius=1.85;a.Se.vdWRadius=1.9;a.Br.vdWRadius=1.85;a.Kr.vdWRadius=2.02;a.Rb.vdWRadius=0;a.Sr.vdWRadius=0;a.Y.vdWRadius=0;a.Zr.vdWRadius=0;a.Nb.vdWRadius=0;a.Mo.vdWRadius=0;a.Tc.vdWRadius=0;a.Ru.vdWRadius=0;a.Rh.vdWRadius=0;a.Pd.vdWRadius=1.63;a.Ag.vdWRadius=1.72;a.Cd.vdWRadius= -1.58;a.In.vdWRadius=1.93;a.Sn.vdWRadius=2.17;a.Sb.vdWRadius=0;a.Te.vdWRadius=2.06;a.I.vdWRadius=1.98;a.Xe.vdWRadius=2.16;a.Cs.vdWRadius=0;a.Ba.vdWRadius=0;a.La.vdWRadius=0;a.Ce.vdWRadius=0;a.Pr.vdWRadius=0;a.Nd.vdWRadius=0;a.Pm.vdWRadius=0;a.Sm.vdWRadius=0;a.Eu.vdWRadius=0;a.Gd.vdWRadius=0;a.Tb.vdWRadius=0;a.Dy.vdWRadius=0;a.Ho.vdWRadius=0;a.Er.vdWRadius=0;a.Tm.vdWRadius=0;a.Yb.vdWRadius=0;a.Lu.vdWRadius=0;a.Hf.vdWRadius=0;a.Ta.vdWRadius=0;a.W.vdWRadius=0;a.Re.vdWRadius=0;a.Os.vdWRadius=0;a.Ir.vdWRadius= -0;a.Pt.vdWRadius=1.75;a.Au.vdWRadius=1.66;a.Hg.vdWRadius=1.55;a.Tl.vdWRadius=1.96;a.Pb.vdWRadius=2.02;a.Bi.vdWRadius=0;a.Po.vdWRadius=0;a.At.vdWRadius=0;a.Rn.vdWRadius=0;a.Fr.vdWRadius=0;a.Ra.vdWRadius=0;a.Ac.vdWRadius=0;a.Th.vdWRadius=0;a.Pa.vdWRadius=0;a.U.vdWRadius=1.86;a.Np.vdWRadius=0;a.Pu.vdWRadius=0;a.Am.vdWRadius=0;a.Cm.vdWRadius=0;a.Bk.vdWRadius=0;a.Cf.vdWRadius=0;a.Es.vdWRadius=0;a.Fm.vdWRadius=0;a.Md.vdWRadius=0;a.No.vdWRadius=0;a.Lr.vdWRadius=0;a.Rf.vdWRadius=0;a.Db.vdWRadius=0;a.Sg.vdWRadius= -0;a.Bh.vdWRadius=0;a.Hs.vdWRadius=0;a.Mt.vdWRadius=0;a.Ds.vdWRadius=0;a.Rg.vdWRadius=0;a.Cn.vdWRadius=0;a.Uut.vdWRadius=0;a.Uuq.vdWRadius=0;a.Uup.vdWRadius=0;a.Uuh.vdWRadius=0;a.Uus.vdWRadius=0;a.Uuo.vdWRadius=0;a.H.valency=1;a.He.valency=0;a.Li.valency=1;a.Be.valency=2;a.B.valency=3;a.C.valency=4;a.N.valency=3;a.O.valency=2;a.F.valency=1;a.Ne.valency=0;a.Na.valency=1;a.Mg.valency=0;a.Al.valency=0;a.Si.valency=4;a.P.valency=3;a.S.valency=2;a.Cl.valency=1;a.Ar.valency=0;a.K.valency=0;a.Ca.valency= -0;a.Sc.valency=0;a.Ti.valency=1;a.V.valency=1;a.Cr.valency=2;a.Mn.valency=3;a.Fe.valency=2;a.Co.valency=1;a.Ni.valency=1;a.Cu.valency=0;a.Zn.valency=0;a.Ga.valency=0;a.Ge.valency=4;a.As.valency=3;a.Se.valency=2;a.Br.valency=1;a.Kr.valency=0;a.Rb.valency=0;a.Sr.valency=0;a.Y.valency=0;a.Zr.valency=0;a.Nb.valency=1;a.Mo.valency=2;a.Tc.valency=3;a.Ru.valency=2;a.Rh.valency=1;a.Pd.valency=0;a.Ag.valency=0;a.Cd.valency=0;a.In.valency=0;a.Sn.valency=4;a.Sb.valency=3;a.Te.valency=2;a.I.valency=1;a.Xe.valency= -0;a.Cs.valency=0;a.Ba.valency=0;a.La.valency=0;a.Ce.valency=0;a.Pr.valency=0;a.Nd.valency=0;a.Pm.valency=0;a.Sm.valency=0;a.Eu.valency=0;a.Gd.valency=0;a.Tb.valency=0;a.Dy.valency=0;a.Ho.valency=0;a.Er.valency=0;a.Tm.valency=0;a.Yb.valency=0;a.Lu.valency=0;a.Hf.valency=0;a.Ta.valency=1;a.W.valency=2;a.Re.valency=3;a.Os.valency=2;a.Ir.valency=3;a.Pt.valency=0;a.Au.valency=1;a.Hg.valency=0;a.Tl.valency=0;a.Pb.valency=4;a.Bi.valency=3;a.Po.valency=2;a.At.valency=1;a.Rn.valency=0;a.Fr.valency=0;a.Ra.valency= -0;a.Ac.valency=0;a.Th.valency=0;a.Pa.valency=0;a.U.valency=0;a.Np.valency=0;a.Pu.valency=0;a.Am.valency=0;a.Cm.valency=0;a.Bk.valency=0;a.Cf.valency=0;a.Es.valency=0;a.Fm.valency=0;a.Md.valency=0;a.No.valency=0;a.Lr.valency=0;a.Rf.valency=0;a.Db.valency=0;a.Sg.valency=0;a.Bh.valency=0;a.Hs.valency=0;a.Mt.valency=0;a.Ds.valency=0;a.Rg.valency=0;a.Cn.valency=0;a.Uut.valency=0;a.Uuq.valency=0;a.Uup.valency=0;a.Uuh.valency=0;a.Uus.valency=0;a.Uuo.valency=0;a.H.mass=1;a.He.mass=4;a.Li.mass=7;a.Be.mass= -9;a.B.mass=11;a.C.mass=12;a.N.mass=14;a.O.mass=16;a.F.mass=19;a.Ne.mass=20;a.Na.mass=23;a.Mg.mass=24;a.Al.mass=27;a.Si.mass=28;a.P.mass=31;a.S.mass=32;a.Cl.mass=35;a.Ar.mass=40;a.K.mass=39;a.Ca.mass=40;a.Sc.mass=45;a.Ti.mass=48;a.V.mass=51;a.Cr.mass=52;a.Mn.mass=55;a.Fe.mass=56;a.Co.mass=59;a.Ni.mass=58;a.Cu.mass=63;a.Zn.mass=64;a.Ga.mass=69;a.Ge.mass=74;a.As.mass=75;a.Se.mass=80;a.Br.mass=79;a.Kr.mass=84;a.Rb.mass=85;a.Sr.mass=88;a.Y.mass=89;a.Zr.mass=90;a.Nb.mass=93;a.Mo.mass=98;a.Tc.mass=0;a.Ru.mass= -102;a.Rh.mass=103;a.Pd.mass=106;a.Ag.mass=107;a.Cd.mass=114;a.In.mass=115;a.Sn.mass=120;a.Sb.mass=121;a.Te.mass=130;a.I.mass=127;a.Xe.mass=132;a.Cs.mass=133;a.Ba.mass=138;a.La.mass=139;a.Ce.mass=140;a.Pr.mass=141;a.Nd.mass=142;a.Pm.mass=0;a.Sm.mass=152;a.Eu.mass=153;a.Gd.mass=158;a.Tb.mass=159;a.Dy.mass=164;a.Ho.mass=165;a.Er.mass=166;a.Tm.mass=169;a.Yb.mass=174;a.Lu.mass=175;a.Hf.mass=180;a.Ta.mass=181;a.W.mass=184;a.Re.mass=187;a.Os.mass=192;a.Ir.mass=193;a.Pt.mass=195;a.Au.mass=197;a.Hg.mass=202; -a.Tl.mass=205;a.Pb.mass=208;a.Bi.mass=209;a.Po.mass=0;a.At.mass=0;a.Rn.mass=0;a.Fr.mass=0;a.Ra.mass=0;a.Ac.mass=0;a.Th.mass=232;a.Pa.mass=231;a.U.mass=238;a.Np.mass=0;a.Pu.mass=0;a.Am.mass=0;a.Cm.mass=0;a.Bk.mass=0;a.Cf.mass=0;a.Es.mass=0;a.Fm.mass=0;a.Md.mass=0;a.No.mass=0;a.Lr.mass=0;a.Rf.mass=0;a.Db.mass=0;a.Sg.mass=0;a.Bh.mass=0;a.Hs.mass=0;a.Mt.mass=0;a.Ds.mass=0;a.Rg.mass=0;a.Cn.mass=0;a.Uut.mass=0;a.Uuq.mass=0;a.Uup.mass=0;a.Uuh.mass=0;a.Uus.mass=0;a.Uuo.mass=0;return a}(ChemDoodle.SYMBOLS); -ChemDoodle.RESIDUE=function(){function b(a,b){this.symbol=a;this.name=b;return!0}var e=[];e.Ala=new b("Ala","Alanine");e.Arg=new b("Arg","Arginine");e.Asn=new b("Asn","Asparagine");e.Asp=new b("Asp","Aspartic Acid");e.Cys=new b("Cys","Cysteine");e.Gln=new b("Gln","Glutamine");e.Glu=new b("Glu","Glutamic Acid");e.Gly=new b("Gly","Glycine");e.His=new b("His","Histidine");e.Ile=new b("Ile","Isoleucine");e.Leu=new b("Leu","Leucine");e.Lys=new b("Lys","Lysine");e.Met=new b("Met","Methionine");e.Phe=new b("Phe", -"Phenylalanine");e.Pro=new b("Pro","Proline");e.Ser=new b("Ser","Serine");e.Thr=new b("Thr","Threonine");e.Trp=new b("Trp","Tryptophan");e.Tyr=new b("Tyr","Tyrosine");e.Val=new b("Val","Valine");e.Asx=new b("Asx","Asparagine/Aspartic Acid");e.Glx=new b("Glx","Glutamine/Glutamic Acid");e["*"]=new b("*","Other");e.A=new b("A","Adenine");e.G=new b("G","Guanine");e.I=new b("I","");e.C=new b("C","Cytosine");e.T=new b("T","Thymine");e.U=new b("U","Uracil");e.Ala.polar=!1;e.Arg.polar=!0;e.Asn.polar=!0;e.Asp.polar= -!0;e.Cys.polar=!0;e.Gln.polar=!0;e.Glu.polar=!0;e.Gly.polar=!1;e.His.polar=!0;e.Ile.polar=!1;e.Leu.polar=!1;e.Lys.polar=!0;e.Met.polar=!1;e.Phe.polar=!1;e.Pro.polar=!1;e.Ser.polar=!0;e.Thr.polar=!0;e.Trp.polar=!0;e.Tyr.polar=!0;e.Val.polar=!1;e.Asx.polar=!0;e.Glx.polar=!0;e.Ala.aminoColor="#C8C8C8";e.Arg.aminoColor="#145AFF";e.Asn.aminoColor="#00DCDC";e.Asp.aminoColor="#E60A0A";e.Cys.aminoColor="#E6E600";e.Gln.aminoColor="#00DCDC";e.Glu.aminoColor="#E60A0A";e.Gly.aminoColor="#EBEBEB";e.His.aminoColor= -"#8282D2";e.Ile.aminoColor="#0F820F";e.Leu.aminoColor="#0F820F";e.Lys.aminoColor="#145AFF";e.Met.aminoColor="#E6E600";e.Phe.aminoColor="#3232AA";e.Pro.aminoColor="#DC9682";e.Ser.aminoColor="#FA9600";e.Thr.aminoColor="#FA9600";e.Trp.aminoColor="#B45AB4";e.Tyr.aminoColor="#3232AA";e.Val.aminoColor="#0F820F";e.Asx.aminoColor="#FF69B4";e.Glx.aminoColor="#FF69B4";e["*"].aminoColor="#BEA06E";e.A.aminoColor="#BEA06E";e.G.aminoColor="#BEA06E";e.I.aminoColor="#BEA06E";e.C.aminoColor="#BEA06E";e.T.aminoColor= -"#BEA06E";e.U.aminoColor="#BEA06E";e.Ala.shapelyColor="#8CFF8C";e.Arg.shapelyColor="#00007C";e.Asn.shapelyColor="#FF7C70";e.Asp.shapelyColor="#A00042";e.Cys.shapelyColor="#FFFF70";e.Gln.shapelyColor="#FF4C4C";e.Glu.shapelyColor="#660000";e.Gly.shapelyColor="#FFFFFF";e.His.shapelyColor="#7070FF";e.Ile.shapelyColor="#004C00";e.Leu.shapelyColor="#455E45";e.Lys.shapelyColor="#4747B8";e.Met.shapelyColor="#B8A042";e.Phe.shapelyColor="#534C52";e.Pro.shapelyColor="#525252";e.Ser.shapelyColor="#FF7042";e.Thr.shapelyColor= -"#B84C00";e.Trp.shapelyColor="#4F4600";e.Tyr.shapelyColor="#8C704C";e.Val.shapelyColor="#FF8CFF";e.Asx.shapelyColor="#FF00FF";e.Glx.shapelyColor="#FF00FF";e["*"].shapelyColor="#FF00FF";e.A.shapelyColor="#A0A0FF";e.G.shapelyColor="#FF7070";e.I.shapelyColor="#80FFFF";e.C.shapelyColor="#FF8C4B";e.T.shapelyColor="#A0FFA0";e.U.shapelyColor="#FF8080";return e}(); -(function(b){b.Queue=function(){var b=[],a=0;this.getSize=function(){return b.length-a};this.isEmpty=function(){return 0===b.length};this.enqueue=function(a){b.push(a)};this.dequeue=function(){var h;b.length&&(h=b[a],2*++a>=b.length&&(b=b.slice(a),a=0));return h};this.getOldestElement=function(){var h;b.length&&(h=b[a]);return h}}})(ChemDoodle.structures); -(function(b,e){b.Point=function(a,b){this.x=a?a:0;this.y=b?b:0;this.sub=function(a){this.x-=a.x;this.y-=a.y};this.add=function(a){this.x+=a.x;this.y+=a.y};this.distance=function(a){var d=a.x-this.x,a=a.y-this.y;return e.sqrt(d*d+a*a)};this.angleForStupidCanvasArcs=function(a){for(var d=a.x-this.x,a=a.y-this.y,f=0,f=0===d?0===a?0:0<a?e.PI/2:3*e.PI/2:0===a?0<d?0:e.PI:0>d?e.atan(a/d)+e.PI:0>a?e.atan(a/d)+2*e.PI:e.atan(a/d);0>f;)f+=2*e.PI;return f%=2*e.PI};this.angle=function(a){for(var d=a.x-this.x, -a=this.y-a.y,f=0,f=0===d?0===a?0:0<a?e.PI/2:3*e.PI/2:0===a?0<d?0:e.PI:0>d?e.atan(a/d)+e.PI:0>a?e.atan(a/d)+2*e.PI:e.atan(a/d);0>f;)f+=2*e.PI;return f%=2*e.PI};return!0}})(ChemDoodle.structures,Math); -(function(b,e,a,h,c,d){h.Atom=function(f,h,g,o){this.x=h?h:0;this.y=g?g:0;this.z=o?o:0;this.numRadical=this.numLonePair=this.charge=0;this.mass=-1;this.angleOfLeastInterference=this.bondNumber=this.coordinationNumber=0;this.isHidden=!1;this.label=f?f.replace(/\s/g,""):"C";b[this.label]||(this.label="C");this.altLabel=void 0;this.any=!1;this.rgroup=-1;this.isSelected=this.isHover=this.isLone=!1;this.add3D=function(a){this.x=this.x+a.x;this.y=this.y+a.y;this.z=this.z+a.z};this.sub3D=function(a){this.x= -this.x-a.x;this.y=this.y-a.y;this.z=this.z-a.z};this.distance3D=function(a){var d=a.x-this.x,f=a.y-this.y,a=a.z-this.z;return c.sqrt(d*d+f*f+a*a)};this.draw=function(a,d){if(this.isLassoed){var f=a.createRadialGradient(this.x-1,this.y-1,0,this.x,this.y,7);f.addColorStop(0,"rgba(212, 99, 0, 0)");f.addColorStop(0.7,"rgba(212, 99, 0, 0.8)");a.fillStyle=f;a.beginPath();a.arc(this.x,this.y,5,0,c.PI*2,false);a.fill()}this.textBounds=[];if(this.specs)d=this.specs;f=d.getFontString(d.atoms_font_size_2D,d.atoms_font_families_2D, -d.atoms_font_bold_2D,d.atoms_font_italic_2D);a.font=f;a.fillStyle=d.atoms_color;if(!this.any&&this.rgroup===-1)if(d.atoms_useJMOLColors)a.fillStyle=b[this.label].jmolColor;else if(d.atoms_usePYMOLColors)a.fillStyle=b[this.label].pymolColor;if(this.isLone&&!d.atoms_displayAllCarbonLabels_2D||d.atoms_circles_2D){a.beginPath();a.arc(this.x,this.y,d.atoms_circleDiameter_2D/2,0,c.PI*2,false);a.fill();if(d.atoms_circleBorderWidth_2D>0){a.lineWidth=d.atoms_circleBorderWidth_2D;a.strokeStyle="black";a.stroke(this.x, -this.y,0,c.PI*2,d.atoms_circleDiameter_2D/2)}}else if(this.isLabelVisible(d)){a.textAlign="center";a.textBaseline="middle";if(this.altLabel!==void 0){a.fillText(this.altLabel,this.x,this.y);var g=a.measureText(this.altLabel).width;this.textBounds.push({x:this.x-g/2,y:this.y-d.atoms_font_size_2D/2+1,w:g,h:d.atoms_font_size_2D-2})}else if(this.any){a.font=d.getFontString(d.atoms_font_size_2D+5,d.atoms_font_families_2D,true);a.fillText("*",this.x+1,this.y+3);g=a.measureText("*").width;this.textBounds.push({x:this.x- -g/2,y:this.y-d.atoms_font_size_2D/2+1,w:g,h:d.atoms_font_size_2D-2})}else if(this.rgroup!==-1){f="R"+this.rgroup;a.fillText(f,this.x,this.y);g=a.measureText(f).width;this.textBounds.push({x:this.x-g/2,y:this.y-d.atoms_font_size_2D/2+1,w:g,h:d.atoms_font_size_2D-2})}else{a.fillText(this.label,this.x,this.y);g=a.measureText(this.label).width;this.textBounds.push({x:this.x-g/2,y:this.y-d.atoms_font_size_2D/2+1,w:g,h:d.atoms_font_size_2D-2});if(this.mass!==-1){var h=d.getFontString(d.atoms_font_size_2D* -0.7,d.atoms_font_families_2D,d.atoms_font_bold_2D,d.atoms_font_italic_2D),q=a.font;a.font=h;h=a.measureText(this.mass).width;a.fillText(this.mass,this.x-h-0.5,this.y-d.atoms_font_size_2D*0.3);a.font=q}q=this.getImplicitHydrogenCount();if(d.atoms_implicitHydrogens_2D&&q>0){var o=a.measureText("H").width;if(q>1){var x=g/2+o/2,t=0,h=d.getFontString(d.atoms_font_size_2D*0.8,d.atoms_font_families_2D,d.atoms_font_bold_2D,d.atoms_font_italic_2D);a.font=h;var y=a.measureText(q).width;if(this.bondNumber=== -1)this.angleOfLeastInterference>c.PI/2&&this.angleOfLeastInterference<3*c.PI/2&&(x=-g/2-y-o/2);else if(!(this.angleOfLeastInterference<=c.PI/4))if(this.angleOfLeastInterference<3*c.PI/4){x=0;t=-d.atoms_font_size_2D*0.9}else if(this.angleOfLeastInterference<=5*c.PI/4)x=-g/2-y-o/2;else if(this.angleOfLeastInterference<7*c.PI/4){x=0;t=d.atoms_font_size_2D*0.9}a.font=f;a.fillText("H",this.x+x,this.y+t);a.font=h;a.fillText(q,this.x+x+o/2+y/2,this.y+t+d.atoms_font_size_2D*0.3);this.textBounds.push({x:this.x+ -x-o/2,y:this.y+t-d.atoms_font_size_2D/2+1,w:o,h:d.atoms_font_size_2D-2});this.textBounds.push({x:this.x+x+o/2,y:this.y+t+d.atoms_font_size_2D*0.3-d.atoms_font_size_2D/2+1,w:y,h:d.atoms_font_size_2D*0.8-2})}else{x=g/2+o/2;t=0;if(this.bondNumber===1)this.angleOfLeastInterference>c.PI/2&&this.angleOfLeastInterference<3*c.PI/2&&(x=-g/2-o/2);else if(!(this.angleOfLeastInterference<=c.PI/4))if(this.angleOfLeastInterference<3*c.PI/4){x=0;t=-d.atoms_font_size_2D*0.9}else if(this.angleOfLeastInterference<= -5*c.PI/4)x=-g/2-o/2;else if(this.angleOfLeastInterference<7*c.PI/4){x=0;t=d.atoms_font_size_2D*0.9}a.fillText("H",this.x+x,this.y+t);this.textBounds.push({x:this.x+x-o/2,y:this.y+t-d.atoms_font_size_2D/2+1,w:o,h:d.atoms_font_size_2D-2})}}}if(this.charge!==0){f=this.charge.toFixed(0);f=f==="1"?"+":f==="-1"?"\u2013":e.stringStartsWith(f,"-")?f.substring(1)+"\u2013":f+"+";g=this.angleOfLeastInterference;h=d.atoms_font_size_2D;this.isLabelVisible(d)&&q>0&&(g=g+c.PI/4);a.textAlign="center";a.textBaseline= -"middle";a.fillText(f,this.x+h*c.cos(g),this.y-h*c.sin(g))}if(this.numLonePair>0||this.numRadical>0){a.fillStyle="black";if(this.bondNumber===2&&c.abs(this.largestAngle-c.PI)<c.PI/60)if(this.numRadical===0){this.drawElectrons(a,d,c.floor(this.numLonePair/2),0,this.angleOfLeastInterference,this.largestAngle);this.drawElectrons(a,d,c.floor(this.numLonePair/2)+this.numLonePair%2,0,this.angleOfLeastInterference+c.PI,this.largestAngle)}else if(this.numLonePair===0){this.drawElectrons(a,d,0,c.floor(this.numRadical/ -2),this.angleOfLeastInterference,this.largestAngle);this.drawElectrons(a,d,0,c.floor(this.numRadical/2)+this.numRadical%2,this.angleOfLeastInterference+c.PI,this.largestAngle)}else{this.drawElectrons(a,d,this.numLonePair,0,this.angleOfLeastInterference,this.largestAngle);this.drawElectrons(a,d,0,this.numRadical,this.angleOfLeastInterference+c.PI,this.largestAngle)}else this.drawElectrons(a,d,this.numLonePair,this.numRadical,this.angleOfLeastInterference,this.largestAngle)}}};this.drawElectrons=function(a, -d,f,g,b,e){for(var h=e/(f+g+(this.bondNumber===0?0:1)),e=b-e/2+h,q=0;q<f;q++){var b=e+q*h,o=this.x+Math.cos(b)*d.atoms_lonePairDistance_2D,y=this.y-Math.sin(b)*d.atoms_lonePairDistance_2D,w=b+Math.PI/2,b=Math.cos(w)*d.atoms_lonePairSpread_2D/2,w=-Math.sin(w)*d.atoms_lonePairSpread_2D/2;a.beginPath();a.arc(o+b,y+w,d.atoms_lonePairDiameter_2D,0,c.PI*2,false);a.fill();a.beginPath();a.arc(o-b,y-w,d.atoms_lonePairDiameter_2D,0,c.PI*2,false);a.fill()}for(q=0;q<g;q++){b=e+(q+f)*h;o=this.x+Math.cos(b)*d.atoms_lonePairDistance_2D; -y=this.y-Math.sin(b)*d.atoms_lonePairDistance_2D;a.beginPath();a.arc(o,y,d.atoms_lonePairDiameter_2D,0,c.PI*2,false);a.fill()}};this.drawDecorations=function(a){if(this.isHover||this.isSelected){a.strokeStyle=this.isHover?"#885110":"#0060B2";a.lineWidth=1.2;a.beginPath();a.arc(this.x,this.y,this.isHover?7:15,0,c.PI*2,false);a.stroke()}if(this.isOverlap){a.strokeStyle="#C10000";a.lineWidth=1.2;a.beginPath();a.arc(this.x,this.y,7,0,c.PI*2,false);a.stroke()}};this.render=function(a,f){if(this.specs)f= -this.specs;var c=d.translate(a.modelViewMatrix,[this.x,this.y,this.z],[]),g=f.atoms_useVDWDiameters_3D?b[this.label].vdWRadius*f.atoms_vdwMultiplier_3D:f.atoms_sphereDiameter_3D/2;g===0&&(g=1);d.scale(c,[g,g,g]);g=f.atoms_color;if(f.atoms_useJMOLColors)g=b[this.label].jmolColor;else if(f.atoms_usePYMOLColors)g=b[this.label].pymolColor;a.material.setDiffuseColor(g);a.setMatrixUniforms(c);a.drawElements(a.TRIANGLES,(this.renderAsStar?a.starBuffer:a.sphereBuffer).vertexIndexBuffer.numItems,a.UNSIGNED_SHORT, -0)};this.isLabelVisible=function(a){return a.atoms_displayAllCarbonLabels_2D||this.label!=="C"||this.altLabel||this.any||this.rgroup!==-1||this.mass!==-1||this.charge!==0||this.numLonePair!==0||this.isHidden&&a.atoms_showHiddenCarbons_2D||a.atoms_displayTerminalCarbonLabels_2D&&this.bondNumber===1};this.getImplicitHydrogenCount=function(){if(this.label==="H"||!b[this.label])return 0;var a=b[this.label].valency,d=a-this.coordinationNumber;if(this.charge>0){a=4-a;d=this.charge<=a?d+this.charge:4-this.coordinationNumber- -this.charge+a}else d=d+this.charge;return d<0?0:d};this.getBounds=function(){var d=new a.Bounds;d.expand(this.x,this.y);if(this.textBounds)for(var f=0,g=this.textBounds.length;f<g;f++){var c=this.textBounds[f];d.expand(c.x,c.y,c.x+c.w,c.y+c.h)}return d};return!0};h.Atom.prototype=new h.Point(0,0)})(ChemDoodle.ELEMENT,ChemDoodle.extensions,ChemDoodle.math,ChemDoodle.structures,Math,mat4); -(function(b,e,a,h,c,d,f){a.Bond=function(q,g,o){this.a1=q;this.a2=g;this.bondOrder=o?o:1;this.stereo=a.Bond.STEREO_NONE;this.isHover=!1;this.ring=void 0;this.getCenter=function(){return new a.Point((this.a1.x+this.a2.x)/2,(this.a1.y+this.a2.y)/2)};this.getLength=function(){return this.a1.distance(this.a2)};this.getLength3D=function(){return this.a1.distance3D(this.a2)};this.contains=function(a){return a===this.a1||a===this.a2};this.getNeighbor=function(a){if(a===this.a1)return this.a2;if(a===this.a2)return this.a1}; -this.draw=function(d,f){if(!(this.a1.x===this.a2.x&&this.a1.y===this.a2.y)){this.specs&&(f=this.specs);var g=this.a1.x,q=this.a2.x,o=this.a1.y,k=this.a2.y,v=this.a1.distance(this.a2),x=q-g,t=k-o;if(this.a1.isLassoed&&this.a2.isLassoed){var y=d.createLinearGradient(g,o,q,k);y.addColorStop(0,"rgba(212, 99, 0, 0)");y.addColorStop(0.5,"rgba(212, 99, 0, 0.8)");y.addColorStop(1,"rgba(212, 99, 0, 0)");var w=2.5,u=this.a1.angle(this.a2)+c.PI/2,p=c.cos(u),u=c.sin(u),A=g-p*w,B=o+u*w,D=g+p*w,G=o-u*w,F=q+p*w, -C=k-u*w,p=q-p*w,u=k+u*w;d.fillStyle=y;d.beginPath();d.moveTo(A,B);d.lineTo(D,G);d.lineTo(F,C);d.lineTo(p,u);d.closePath();d.fill()}if(f.atoms_display&&!f.atoms_circles_2D&&this.a1.isLabelVisible(f)){w=p=0;for(A=this.a1.textBounds.length;w<A;w++)p=Math.max(p,h.calculateDistanceInterior(this.a1,this.a2,this.a1.textBounds[w]));p+=f.bonds_atomLabelBuffer_2D;p/=v;g+=x*p;o+=t*p}if(f.atoms_display&&!f.atoms_circles_2D&&this.a2.isLabelVisible(f)){w=p=0;for(A=this.a2.textBounds.length;w<A;w++)p=Math.max(p, -h.calculateDistanceInterior(this.a2,this.a1,this.a2.textBounds[w]));p+=f.bonds_atomLabelBuffer_2D;p/=v;q-=x*p;k-=t*p}f.bonds_clearOverlaps_2D&&(p=g+0.15*x,u=o+0.15*t,w=q-0.15*x,v=k-0.15*t,d.strokeStyle=f.backgroundColor,d.lineWidth=f.bonds_width_2D+2*f.bonds_overlapClearWidth_2D,d.lineCap="round",d.beginPath(),d.moveTo(p,u),d.lineTo(w,v),d.closePath(),d.stroke());d.strokeStyle=f.bonds_color;d.fillStyle=f.bonds_color;d.lineWidth=f.bonds_width_2D;d.lineCap=f.bonds_ends_2D;if(f.bonds_useJMOLColors|| -f.bonds_usePYMOLColors)p=d.createLinearGradient(g,o,q,k),u=b[this.a1.label].jmolColor,w=b[this.a2.label].jmolColor,f.atoms_usePYMOLColors&&(u=b[this.a1.label].pymolColor,w=b[this.a2.label].pymolColor),p.addColorStop(0,u),f.bonds_colorGradient||(p.addColorStop(0.5,u),p.addColorStop(0.51,w)),p.addColorStop(1,w),d.strokeStyle=p,d.fillStyle=p;switch(this.bondOrder){case 0.5:d.beginPath();d.moveTo(g,o);e.contextHashTo(d,g,o,q,k,f.bonds_hashSpacing_2D,f.bonds_hashSpacing_2D);d.stroke();break;case 1:if(this.stereo=== -a.Bond.STEREO_PROTRUDING||this.stereo===a.Bond.STEREO_RECESSED)t=f.bonds_width_2D/2,w=this.a1.distance(this.a2)*f.bonds_wedgeThickness_2D/2,u=this.a1.angle(this.a2)+c.PI/2,p=c.cos(u),u=c.sin(u),A=g-p*t,B=o+u*t,D=g+p*t,G=o-u*t,F=q+p*w,C=k-u*w,p=q-p*w,u=k+u*w,d.beginPath(),d.moveTo(A,B),d.lineTo(D,G),d.lineTo(F,C),d.lineTo(p,u),d.closePath(),this.stereo===a.Bond.STEREO_PROTRUDING?d.fill():(d.save(),d.clip(),d.lineWidth=2*w,d.lineCap="butt",d.beginPath(),d.moveTo(g,o),e.contextHashTo(d,g,o,q,k,f.bonds_hashWidth_2D, -f.bonds_hashSpacing_2D),d.stroke(),d.restore());else if(this.stereo===a.Bond.STEREO_AMBIGUOUS){d.beginPath();d.moveTo(g,o);q=c.floor(c.sqrt(x*x+t*t)/f.bonds_wavyLength_2D);k=g;u=this.a1.angle(this.a2)+c.PI/2;p=c.cos(u);u=c.sin(u);g=x/q;t/=q;w=0;for(A=q;w<A;w++)k+=g,o+=t,q=f.bonds_wavyLength_2D*p+k-0.5*g,v=f.bonds_wavyLength_2D*-u+o-0.5*t,x=f.bonds_wavyLength_2D*-p+k-0.5*g,B=f.bonds_wavyLength_2D*u+o-0.5*t,0===w%2?d.quadraticCurveTo(q,v,k,o):d.quadraticCurveTo(x,B,k,o);d.stroke();break}else d.beginPath(), -d.moveTo(g,o),d.lineTo(q,k),d.stroke();break;case 1.5:d.beginPath();d.moveTo(g,o);d.lineTo(q,k);d.stroke();break;case 2:this.stereo===a.Bond.STEREO_AMBIGUOUS?(w=this.a1.distance(this.a2)*f.bonds_saturationWidth_2D/2,u=this.a1.angle(this.a2)+c.PI/2,p=c.cos(u),u=c.sin(u),A=g-p*w,B=o+u*w,D=g+p*w,G=o-u*w,F=q+p*w,C=k-u*w,p=q-p*w,u=k+u*w,d.beginPath(),d.moveTo(A,B),d.lineTo(F,C),d.moveTo(D,G),d.lineTo(p,u),d.stroke()):!f.bonds_symmetrical_2D&&(this.ring||"C"===this.a1.label&&"C"===this.a2.label)?(d.beginPath(), -d.moveTo(g,o),d.lineTo(q,k),x=0,v=this.a1.distance(this.a2),p=this.a1.angle(this.a2),u=p+c.PI/2,w=v*f.bonds_saturationWidth_2D,t=f.bonds_saturationAngle_2D,t<c.PI/2&&(x=-(w/c.tan(t))),c.abs(x)<v/2&&(t=g-c.cos(p)*x,g=q+c.cos(p)*x,q=o+c.sin(p)*x,o=k-c.sin(p)*x,p=c.cos(u),u=c.sin(u),A=t-p*w,B=q+u*w,D=t+p*w,G=q-u*w,F=g-p*w,C=o+u*w,p=g+p*w,u=o-u*w,!this.ring||this.ring.center.angle(this.a1)>this.ring.center.angle(this.a2)&&!(this.ring.center.angle(this.a1)-this.ring.center.angle(this.a2)>c.PI)||this.ring.center.angle(this.a1)- -this.ring.center.angle(this.a2)<-c.PI?(d.moveTo(A,B),d.lineTo(F,C)):(d.moveTo(D,G),d.lineTo(p,u)),d.stroke())):(w=this.a1.distance(this.a2)*f.bonds_saturationWidth_2D/2,u=this.a1.angle(this.a2)+c.PI/2,p=c.cos(u),u=c.sin(u),A=g-p*w,B=o+u*w,D=g+p*w,G=o-u*w,F=q+p*w,C=k-u*w,p=q-p*w,u=k+u*w,d.beginPath(),d.moveTo(A,B),d.lineTo(p,u),d.moveTo(D,G),d.lineTo(F,C),d.stroke());break;case 3:w=this.a1.distance(this.a2)*f.bonds_saturationWidth_2D,u=this.a1.angle(this.a2)+c.PI/2,p=c.cos(u),u=c.sin(u),A=g-p*w,B= -o+u*w,D=g+p*w,G=o-u*w,F=q+p*w,C=k-u*w,p=q-p*w,u=k+u*w,d.beginPath(),d.moveTo(A,B),d.lineTo(p,u),d.moveTo(D,G),d.lineTo(F,C),d.moveTo(g,o),d.lineTo(q,k),d.stroke()}}};this.drawDecorations=function(a){if(this.isHover||this.isSelected){var d=2*c.PI,f=(this.a1.angleForStupidCanvasArcs(this.a2)+c.PI/2)%d;a.strokeStyle=this.isHover?"#885110":"#0060B2";a.lineWidth=1.2;a.beginPath();var g=(f+c.PI)%d,g=g%(2*c.PI);a.arc(this.a1.x,this.a1.y,7,f,g,!1);a.stroke();a.beginPath();f+=c.PI;g=(f+c.PI)%d;a.arc(this.a2.x, -this.a2.y,7,f,g,!1);a.stroke()}};this.render=function(a,g){this.specs&&(g=this.specs);var q=(g.bonds_renderAsLines_3D?1.1:1.001)*this.a1.distance3D(this.a2)/(g.bonds_useJMOLColors||g.bonds_usePYMOLColors?2:1);if(0===q)return!1;var q=[g.bonds_cylinderDiameter_3D/2,q,g.bonds_cylinderDiameter_3D/2],h=d.translate(a.modelViewMatrix,[this.a1.x,this.a1.y,this.a1.z],[]),o,k=[this.a2.x-this.a1.x,this.a2.y-this.a1.y,this.a2.z-this.a1.z];if(g.bonds_useJMOLColors||g.bonds_usePYMOLColors)f.scale(k,0.5),o=d.translate(a.modelViewMatrix, -[this.a2.x,this.a2.y,this.a2.z],[]);var v=[0],x;if(g.bonds_showBondOrders_3D){switch(this.bondOrder){case 2:v=[-g.bonds_cylinderDiameter_3D,g.bonds_cylinderDiameter_3D];break;case 3:v=[-1.2*g.bonds_cylinderDiameter_3D,0,1.2*g.bonds_cylinderDiameter_3D]}if(1<v.length){x=[0,0,1];var t=d.inverse(a.rotationMatrix,[]);d.multiplyVec3(t,x);x=f.cross(k,x,[]);f.normalize(x)}}var y=[0,1,0],t=0;this.a1.x===this.a2.x&&this.a1.z===this.a2.z?(k=[0,0,1],this.a2.y<this.a1.y&&(t=c.PI)):(t=e.vec3AngleFrom(y,k),k=f.cross(y, -k,[]));for(var y=0,w=v.length;y<w;y++){var u=d.set(h,[]);0!==v[y]&&d.translate(u,f.scale(x,v[y],[]));0!==t&&d.rotate(u,t,k);d.scale(u,q);var p=g.bonds_color;g.bonds_useJMOLColors?p=b[this.a1.label].jmolColor:g.bonds_usePYMOLColors&&(p=b[this.a1.label].pymolColor);a.material.setDiffuseColor(p);a.setMatrixUniforms(u);g.bonds_renderAsLines_3D?a.drawArrays(a.LINES,0,a.lineBuffer.vertexPositionBuffer.numItems):a.drawArrays(a.TRIANGLE_STRIP,0,a.cylinderBuffer.vertexPositionBuffer.numItems);if(g.bonds_useJMOLColors|| -g.bonds_usePYMOLColors)d.set(o,u),0!==v[y]&&d.translate(u,f.scale(x,v[y],[])),d.rotate(u,t+c.PI,k),d.scale(u,q),a.material.setDiffuseColor(g.bonds_usePYMOLColors?b[this.a2.label].pymolColor:b[this.a2.label].jmolColor),a.setMatrixUniforms(u),g.bonds_renderAsLines_3D?a.drawArrays(a.LINES,0,a.lineBuffer.vertexPositionBuffer.numItems):a.drawArrays(a.TRIANGLE_STRIP,0,a.cylinderBuffer.vertexPositionBuffer.numItems)}};return!0};a.Bond.STEREO_NONE="none";a.Bond.STEREO_PROTRUDING="protruding";a.Bond.STEREO_RECESSED= -"recessed";a.Bond.STEREO_AMBIGUOUS="ambiguous"})(ChemDoodle.ELEMENT,ChemDoodle.extensions,ChemDoodle.structures,ChemDoodle.math,Math,mat4,vec3); -(function(b,e){b.Ring=function(){this.atoms=[];this.bonds=[];this.center=void 0;this.setupBonds=function(){for(var a=0,b=this.bonds.length;a<b;a++)this.bonds[a].ring=this;this.center=this.getCenter()};this.getCenter=function(){for(var a=Infinity,h=Infinity,c=-Infinity,d=-Infinity,f=0,q=this.atoms.length;f<q;f++)a=e.min(this.atoms[f].x,a),h=e.min(this.atoms[f].y,h),c=e.max(this.atoms[f].x,c),d=e.max(this.atoms[f].y,d);return new b.Point((c+a)/2,(d+h)/2)};return!0}})(ChemDoodle.structures,Math); -(function(b,e,a,h,c){a.Molecule=function(){this.atoms=[];this.bonds=[];this.rings=[];this.findRings=!0;this.draw=function(a,f){this.specs&&(f=this.specs);if(f.atoms_display&&!f.atoms_circles_2D)for(var c=0,g=this.atoms.length;c<g;c++)this.atoms[c].draw(a,f);if(f.bonds_display){c=0;for(g=this.bonds.length;c<g;c++)this.bonds[c].draw(a,f)}if(f.atoms_display&&f.atoms_circles_2D){c=0;for(g=this.atoms.length;c<g;c++)this.atoms[c].draw(a,f)}};this.render=function(d,f){this.specs&&(f=this.specs);var c=0< -this.atoms.length&&void 0!==this.atoms[0].hetatm;if(c){if(f.macro_displayBonds){0<this.bonds.length&&(f.bonds_renderAsLines_3D&&!this.residueSpecs||this.residueSpecs&&this.residueSpecs.bonds_renderAsLines_3D?(d.lineWidth(this.residueSpecs?this.residueSpecs.bonds_width_2D:f.bonds_width_2D),d.lineBuffer.bindBuffers(d)):d.cylinderBuffer.bindBuffers(d),d.material.setTempColors(f.bonds_materialAmbientColor_3D,void 0,f.bonds_materialSpecularColor_3D,f.bonds_materialShininess_3D));for(var g=0,b=this.bonds.length;g< -b;g++){var e=this.bonds[g];if(!e.a1.hetatm&&(-1===f.macro_atomToLigandDistance||void 0!==e.a1.closestDistance&&f.macro_atomToLigandDistance>=e.a1.closestDistance&&f.macro_atomToLigandDistance>=e.a2.closestDistance))e.render(d,this.residueSpecs?this.residueSpecs:f)}}if(f.macro_displayAtoms){0<this.atoms.length&&(d.sphereBuffer.bindBuffers(d),d.material.setTempColors(f.atoms_materialAmbientColor_3D,void 0,f.atoms_materialSpecularColor_3D,f.atoms_materialShininess_3D));g=0;for(b=this.atoms.length;g< -b;g++){var j=this.atoms[g];if(!j.hetatm&&(-1===f.macro_atomToLigandDistance||void 0!==j.closestDistance&&f.macro_atomToLigandDistance>=j.closestDistance))j.render(d,this.residueSpecs?this.residueSpecs:f)}}}if(f.bonds_display){0<this.bonds.length&&(f.bonds_renderAsLines_3D?(d.lineWidth(f.bonds_width_2D),d.lineBuffer.bindBuffers(d)):d.cylinderBuffer.bindBuffers(d),d.material.setTempColors(f.bonds_materialAmbientColor_3D,void 0,f.bonds_materialSpecularColor_3D,f.bonds_materialShininess_3D));g=0;for(b= -this.bonds.length;g<b;g++)e=this.bonds[g],(!c||e.a1.hetatm)&&e.render(d,f)}if(f.atoms_display){g=0;for(b=this.atoms.length;g<b;g++)j=this.atoms[g],j.bondNumber=0,j.renderAsStar=!1;g=0;for(b=this.bonds.length;g<b;g++)e=this.bonds[g],e.a1.bondNumber++,e.a2.bondNumber++;0<this.atoms.length&&(d.sphereBuffer.bindBuffers(d),d.material.setTempColors(f.atoms_materialAmbientColor_3D,void 0,f.atoms_materialSpecularColor_3D,f.atoms_materialShininess_3D));e=[];g=0;for(b=this.atoms.length;g<b;g++)if(j=this.atoms[g], -!c||j.hetatm&&(f.macro_showWater||!j.isWater))f.atoms_nonBondedAsStars_3D&&0===j.bondNumber?(j.renderAsStar=!0,e.push(j)):j.render(d,f);if(0<e.length){d.starBuffer.bindBuffers(d);g=0;for(b=e.length;g<b;g++)e[g].render(d,f)}}if(this.chains){d.setMatrixUniforms(d.modelViewMatrix);if(f.proteins_displayRibbon){d.material.setTempColors(f.proteins_materialAmbientColor_3D,void 0,f.proteins_materialSpecularColor_3D,f.proteins_materialShininess_3D);c=0;for(j=this.ribbons.length;c<j;c++)if(f.proteins_useShapelyColors|| -f.proteins_useAminoColors||f.proteins_usePolarityColors){e=f.proteins_ribbonCartoonize?this.cartoons[c]:this.ribbons[c];e.front.bindBuffers(d);g=0;for(b=e.front.segments.length;g<b;g++)e.front.segments[g].render(d,f);e.back.bindBuffers(d);g=0;for(b=e.back.segments.length;g<b;g++)e.back.segments[g].render(d,f)}else if(f.proteins_ribbonCartoonize){e=this.cartoons[c];e.front.bindBuffers(d);g=0;for(b=e.front.cartoonSegments.length;g<b;g++)e.front.cartoonSegments[g].render(d,f);e.back.bindBuffers(d);g= -0;for(b=e.back.cartoonSegments.length;g<b;g++)e.back.cartoonSegments[g].render(d,f)}else e=this.ribbons[c],e.front.render(d,f),e.back.render(d,f)}if(f.proteins_displayBackbone){if(!this.alphaCarbonTrace){this.alphaCarbonTrace={nodes:[],edges:[]};c=0;for(j=this.chains.length;c<j;c++){var l=this.chains[c];if(!(2<l.length&&h[l[2].name]&&"#BEA06E"===h[l[2].name].aminoColor)&&0<l.length){g=1;for(b=l.length-2;g<b;g++)e=l[g].cp1,e.chainColor=l.chainColor,this.alphaCarbonTrace.nodes.push(e),e=new a.Bond(l[g].cp1, -l[g+1].cp1),e.residueName=l[g].name,e.chainColor=l.chainColor,this.alphaCarbonTrace.edges.push(e),g===l.length-3&&(e=l[g+1].cp1,e.chainColor=l.chainColor,this.alphaCarbonTrace.nodes.push(e))}}}if(0<this.alphaCarbonTrace.nodes.length){c=new a.VisualSpecifications;c.atoms_display=!0;c.bonds_display=!0;c.atoms_sphereDiameter_3D=f.proteins_backboneThickness;c.bonds_cylinderDiameter_3D=f.proteins_backboneThickness;c.bonds_useJMOLColors=!1;c.atoms_color=f.proteins_backboneColor;c.bonds_color=f.proteins_backboneColor; -c.atoms_useVDWDiameters_3D=!1;d.material.setTempColors(f.proteins_materialAmbientColor_3D,void 0,f.proteins_materialSpecularColor_3D,f.proteins_materialShininess_3D);d.material.setDiffuseColor(f.proteins_backboneColor);g=0;for(b=this.alphaCarbonTrace.nodes.length;g<b;g++)e=this.alphaCarbonTrace.nodes[g],f.macro_colorByChain&&(c.atoms_color=e.chainColor),d.sphereBuffer.bindBuffers(d),e.render(d,c);g=0;for(b=this.alphaCarbonTrace.edges.length;g<b;g++){var j=this.alphaCarbonTrace.edges[g],n,e=h[j.residueName]? -h[j.residueName]:h["*"];f.macro_colorByChain?n=j.chainColor:f.proteins_useShapelyColors?n=e.shapelyColor:f.proteins_useAminoColors?n=e.aminoColor:f.proteins_usePolarityColors&&(n=e.polar?"#C10000":"#FFFFFF");n&&(c.bonds_color=n);d.cylinderBuffer.bindBuffers(d);j.render(d,c)}}}if(f.nucleics_display){d.material.setTempColors(f.nucleics_materialAmbientColor_3D,void 0,f.nucleics_materialSpecularColor_3D,f.nucleics_materialShininess_3D);c=0;for(j=this.tubes.length;c<j;c++)d.setMatrixUniforms(d.modelViewMatrix), -e=this.tubes[c],e.render(d,f)}}f.crystals_displayUnitCell&&this.unitCell&&(d.setMatrixUniforms(d.modelViewMatrix),this.unitCell.bindBuffers(d),d.material.setDiffuseColor(f.crystals_unitCellColor),d.lineWidth(f.crystals_unitCellLineWidth),d.drawElements(d.LINES,this.unitCell.vertexIndexBuffer.numItems,d.UNSIGNED_SHORT,0));this.surface&&f.surfaces_display&&(d.setMatrixUniforms(d.modelViewMatrix),this.surface.bindBuffers(d),d.material.setTempColors(f.surfaces_materialAmbientColor_3D,f.surfaces_color, -f.surfaces_materialSpecularColor_3D,f.surfaces_materialShininess_3D),"Dot"===f.surfaces_style?d.drawArrays(d.POINTS,0,this.surface.vertexPositionBuffer.numItems):d.drawElements(d.TRIANGLES,this.surface.vertexIndexBuffer.numItems,d.UNSIGNED_SHORT,0))};this.getCenter3D=function(){if(1===this.atoms.length)return new a.Atom("C",this.atoms[0].x,this.atoms[0].y,this.atoms[0].z);var d=Infinity,f=Infinity,b=Infinity,g=-Infinity,e=-Infinity,h=-Infinity;if(this.chains)for(var j=0,l=this.chains.length;j<l;j++)for(var n= -this.chains[j],r=0,k=n.length;r<k;r++)var v=n[r],d=c.min(v.cp1.x,d),f=c.min(v.cp1.y,f),b=c.min(v.cp1.z,b),g=c.max(v.cp1.x,g),e=c.max(v.cp1.y,e),h=c.max(v.cp1.z,h),d=c.min(v.cp2.x,d),f=c.min(v.cp2.y,f),b=c.min(v.cp2.z,b),g=c.max(v.cp2.x,g),e=c.max(v.cp2.y,e),h=c.max(v.cp2.z,h);j=0;for(l=this.atoms.length;j<l;j++)d=c.min(this.atoms[j].x,d),f=c.min(this.atoms[j].y,f),b=c.min(this.atoms[j].z,b),g=c.max(this.atoms[j].x,g),e=c.max(this.atoms[j].y,e),h=c.max(this.atoms[j].z,h);return new a.Atom("C",(g+d)/ -2,(e+f)/2,(h+b)/2)};this.getCenter=function(){if(1===this.atoms.length)return new a.Point(this.atoms[0].x,this.atoms[0].y);for(var d=Infinity,f=Infinity,b=-Infinity,g=-Infinity,e=0,h=this.atoms.length;e<h;e++)d=c.min(this.atoms[e].x,d),f=c.min(this.atoms[e].y,f),b=c.max(this.atoms[e].x,b),g=c.max(this.atoms[e].y,g);return new a.Point((b+d)/2,(g+f)/2)};this.getDimension=function(){if(1===this.atoms.length)return new a.Point(0,0);var d=Infinity,f=Infinity,b=-Infinity,g=-Infinity;if(this.chains){for(var e= -0,h=this.chains.length;e<h;e++)for(var j=this.chains[e],l=0,n=j.length;l<n;l++)var r=j[l],d=c.min(r.cp1.x,d),f=c.min(r.cp1.y,f),b=c.max(r.cp1.x,b),g=c.max(r.cp1.y,g),d=c.min(r.cp2.x,d),f=c.min(r.cp2.y,f),b=c.max(r.cp2.x,b),g=c.max(r.cp2.y,g);d-=30;f-=30;b+=30;g+=30}e=0;for(h=this.atoms.length;e<h;e++)d=c.min(this.atoms[e].x,d),f=c.min(this.atoms[e].y,f),b=c.max(this.atoms[e].x,b),g=c.max(this.atoms[e].y,g);return new a.Point(b-d,g-f)};this.check=function(a){if(a&&this.doChecks){if(this.findRings)if(this.bonds.length- -this.atoms.length!==this.fjNumCache){this.rings=(new b.informatics.SSSRFinder(this)).rings;for(var f=0,c=this.bonds.length;f<c;f++)this.bonds[f].ring=void 0;f=0;for(c=this.rings.length;f<c;f++)this.rings[f].setupBonds()}else{f=0;for(c=this.rings.length;f<c;f++){var g=this.rings[f];g.center=g.getCenter()}}if(this.atoms.length!==this.atomNumCache&&this.bonds.length!==this.bondNumCache){f=0;for(c=this.atoms.length;f<c;f++)if(this.atoms[f].isLone=!1,"C"===this.atoms[f].label){for(var e=g=0,h=this.bonds.length;e< -h;e++)(this.bonds[e].a1===this.atoms[f]||this.bonds[e].a2===this.atoms[f])&&g++;0===g&&(this.atoms[f].isLone=!0)}}g=!1;f=0;for(c=this.atoms.length;f<c;f++)0!==this.atoms[f].z&&(g=!0);g&&(this.sortAtomsByZ(),this.sortBondsByZ());this.setupMetaData();this.atomNumCache=this.atoms.length;this.bondNumCache=this.bonds.length;this.fjNumCache=this.bonds.length-this.atoms.length}this.doChecks=!a};this.getAngles=function(a){for(var f=[],c=0,g=this.bonds.length;c<g;c++)this.bonds[c].contains(a)&&f.push(a.angle(this.bonds[c].getNeighbor(a))); -f.sort();return f};this.getCoordinationNumber=function(a){for(var f=0,c=0,g=a.length;c<g;c++)f+=a[c].bondOrder;return f};this.getBonds=function(a){for(var f=[],c=0,g=this.bonds.length;c<g;c++)this.bonds[c].contains(a)&&f.push(this.bonds[c]);return f};this.sortAtomsByZ=function(){for(var a=1,f=this.atoms.length;a<f;a++)for(var c=a;0<c&&this.atoms[c].z<this.atoms[c-1].z;){var g=this.atoms[c];this.atoms[c]=this.atoms[c-1];this.atoms[c-1]=g;c--}};this.sortBondsByZ=function(){for(var a=1,c=this.bonds.length;a< -c;a++)for(var b=a;0<b&&this.bonds[b].a1.z+this.bonds[b].a2.z<this.bonds[b-1].a1.z+this.bonds[b-1].a2.z;){var g=this.bonds[b];this.bonds[b]=this.bonds[b-1];this.bonds[b-1]=g;b--}};this.setupMetaData=function(){for(var a=this.getCenter(),f=0,e=this.atoms.length;f<e;f++){var g=this.atoms[f],h=this.getBonds(g),m=this.getAngles(g);g.isHidden=2===h.length&&c.abs(c.abs(m[1]-m[0])-c.PI)<c.PI/30&&h[0].bondOrder===h[1].bondOrder;m=b.math.angleBetweenLargest(m);g.angleOfLeastInterference=m.angle%(2*c.PI);g.largestAngle= -m.largest;g.coordinationNumber=this.getCoordinationNumber(h);g.bondNumber=h.length;g.molCenter=a}f=0;for(e=this.bonds.length;f<e;f++)this.bonds[f].molCenter=a};this.scaleToAverageBondLength=function(a){var c=this.getAverageBondLength();if(0!==c)for(var a=a/c,c=0,b=this.atoms.length;c<b;c++)this.atoms[c].x*=a,this.atoms[c].y*=a};this.getAverageBondLength=function(){if(0===this.bonds.length)return 0;for(var a=0,c=0,b=this.bonds.length;c<b;c++)a+=this.bonds[c].getLength();return a/=this.bonds.length}; -this.getBounds=function(){for(var a=new e.Bounds,c=0,b=this.atoms.length;c<b;c++)a.expand(this.atoms[c].getBounds());if(this.chains){c=0;for(b=this.chains.length;c<b;c++)for(var g=this.chains[c],h=0,m=g.length;h<m;h++){var j=g[h];a.expand(j.cp1.x,j.cp1.y);a.expand(j.cp2.x,j.cp2.y)}a.minX-=30;a.minY-=30;a.maxX+=30;a.maxY+=30}return a};return!0}})(ChemDoodle,ChemDoodle.math,ChemDoodle.structures,ChemDoodle.RESIDUE,Math); -(function(b,e,a,h){var c,d=-1;b.Residue=function(f){this.resSeq=f;this.setup=function(a,d){this.horizontalResolution=d;var c=[a.x-this.cp1.x,a.y-this.cp1.y,a.z-this.cp1.z],f=h.cross(c,[this.cp2.x-this.cp1.x,this.cp2.y-this.cp1.y,this.cp2.z-this.cp1.z],[]);this.D=h.cross(f,c,[]);h.normalize(f);h.normalize(this.D);this.guidePointsSmall=[];this.guidePointsLarge=[];c=[(a.x+this.cp1.x)/2,(a.y+this.cp1.y)/2,(a.z+this.cp1.z)/2];this.helix&&(h.scale(f,1.5),h.add(c,f));this.guidePointsSmall[0]=new b.Atom("", -c[0]-this.D[0]/2,c[1]-this.D[1]/2,c[2]-this.D[2]/2);for(f=1;f<d;f++)this.guidePointsSmall[f]=new b.Atom("",this.guidePointsSmall[0].x+this.D[0]*f/d,this.guidePointsSmall[0].y+this.D[1]*f/d,this.guidePointsSmall[0].z+this.D[2]*f/d);h.scale(this.D,4);this.guidePointsLarge[0]=new b.Atom("",c[0]-this.D[0]/2,c[1]-this.D[1]/2,c[2]-this.D[2]/2);for(f=1;f<d;f++)this.guidePointsLarge[f]=new b.Atom("",this.guidePointsLarge[0].x+this.D[0]*f/d,this.guidePointsLarge[0].y+this.D[1]*f/d,this.guidePointsLarge[0].z+ -this.D[2]*f/d)};this.getGuidePointSet=function(a){if(0===a)return this.helix||this.sheet?this.guidePointsLarge:this.guidePointsSmall;if(1===a)return this.guidePointsSmall;if(2===a)return this.guidePointsLarge};this.computeLineSegments=function(f,g,b,e,h){if(h!==d){var l=h*h,n=h*h*h;c=a.multiply([-1/6,0.5,-0.5,1/6,0.5,-1,0.5,0,-0.5,0,0.5,0,1/6,2/3,1/6,0],[6/n,0,0,0,6/n,2/l,0,0,1/n,1/l,1/h,0,0,0,0,1],[]);d=h}this.split=g.helix!==this.helix||g.sheet!==this.sheet;this.lineSegments=this.innerCompute(0, -f,g,b,!1,h);e&&(this.lineSegmentsCartoon=this.innerCompute(g.helix||g.sheet?2:1,f,g,b,!0,h))};this.innerCompute=function(d,f,o,m,j,l){for(var n=[],r=this.getGuidePointSet(d),f=f.getGuidePointSet(d),o=o.getGuidePointSet(d),k=m.getGuidePointSet(d),v=0,x=this.guidePointsLarge.length;v<x;v++){for(var t=a.multiply([f[v].x,f[v].y,f[v].z,1,r[v].x,r[v].y,r[v].z,1,o[v].x,o[v].y,o[v].z,1,k[v].x,k[v].y,k[v].z,1],c,[]),y=[],w=0;w<l;w++){for(d=3;0<d;d--)for(m=0;4>m;m++)t[4*d+m]+=t[4*(d-1)+m];y[w]=new b.Atom("", -t[12]/t[15],t[13]/t[15],t[14]/t[15])}n[v]=y}if(j&&this.arrow)for(d=0;d<l;d++){j=1.5-1.3*d/l;r=e.floor(this.horizontalResolution/2);f=n[r];m=0;for(o=n.length;m<o;m++)m!==r&&(k=f[d],v=n[m][d],x=[v.x-k.x,v.y-k.y,v.z-k.z],h.scale(x,j),v.x=k.x+x[0],v.y=k.y+x[1],v.z=k.z+x[2])}return n}}})(ChemDoodle.structures,Math,mat4,vec3); -(function(b,e,a,h,c){e.Spectrum=function(){this.data=[];this.metadata=[];this.dataDisplay=[];this.yUnit=this.xUnit=this.title=void 0;this.continuous=!0;this.integrationSensitivity=0.01;this.memory={offsetTop:0,offsetLeft:0,offsetBottom:0,flipXAxis:!1,scale:1,width:0,height:0};this.draw=function(a,f,e,g){this.specs&&(f=this.specs);var o=5,m=0,j=0;a.fillStyle=f.text_color;a.textAlign="center";a.textBaseline="alphabetic";a.font=f.getFontString(f.text_font_size,f.text_font_families);this.xUnit&&(j+=f.text_font_size, -a.fillText(this.xUnit,e/2,g-2));this.yUnit&&f.plots_showYAxis&&(m+=f.text_font_size,a.save(),a.translate(f.text_font_size,g/2),a.rotate(-c.PI/2),a.fillText(this.yUnit,0,0),a.restore());this.title&&(o+=f.text_font_size,a.fillText(this.title,e/2,f.text_font_size));j+=5+f.text_font_size;f.plots_showYAxis&&(m+=5+a.measureText("1000").width);f.plots_showGrid&&(a.strokeStyle=f.plots_gridColor,a.lineWidth=f.plots_gridLineWidth,a.strokeRect(m,o,e-m,g-j-o));a.textAlign="center";a.textBaseline="top";for(var l= -this.maxX-this.minX,n=l/100,r=0.001;r<n||25<l/r;)r*=10;for(var k=0,v=f.plots_flipXAxis?e:0,l=c.round(this.minX/r)*r;l<=this.maxX;l+=r/2){var x=this.getTransformedX(l,f,e,m);if(x>m)if(a.strokeStyle="black",a.lineWidth=1,0===k%2){a.beginPath();a.moveTo(x,g-j);a.lineTo(x,g-j+2);a.stroke();for(n=l.toFixed(5);"0"===n.charAt(n.length-1);)n=n.substring(0,n.length-1);"."===n.charAt(n.length-1)&&(n=n.substring(0,n.length-1));var t=a.measureText(n).width;f.plots_flipXAxis&&(t*=-1);var y=x-t/2;if(f.plots_flipXAxis? -y<v:y>v)a.fillText(n,x,g-j+2),v=x+t/2;f.plots_showGrid&&(a.strokeStyle=f.plots_gridColor,a.lineWidth=f.plots_gridLineWidth,a.beginPath(),a.moveTo(x,g-j),a.lineTo(x,o),a.stroke())}else a.beginPath(),a.moveTo(x,g-j),a.lineTo(x,g-j+2),a.stroke();k++}if(f.plots_showYAxis||f.plots_showGrid){r=1/f.scale;a.textAlign="right";a.textBaseline="middle";for(l=0;10>=l;l++)if(n=r/10*l,k=o+(g-j-o)*(1-n*f.scale),f.plots_showGrid&&(a.strokeStyle=f.plots_gridColor,a.lineWidth=f.plots_gridLineWidth,a.beginPath(),a.moveTo(m, -k),a.lineTo(e,k),a.stroke()),f.plots_showYAxis){a.strokeStyle="black";a.lineWidth=1;a.beginPath();a.moveTo(m,k);a.lineTo(m-3,k);a.stroke();n*=100;v=c.max(0,3-c.floor(n).toString().length);n=n.toFixed(v);if(0<v)for(;"0"===n.charAt(n.length-1);)n=n.substring(0,n.length-1);"."===n.charAt(n.length-1)&&(n=n.substring(0,n.length-1));a.fillText(n,m-3,k)}}a.strokeStyle="black";a.lineWidth=1;a.beginPath();a.moveTo(e,g-j);a.lineTo(m,g-j);f.plots_showYAxis&&a.lineTo(m,o);a.stroke();if(0<this.dataDisplay.length){a.textAlign= -"left";a.textBaseline="top";l=n=0;for(r=this.dataDisplay.length;l<r;l++)if(this.dataDisplay[l].value)a.fillText([this.dataDisplay[l].display,": ",this.dataDisplay[l].value].join(""),m+10,o+10+n*(f.text_font_size+5)),n++;else if(this.dataDisplay[l].tag){k=0;for(v=this.metadata.length;k<v;k++)if(b.stringStartsWith(this.metadata[k],this.dataDisplay[l].tag)){v=this.metadata[k];this.dataDisplay[l].display&&(v=h.inArray("=",this.metadata[k]),v=[this.dataDisplay[l].display,": ",-1<v?this.metadata[k].substring(v+ -2):this.metadata[k]].join(""));a.fillText(v,m+10,o+10+n*(f.text_font_size+5));n++;break}}}this.drawPlot(a,f,e,g,o,m,j);this.memory.offsetTop=o;this.memory.offsetLeft=m;this.memory.offsetBottom=j;this.memory.flipXAxis=f.plots_flipXAxis;this.memory.scale=f.scale;this.memory.width=e;this.memory.height=g};this.drawPlot=function(a,f,b,g,h,m,j){this.specs&&(f=this.specs);a.strokeStyle=f.plots_color;a.lineWidth=f.plots_width;var l=[];a.beginPath();if(this.continuous)for(var n=!1,r=0,k=0,v=this.data.length;k< -v;k++){var x=this.getTransformedX(this.data[k].x,f,b,m);if(x>=m&&x<b){var t=this.getTransformedY(this.data[k].y,f,g,j,h);f.plots_showIntegration&&c.abs(this.data[k].y)>this.integrationSensitivity&&l.push(new e.Point(this.data[k].x,this.data[k].y));n||(a.moveTo(x,t),n=!0);a.lineTo(x,t);r++;0===r%1E3&&(a.stroke(),a.beginPath(),a.moveTo(x,t))}else if(n)break}else{k=0;for(v=this.data.length;k<v;k++)x=this.getTransformedX(this.data[k].x,f,b,m),x>=m&&x<b&&(a.moveTo(x,g-j),a.lineTo(x,this.getTransformedY(this.data[k].y, -f,g,j,h)))}a.stroke();if(f.plots_showIntegration&&1<l.length){a.strokeStyle=f.plots_integrationColor;a.lineWidth=f.plots_integrationLineWidth;a.beginPath();k=l[1].x>l[0].x;if(this.flipXAxis&&!k||!this.flipXAxis&&k){for(k=l.length-2;0<=k;k--)l[k].y+=l[k+1].y;n=l[0].y}else{k=1;for(v=l.length;k<v;k++)l[k].y+=l[k-1].y;n=l[l.length-1].y}k=0;for(v=l.length;k<v;k++)x=this.getTransformedX(l[k].x,f,b,m),t=this.getTransformedY(l[k].y/f.scale/n,f,g,j,h),0===k?a.moveTo(x,t):a.lineTo(x,t);a.stroke()}};this.getTransformedY= -function(a,c,b,g,e){return e+(b-g-e)*(1-a*c.scale)};this.getInverseTransformedY=function(a){return 100*((1-(a-this.memory.offsetTop)/(this.memory.height-this.memory.offsetBottom-this.memory.offsetTop))/this.memory.scale)};this.getTransformedX=function(a,c,b,g){a=g+(a-this.minX)/(this.maxX-this.minX)*(b-g);c.plots_flipXAxis&&(a=b+g-a);return a};this.getInverseTransformedX=function(a){this.memory.flipXAxis&&(a=this.memory.width+this.memory.offsetLeft-a);return(a-this.memory.offsetLeft)*(this.maxX-this.minX)/ -(this.memory.width-this.memory.offsetLeft)+this.minX};this.setup=function(){for(var a=Number.MAX_VALUE,f=Number.MIN_VALUE,b=Number.MIN_VALUE,g=0,e=this.data.length;g<e;g++)a=c.min(a,this.data[g].x),f=c.max(f,this.data[g].x),b=c.max(b,this.data[g].y);this.continuous?(this.minX=a,this.maxX=f):(this.minX=a-1,this.maxX=f+1);g=0;for(e=this.data.length;g<e;g++)this.data[g].y/=b};this.zoom=function(d,f,b,g){d=this.getInverseTransformedX(d);f=this.getInverseTransformedX(f);this.minX=c.min(d,f);this.maxX= -c.max(d,f);if(g){g=Number.MIN_VALUE;f=0;for(d=this.data.length;f<d;f++)a.isBetween(this.data[f].x,this.minX,this.maxX)&&(g=c.max(g,this.data[f].y));return 1/g}};this.translate=function(a,c){var b=a/(c-this.memory.offsetLeft)*(this.maxX-this.minX)*(this.memory.flipXAxis?1:-1);this.minX+=b;this.maxX+=b};this.alertMetadata=function(){alert(this.metadata.join("\n"))};this.getInternalCoordinates=function(a,c){return new ChemDoodle.structures.Point(this.getInverseTransformedX(a),this.getInverseTransformedY(c))}; -this.getClosestPlotInternalCoordinates=function(c){var f=this.getInverseTransformedX(c-1),c=this.getInverseTransformedX(c+1);if(f>c)var b=f,f=c,c=b;for(var b=-1,g=-Infinity,e=!1,h=0,j=this.data.length;h<j;h++){var l=this.data[h];if(a.isBetween(l.x,f,c))l.y>g&&(e=!0,g=l.y,b=h);else if(e)break}if(-1!==b)return l=this.data[b],new ChemDoodle.structures.Point(l.x,100*l.y)};this.getClosestPeakInternalCoordinates=function(a){for(var f=this.getInverseTransformedX(a),a=0,b=Infinity,g=0,e=this.data.length;g< -e;g++){var h=c.abs(this.data[g].x-f);if(h<=b)b=h,a=g;else break}f=highestRight=a;b=maxRight=this.data[a].y;g=a+1;for(e=this.data.length;g<e;g++)if(this.data[g].y+0.05>maxRight)maxRight=this.data[g].y,highestRight=g;else break;for(g=a-1;0<=g;g--)if(this.data[g].y+0.05>b)b=this.data[g].y,f=g;else break;a=this.data[f-a>highestRight-a?highestRight:f];return new ChemDoodle.structures.Point(a.x,100*a.y)};return!0}})(ChemDoodle.extensions,ChemDoodle.structures,ChemDoodle.math,jQuery,Math); -(function(b,e,a){e._Shape=function(){return!0};e._Shape.prototype.drawDecorations=function(a,c){if(this.isHover)for(var b=this.getPoints(),f=0,e=b.length;f<e;f++){var g=b[f];this.drawAnchor(a,c,g,g===this.hoverPoint)}};e._Shape.prototype.getBounds=function(){for(var a=new b.Bounds,c=this.getPoints(),d=0,f=c.length;d<f;d++){var e=c[d];a.expand(e.x,e.y)}return a};e._Shape.prototype.drawAnchor=function(b,c,d,f){b.save();b.translate(d.x,d.y);b.rotate(a.PI/4);b.scale(1/c.scale,1/c.scale);b.beginPath(); -b.moveTo(-4,-4);b.lineTo(4,-4);b.lineTo(4,4);b.lineTo(-4,4);b.closePath();b.fillStyle=f?"#885110":"white";b.fill();b.beginPath();b.moveTo(-4,-2);b.lineTo(-4,-4);b.lineTo(-2,-4);b.moveTo(2,-4);b.lineTo(4,-4);b.lineTo(4,-2);b.moveTo(4,2);b.lineTo(4,4);b.lineTo(2,4);b.moveTo(-2,4);b.lineTo(-4,4);b.lineTo(-4,2);b.moveTo(-4,-2);b.strokeStyle="rgba(0,0,0,.2)";b.lineWidth=5;b.stroke();b.strokeStyle="blue";b.lineWidth=1;b.stroke();b.restore()}})(ChemDoodle.math,ChemDoodle.structures.d2,Math); -(function(b,e,a,h){a.Line=function(c,d){this.p1=c?c:new e.Point;this.p2=d?d:new e.Point;this.arrowType=void 0;this.draw=function(c,b){if(this.isLassoed){var g=c.createLinearGradient(this.p1.x,this.p1.y,this.p2.x,this.p2.y);g.addColorStop(0,"rgba(212, 99, 0, 0)");g.addColorStop(0.5,"rgba(212, 99, 0, 0.8)");g.addColorStop(1,"rgba(212, 99, 0, 0)");var d=2.5,e=this.p1.angle(this.p2)+h.PI/2,j=h.cos(e),e=h.sin(e),l=this.p1.x-j*d,n=this.p1.y+e*d,r=this.p1.x+j*d,k=this.p1.y-e*d,v=this.p2.x+j*d,x=this.p2.y- -e*d,t=this.p2.x-j*d,y=this.p2.y+e*d;c.fillStyle=g;c.beginPath();c.moveTo(l,n);c.lineTo(r,k);c.lineTo(v,x);c.lineTo(t,y);c.closePath();c.fill()}c.strokeStyle=b.shapes_color;c.fillStyle=b.shapes_color;c.lineWidth=b.shapes_lineWidth_2D;c.lineJoin="miter";if(this.arrowType===a.Line.ARROW_RETROSYNTHETIC){var g=2*h.sqrt(2),d=b.shapes_arrowLength_2D/g,j=this.p1.angle(this.p2),e=j+h.PI/2,g=b.shapes_arrowLength_2D/g,w=h.cos(j),u=h.sin(j),j=h.cos(e),e=h.sin(e),l=this.p1.x-j*d,n=this.p1.y+e*d,r=this.p1.x+j* -d,k=this.p1.y-e*d,v=this.p2.x+j*d-w*g,x=this.p2.y-e*d+u*g,t=this.p2.x-j*d-w*g,y=this.p2.y+e*d+u*g,p=this.p2.x+2*j*d-2*w*g,A=this.p2.y-2*e*d+2*u*g,j=this.p2.x-2*j*d-2*w*g,d=this.p2.y+2*e*d+2*u*g;c.beginPath();c.moveTo(r,k);c.lineTo(v,x);c.moveTo(p,A);c.lineTo(this.p2.x,this.p2.y);c.lineTo(j,d);c.moveTo(t,y);c.lineTo(l,n);c.stroke()}else if(this.p1.x!==this.p2.x||this.p1.y!==this.p2.y)this.arrowType===a.Line.ARROW_SYNTHETIC?(j=this.p1.angle(this.p2),e=j+h.PI/2,g=2*b.shapes_arrowLength_2D/h.sqrt(3), -w=h.cos(j),u=h.sin(j),j=h.cos(e),e=h.sin(e),c.beginPath(),c.moveTo(this.p1.x,this.p1.y),c.lineTo(this.p2.x-w*g/2,this.p2.y+u*g/2),c.stroke(),l=this.p2.x-0.8*w*g,n=this.p2.y+0.8*u*g,p=this.p2.x+j*b.shapes_arrowLength_2D/3-w*g,A=this.p2.y-e*b.shapes_arrowLength_2D/3+u*g,j=this.p2.x-j*b.shapes_arrowLength_2D/3-w*g,d=this.p2.y+e*b.shapes_arrowLength_2D/3+u*g,c.beginPath(),c.moveTo(this.p2.x,this.p2.y),c.lineTo(j,d),c.lineTo(l,n),c.lineTo(p,A),c.closePath(),c.fill()):(c.beginPath(),c.moveTo(this.p1.x, -this.p1.y),c.lineTo(this.p2.x,this.p2.y)),c.stroke()};this.getPoints=function(){return[this.p1,this.p2]};this.isOver=function(a,c){var g=b.distanceFromPointToLineInclusive(a,this.p1,this.p2);return-1!==g&&g<c};return!0};a.Line.prototype=new a._Shape;a.Line.ARROW_SYNTHETIC="synthetic";a.Line.ARROW_RETROSYNTHETIC="retrosynthetic"})(ChemDoodle.math,ChemDoodle.structures,ChemDoodle.structures.d2,Math); -(function(b,e,a,h){a.Pusher=function(a,b,f){this.o1=a;this.o2=b;this.numElectron=f?f:1;this.draw=function(a,c){if(this.o1&&this.o2){a.strokeStyle=c.shapes_color;a.fillStyle=c.shapes_color;a.lineWidth=c.shapes_lineWidth_2D;a.lineJoin="miter";var b=this.o1 instanceof e.Atom?new e.Point(this.o1.x,this.o1.y):this.o1.getCenter(),d=this.o2 instanceof e.Atom?new e.Point(this.o2.x,this.o2.y):this.o2.getCenter(),f=h.max(50,b.distance(d)),l;if(this.o1.molCenter)if(this.o1 instanceof e.Atom){var n=this.o1.molCenter.angle(b); -l=new e.Point(b.x+f*h.cos(n),b.y-f*h.sin(n))}else{var n=this.o1.a1.angle(this.o1.a2),r=n+h.PI/2,n=r+h.PI,r=new e.Point(b.x+f*h.cos(r),b.y-f*h.sin(r)),n=new e.Point(b.x+f*h.cos(n),b.y-f*h.sin(n));l=r.distance(this.o1.molCenter)>n.distance(this.o1.molCenter)?r:n}else l=b;this.o2.molCenter?this.o2 instanceof e.Atom?(n=this.o2.molCenter.angle(d),n=new e.Point(d.x+f*h.cos(n),d.y-f*h.sin(n))):(n=this.o2.a1.angle(this.o2.a2),r=n+h.PI/2,n=r+h.PI,r=new e.Point(d.x+f*h.cos(r),d.y-f*h.sin(r)),n=new e.Point(d.x+ -f*h.cos(n),d.y-f*h.sin(n)),n=r.distance(this.o2.molCenter)>n.distance(this.o2.molCenter)?r:n):n=d;for(var r=l.angle(b),k=n.angle(d),v=h.max(r,k)-h.min(r,k);v+0.001>=h.PI;)v-=h.PI;0.001>v&&(r+=h.PI/6,k+=h.PI/6,l.x=b.x+f*h.cos(r+h.PI),l.y=b.y-f*h.sin(r+h.PI),n.x=d.x+f*h.cos(k+h.PI),n.y=d.y-f*h.sin(k+h.PI));v=r+h.PI/2;f=h.cos(r);r=h.sin(r);if(c.pusher_showElectron_2D){var x=5;if(this.o1 instanceof e.Atom&&this.o1.isLabelVisible(c)||1<this.o1.bondOrder)x=8;b.x-=f*x;b.y+=r*x;2===this.numElectron?(x=Math.cos(v)* -c.atoms_lonePairSpread_2D/2,v=-Math.sin(v)*c.atoms_lonePairSpread_2D/2,a.beginPath(),a.arc(b.x+x,b.y+v,c.atoms_lonePairDiameter_2D,0,2*h.PI,!1),a.fill(),a.beginPath(),a.arc(b.x-x,b.y-v,c.atoms_lonePairDiameter_2D,0,2*h.PI,!1)):(a.beginPath(),a.arc(b.x,b.y,c.atoms_lonePairDiameter_2D,0,2*h.PI,!1));a.fill()}b.x-=5*f;b.y+=5*r;var v=k+h.PI/2,t=2*c.shapes_arrowLength_2D/h.sqrt(3),f=h.cos(k),r=h.sin(k),y=h.cos(v),w=h.sin(v);d.x-=5*f;d.y+=5*r;k=new e.Point(d.x,d.y);d.x-=0.8*f*t;d.y+=0.8*r*t;var v=k.x-0.8* -f*t,x=k.y+0.8*r*t,u=new e.Point(k.x+y*c.shapes_arrowLength_2D/3-f*t,k.y-w*c.shapes_arrowLength_2D/3+r*t),f=new e.Point(k.x-y*c.shapes_arrowLength_2D/3-f*t,k.y+w*c.shapes_arrowLength_2D/3+r*t),t=r=!0;1===this.numElectron&&(u.distance(l)>f.distance(l)?t=!1:r=!1);a.beginPath();a.moveTo(k.x,k.y);t&&a.lineTo(f.x,f.y);a.lineTo(v,x);r&&a.lineTo(u.x,u.y);a.closePath();a.fill();a.stroke();a.beginPath();a.moveTo(b.x,b.y);a.bezierCurveTo(l.x,l.y,n.x,n.y,d.x,d.y);a.stroke()}};this.getPoints=function(){return[]}; -this.isOver=function(){return!1};return!0};a.Pusher.prototype=new a._Shape})(ChemDoodle.math,ChemDoodle.structures,ChemDoodle.structures.d2,Math); -(function(b){b._Mesh=function(){return!0};b._Mesh.prototype.storeData=function(b,a,h){this.positionData=b;this.normalData=a;this.indexData=h};b._Mesh.prototype.setupBuffers=function(b){this.vertexPositionBuffer=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,this.vertexPositionBuffer);b.bufferData(b.ARRAY_BUFFER,new Float32Array(this.positionData),b.STATIC_DRAW);this.vertexPositionBuffer.itemSize=3;this.vertexPositionBuffer.numItems=this.positionData.length/3;this.vertexNormalBuffer=b.createBuffer(); -b.bindBuffer(b.ARRAY_BUFFER,this.vertexNormalBuffer);b.bufferData(b.ARRAY_BUFFER,new Float32Array(this.normalData),b.STATIC_DRAW);this.vertexNormalBuffer.itemSize=3;this.vertexNormalBuffer.numItems=this.normalData.length/3;this.indexData&&(this.vertexIndexBuffer=b.createBuffer(),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.vertexIndexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,new Uint16Array(this.indexData),b.STATIC_DRAW),this.vertexIndexBuffer.itemSize=1,this.vertexIndexBuffer.numItems=this.indexData.length); -if(this.partitions)for(var a=0,h=this.partitions.length;a<h;a++){var c=this.partitions[a],d=this.generateBuffers(b,c.positionData,c.normalData,c.indexData);c.vertexPositionBuffer=d[0];c.vertexNormalBuffer=d[1];c.vertexIndexBuffer=d[2]}};b._Mesh.prototype.generateBuffers=function(b,a,h,c){var d=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,d);b.bufferData(b.ARRAY_BUFFER,new Float32Array(a),b.STATIC_DRAW);d.itemSize=3;d.numItems=a.length/3;a=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,a);b.bufferData(b.ARRAY_BUFFER, -new Float32Array(h),b.STATIC_DRAW);a.itemSize=3;a.numItems=h.length/3;var f;c&&(f=b.createBuffer(),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,f),b.bufferData(b.ELEMENT_ARRAY_BUFFER,new Uint16Array(c),b.STATIC_DRAW),f.itemSize=1,f.numItems=c.length);return[d,a,f]};b._Mesh.prototype.bindBuffers=function(b){this.vertexPositionBuffer||this.setupBuffers(b);b.bindBuffer(b.ARRAY_BUFFER,this.vertexPositionBuffer);b.vertexAttribPointer(b.shader.vertexPositionAttribute,this.vertexPositionBuffer.itemSize,b.FLOAT,!1, -0,0);b.bindBuffer(b.ARRAY_BUFFER,this.vertexNormalBuffer);b.vertexAttribPointer(b.shader.vertexNormalAttribute,this.vertexNormalBuffer.itemSize,b.FLOAT,!1,0,0);this.vertexIndexBuffer&&b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.vertexIndexBuffer)}})(ChemDoodle.structures.d3,Math); -(function(b,e){b.Cylinder=function(a,b,c){for(var d=[],f=[],q=0;q<c;q++){var g=2*q*e.PI/c,o=e.cos(g),g=e.sin(g);f.push(o,0,g);d.push(a*o,0,a*g);f.push(o,0,g);d.push(a*o,b,a*g)}f.push(1,0,0);d.push(a,0,0);f.push(1,0,0);d.push(a,b,0);this.storeData(d,f);return!0};b.Cylinder.prototype=new b._Mesh})(ChemDoodle.structures.d3,Math); -(function(b,e){b.Sphere=function(a,b,c){for(var d=[],f=[],q=0;q<=b;q++)for(var g=q*e.PI/b,o=e.sin(g),m=e.cos(g),g=0;g<=c;g++){var j=2*g*e.PI/c,l=e.sin(j),j=e.cos(j)*o,n=m,l=l*o;f.push(j,n,l);d.push(a*j,a*n,a*l)}a=[];c+=1;for(q=0;q<b;q++)for(g=0;g<c;g++)o=q*c+g%c,m=o+c,a.push(o),a.push(m),a.push(o+1),g<c-1&&(a.push(m),a.push(m+1),a.push(o+1));this.storeData(d,f,a);return!0};b.Sphere.prototype=new b._Mesh})(ChemDoodle.structures.d3,Math); -(function(b,e,a,h){function c(a,c,g,e){this.name=c;this.entire=a;this.pi=e;this.getColor=function(c){return c.macro_colorByChain?this.chainColor:this.name?this.getResidueColor(b[this.name]?this.name:"*",c):this.helix?a.front?c.proteins_ribbonCartoonHelixPrimaryColor:c.proteins_ribbonCartoonHelixSecondaryColor:this.sheet?c.proteins_ribbonCartoonSheetColor:a.front?c.proteins_primaryColor:c.proteins_secondaryColor};this.getResidueColor=function(a,c){var d=b[a];return c.proteins_useShapelyColors?d.shapelyColor: -c.proteins_useAminoColors?d.aminoColor:c.proteins_usePolarityColors&&d.polar?"#C10000":"#FFFFFF"};this.render=function(a,c){this.entire.partitions&&this.pi!==this.entire.partitions.lastRender&&(d(a,this.entire.partitions[this.pi]),this.entire.partitions.lastRender=this.pi);this.vertexIndexBuffer||(this.vertexIndexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.vertexIndexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array(g),a.STATIC_DRAW),this.vertexIndexBuffer.itemSize= -1,this.vertexIndexBuffer.numItems=g.length);a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.vertexIndexBuffer);a.material.setDiffuseColor(this.getColor(c));a.drawElements(a.TRIANGLES,this.vertexIndexBuffer.numItems,a.UNSIGNED_SHORT,0)}}var d=function(a,c){a.bindBuffer(a.ARRAY_BUFFER,c.vertexPositionBuffer);a.vertexAttribPointer(a.shader.vertexPositionAttribute,c.vertexPositionBuffer.itemSize,a.FLOAT,!1,0,0);a.bindBuffer(a.ARRAY_BUFFER,c.vertexNormalBuffer);a.vertexAttribPointer(a.shader.vertexNormalAttribute, -c.vertexNormalBuffer.itemSize,a.FLOAT,!1,0,0);a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,c.vertexIndexBuffer)};e.Ribbon=function(b,e,g){var o=b[0].lineSegments.length,m=b[0].lineSegments[0].length;this.partitions=[];this.partitions.lastRender=0;var j;this.front=0<e;for(var l=0,n=b.length-1;l<n;l++){if(!j||65E3<j.positionData.length)0<this.partitions.length&&l--,j={count:0,positionData:[],normalData:[],indexData:[]},this.partitions.push(j);var r=b[l];j.count++;for(var k=0;k<o;k++)for(var v=g?r.lineSegmentsCartoon[k]: -r.lineSegments[k],x=0===k,t=!1,y=0;y<m;y++){var w=v[y],u=l,p=y+1;l===b.length-2&&y===m-1?p--:y===m-1&&(u++,p=0);var p=g?b[u].lineSegmentsCartoon[k][p]:b[u].lineSegments[k][p],u=!1,A=k+1;k===o-1&&(A-=2,u=!0);var A=g?r.lineSegmentsCartoon[A][y]:r.lineSegments[A][y],p=[p.x-w.x,p.y-w.y,p.z-w.z],A=[A.x-w.x,A.y-w.y,A.z-w.z],B=h.cross(p,A,[]);0===y&&(h.normalize(p),h.scale(p,-1),j.normalData.push(p[0],p[1],p[2]),j.positionData.push(w.x,w.y,w.z));x||t?(h.normalize(A),h.scale(A,-1),j.normalData.push(A[0], -A[1],A[2]),j.positionData.push(w.x,w.y,w.z),x&&y===m-1&&(x=!1,y=-1)):(h.normalize(B),(u&&!this.front||!u&&this.front)&&h.scale(B,-1),j.normalData.push(B[0],B[1],B[2]),h.scale(B,a.abs(e)),j.positionData.push(w.x+B[0],w.y+B[1],w.z+B[2]),k===o-1&&y===m-1&&(t=!0,y=-1));if(-1===y||y===m-1)h.normalize(p),j.normalData.push(p[0],p[1],p[2]),j.positionData.push(w.x,w.y,w.z)}}o+=2;m+=2;g&&(this.cartoonSegments=[]);this.segments=[];e=0;for(r=this.partitions.length;e<r;e++){j=this.partitions[e];var D;g&&(D=[]); -l=0;for(n=j.count-1;l<n;l++){v=l;for(k=0;k<e;k++)v+=this.partitions[k].count-1;k=b[v];0<l&&g&&k.split&&(y=new c(this,void 0,D,e),k.helix&&(y.helix=!0),k.sheet&&(y.sheet=!0),this.cartoonSegments.push(y),D=[]);x=l*o*m;t=[];k=0;for(w=o-1;k<w;k++){u=x+k*m;for(y=0;y<m;y++){p=1;l===j.count-1?p=0:y===m-1&&(p=o*m-y);p=[u+y,u+m+y,u+m+y+p,u+y,u+y+p,u+m+y+p];if(y!==m-1)for(A=0;6>A;A++)t.push(p[A]);y===m-2&&l<j.count-1&&(A=o*m-y,p[2]+=A,p[4]+=A,p[5]+=A);for(A=0;6>A;A++)j.indexData.push(p[A]);if(g)for(A=0;6>A;A++)D.push(p[A])}}this.segments.push(new c(this, -b[v+1].name,t,e))}if(g){y=new c(this,void 0,D,e);v=j.count-1;for(k=0;k<e;k++)v+=this.partitions[k].count-1;k=b[v];k.helix&&(y.helix=!0);k.sheet&&(y.sheet=!0);this.cartoonSegments.push(y)}}this.storeData(this.partitions[0].positionData,this.partitions[0].normalData,this.partitions[0].indexData);1===this.partitions.length&&(this.partitions=void 0);this.render=function(a,c){this.bindBuffers(a);var b=c.macro_colorByChain?this.chainColor:void 0;b||(b=this.front?c.proteins_primaryColor:c.proteins_secondaryColor); -a.material.setDiffuseColor(b);a.drawElements(a.TRIANGLES,this.vertexIndexBuffer.numItems,a.UNSIGNED_SHORT,0);if(this.partitions)for(var b=1,f=this.partitions.length;b<f;b++){var g=this.partitions[b];d(a,g);a.drawElements(a.TRIANGLES,g.vertexIndexBuffer.numItems,a.UNSIGNED_SHORT,0)}};return!0};e.Ribbon.prototype=new e._Mesh})(ChemDoodle.RESIDUE,ChemDoodle.structures.d3,Math,vec3); -(function(b,e,a){e.Light=function(e,c,d){this.diffuseRGB=b.getRGB(e,1);this.specularRGB=b.getRGB(c,1);this.direction=d;this.lightScene=function(c){c.uniform3f(c.getUniformLocation(c.program,"u_light.diffuse_color"),this.diffuseRGB[0],this.diffuseRGB[1],this.diffuseRGB[2]);c.uniform3f(c.getUniformLocation(c.program,"u_light.specular_color"),this.specularRGB[0],this.specularRGB[1],this.specularRGB[2]);var b=a.create(this.direction);a.normalize(b);a.negate(b);c.uniform3f(c.getUniformLocation(c.program, -"u_light.direction"),b[0],b[1],b[2]);var d=[0,0,0],b=[d[0]+b[0],d[1]+b[1],d[2]+b[2]],d=a.length(b);0===d?b=[0,0,1]:a.scale(1/d);c.uniform3f(c.getUniformLocation(c.program,"u_light.half_vector"),b[0],b[1],b[2])};return!0}})(ChemDoodle.math,ChemDoodle.structures.d3,vec3);(function(b){b.Line=function(){this.storeData([0,0,0,0,1,0],[0,0,0,0,0,0]);return!0};b.Line.prototype=new b._Mesh})(ChemDoodle.structures.d3); -(function(b,e){e.Material=function(a){var e=a.getUniformLocation(a.program,"u_material.ambient_color"),c=a.getUniformLocation(a.program,"u_material.diffuse_color"),d=a.getUniformLocation(a.program,"u_material.specular_color"),f=a.getUniformLocation(a.program,"u_material.shininess"),q=a.getUniformLocation(a.program,"u_material.alpha");this.setTempColors=function(g,o,m,j){if(!this.aCache||this.aCache!==g)this.aCache=g,g=b.getRGB(g,1),a.uniform3f(e,g[0],g[1],g[2]);if(o&&(!this.dCache||this.dCache!== -o))this.dCache=o,g=b.getRGB(o,1),a.uniform3f(c,g[0],g[1],g[2]);if(!this.sCache||this.sCache!==m)this.sCache=m,g=b.getRGB(m,1),a.uniform3f(d,g[0],g[1],g[2]);if(!this.snCache||this.snCache!==j)this.snCache=j,a.uniform1f(f,j);this.alCache=1;a.uniform1f(q,1)};this.setDiffuseColor=function(d){if(!this.dCache||this.dCache!==d)this.dCache=d,d=b.getRGB(d,1),a.uniform3f(c,d[0],d[1],d[2])};this.setAlpha=function(c){if(!this.alCache||this.alCache!==c)this.alCache=c,a.uniform1f(q,c)};return!0}})(ChemDoodle.math, -ChemDoodle.structures.d3); -(function(b,e,a,h){e.MolecularSurface=function(c,d,f,e,g){function o(a,c,b,d){var f=a.index;if(a.contained)for(var f=-1,g=Infinity,e=0,h=c.length;e<h;e++)for(var j=c[e],l=0,q=j.length;l<q;l++){var o=j[l];if(!o.contained&&o.index!==b&&o.index!==d){var m=o.distance3D(a);m<g&&(f=o.index,g=m)}}return f}for(var m=[],j=[],l=[],n=[],r=0;r<=d;r++)for(var k=r*h.PI/d,v=h.sin(k),x=h.cos(k),k=0;k<=f;k++){var t=2*k*h.PI/f;n.push(h.cos(t)*v,x,h.sin(t)*v)}v=[];r=0;for(k=c.atoms.length;r<k;r++){for(var x=[],y=c.atoms[r], -w=a[y.label][g]+e,u=[],t=0,p=c.atoms.length;t<p;t++)if(t!==r){var A=c.atoms[t];A.index=t;y.distance3D(A)<w+a[A.label][g]+e&&u.push(A)}t=0;for(p=n.length;t<p;t+=3){for(var B=new b.Atom("C",y.x+w*n[t],y.y+w*n[t+1],y.z+w*n[t+2]),D=0,G=u.length;D<G;D++)if(A=u[D],B.distance3D(A)<a[A.label][g]+e){B.contained=!0;break}x.push(B)}v.push(x)}c=[];f++;for(r=0;r<d;r++)for(k=0;k<f;k++)g=r*f+k%f,e=g+f,c.push(g),c.push(e),c.push(g+1),k<f-1&&(c.push(e),c.push(e+1),c.push(g+1));r=D=0;for(k=v.length;r<k;r++){x=v[r]; -t=0;for(p=x.length;t<p;t++)B=x[t],B.contained||(B.index=D,D++,m.push(B.x,B.y,B.z),j.push(n[3*t],n[3*t+1],n[3*t+2]));t=0;for(p=c.length;t<p;t+=3)g=x[c[t]],e=x[c[t+1]],B=x[c[t+2]],!g.contained&&!e.contained&&!B.contained&&l.push(g.index,e.index,B.index)}n=[];r=0;for(k=v.length;r<k;r++){x=v[r];t=0;for(p=c.length;t<p;t+=3){g=x[c[t]];e=x[c[t+1]];B=x[c[t+2]];u=[];D=0;for(G=v.length;D<G;D++)D!==r&&u.push(v[D]);if((!g.contained||!e.contained||!B.contained)&&(g.contained||e.contained||B.contained))if(d=o(g, -u,-1,-1),f=o(e,u,d,-1),u=o(B,u,d,f),-1!==d&&-1!==f&&-1!==u){e=!1;D=0;for(G=n.length;D<G;D+=3)if(g=n[D],B=n[D+1],y=n[D+2],w=f===g||f===B||f===y,A=u===g||u===B||u===y,(d===g||d===B||d===y)&&w&&A){e=!0;break}e||n.push(d,f,u)}}}l=l.concat(n);this.storeData(m,j,l);return!0};e.MolecularSurface.prototype=new e._Mesh})(ChemDoodle.structures,ChemDoodle.structures.d3,ChemDoodle.ELEMENT,Math); -(function(b,e){b.Shader=function(){this.init=function(a){var b=this.getShader(a,"vertex-shader");b||(b=this.loadDefaultVertexShader(a));var c=this.getShader(a,"fragment-shader");c||(c=this.loadDefaultFragmentShader(a));a.attachShader(a.program,b);a.attachShader(a.program,c);a.linkProgram(a.program);a.getProgramParameter(a.program,a.LINK_STATUS)||alert("Could not initialize shaders: "+a.getProgramInfoLog(program));a.useProgram(a.program);this.vertexPositionAttribute=a.getAttribLocation(a.program,"a_vertex_position"); -a.enableVertexAttribArray(this.vertexPositionAttribute);this.vertexNormalAttribute=a.getAttribLocation(a.program,"a_vertex_normal");a.enableVertexAttribArray(this.vertexNormalAttribute)};this.getShader=function(a,b){var c=e.getElementById(b);if(c){for(var d=[],f=c.firstChild;f;)3===f.nodeType&&d.push(f.textContent),f=f.nextSibling;if("x-shader/x-fragment"===c.type)f=a.createShader(a.FRAGMENT_SHADER);else if("x-shader/x-vertex"===c.type)f=a.createShader(a.VERTEX_SHADER);else return;a.shaderSource(f, -d.join(""));a.compileShader(f);if(a.getShaderParameter(f,a.COMPILE_STATUS))return f;alert(c.type+" "+a.getShaderInfoLog(f))}};this.loadDefaultVertexShader=function(a){var b=[];b.push("struct Light");b.push("{");b.push("vec3 diffuse_color;");b.push("vec3 specular_color;");b.push("vec3 direction;");b.push("vec3 half_vector;");b.push("};");b.push("struct Material");b.push("{");b.push("vec3 ambient_color;");b.push("vec3 diffuse_color;");b.push("vec3 specular_color;");b.push("float shininess;");b.push("float alpha;"); -b.push("};");b.push("attribute vec3 a_vertex_position;");b.push("attribute vec3 a_vertex_normal;");b.push("uniform Light u_light;");b.push("uniform Material u_material;");b.push("uniform mat4 u_model_view_matrix;");b.push("uniform mat4 u_projection_matrix;");b.push("uniform mat3 u_normal_matrix;");b.push("varying vec4 v_diffuse;");b.push("varying vec4 v_ambient;");b.push("varying vec3 v_normal;");b.push("varying vec3 v_light_direction;");b.push("void main(void)");b.push("{");b.push("if(length(a_vertex_normal)==0.0){"); -b.push("v_normal = a_vertex_normal;");b.push("}else{");b.push("v_normal = normalize(u_normal_matrix * a_vertex_normal);");b.push("}");b.push("vec4 diffuse = vec4(u_light.diffuse_color, 1.0);");b.push("v_light_direction = u_light.direction;");b.push("v_ambient = vec4(u_material.ambient_color, 1.0);");b.push("v_diffuse = vec4(u_material.diffuse_color, 1.0) * diffuse;");b.push("gl_Position = u_projection_matrix * u_model_view_matrix * vec4(a_vertex_position, 1.0);");b.push("}");var c=a.createShader(a.VERTEX_SHADER); -a.shaderSource(c,b.join(""));a.compileShader(c);if(a.getShaderParameter(c,a.COMPILE_STATUS))return c;alert("Vertex shader failed to compile: "+a.getShaderInfoLog(c))};this.loadDefaultFragmentShader=function(a){var b=[];b.push("precision mediump float;\n");b.push("struct Light");b.push("{");b.push("vec3 diffuse_color;");b.push("vec3 specular_color;");b.push("vec3 direction;");b.push("vec3 half_vector;");b.push("};");b.push("struct Material");b.push("{");b.push("vec3 ambient_color;");b.push("vec3 diffuse_color;"); -b.push("vec3 specular_color;");b.push("float shininess;");b.push("float alpha;");b.push("};");b.push("uniform Light u_light;");b.push("uniform Material u_material;");b.push("varying vec4 v_diffuse;");b.push("varying vec4 v_ambient;");b.push("varying vec3 v_normal;");b.push("varying vec3 v_light_direction;");b.push("void main(void)");b.push("{");b.push("if(length(v_normal)==0.0){");b.push("gl_FragColor = vec4(v_diffuse.rgba);");b.push("}else{");b.push("float nDotL = max(dot(v_normal, v_light_direction), 0.0);"); -b.push("vec4 color = vec4(v_diffuse.rgb*nDotL, v_diffuse.a);");b.push("float nDotHV = max(dot(v_normal, u_light.half_vector), 0.0);");b.push("vec4 specular = vec4(u_material.specular_color * u_light.specular_color, 1.0);");b.push("color+=vec4(specular.rgb * pow(nDotHV, u_material.shininess), specular.a);");b.push("gl_FragColor = color+v_ambient;");b.push("gl_FragColor.a*=u_material.alpha;");b.push("}");b.push("}");var c=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(c,b.join(""));a.compileShader(c); -if(a.getShaderParameter(c,a.COMPILE_STATUS))return c;alert("Fragment shader failed to compile: "+a.getShaderInfoLog(c))};return!0}})(ChemDoodle.structures.d3,document); -(function(b,e,a){e.Shape=function(e,c){for(var d=e.length,f=[],q=[],g=new b.Point,o=0,m=d;o<m;o++){var j=o+1;o===m-1&&(j=0);for(var l=e[o],j=e[j],n=a.cross([0,0,1],[j.x-l.x,j.y-l.y,0]),r=0;2>r;r++)f.push(l.x,l.y,c/2),f.push(l.x,l.y,-c/2),f.push(j.x,j.y,c/2),f.push(j.x,j.y,-c/2);for(r=0;4>r;r++)q.push(n[0],n[1],n[2]);q.push(0,0,1);q.push(0,0,-1);q.push(0,0,1);q.push(0,0,-1);g.add(l)}g.x/=d;g.y/=d;q.push(0,0,1);f.push(g.x,g.y,c/2);q.push(0,0,-1);f.push(g.x,g.y,-c/2);g=[];l=8*d;o=0;for(m=d;o<m;o++)d= -8*o,g.push(d),g.push(d+1),g.push(d+3),g.push(d),g.push(d+2),g.push(d+3),g.push(d+4),g.push(d+6),g.push(l),g.push(d+5),g.push(d+7),g.push(l+1);this.storeData(f,q,g);return!0};e.Shape.prototype=new e._Mesh})(ChemDoodle.structures,ChemDoodle.structures.d3,vec3); -(function(b,e,a){b.Star=function(){for(var b=[0.8944,0.4472,0,0.2764,0.4472,0.8506,0.2764,0.4472,-0.8506,-0.7236,0.4472,0.5257,-0.7236,0.4472,-0.5257,-0.3416,0.4472,0,-0.1056,0.4472,0.3249,-0.1056,0.4472,-0.3249,0.2764,0.4472,0.2008,0.2764,0.4472,-0.2008,-0.8944,-0.4472,0,-0.2764,-0.4472,0.8506,-0.2764,-0.4472,-0.8506,0.7236,-0.4472,0.5257,0.7236,-0.4472,-0.5257,0.3416,-0.4472,0,0.1056,-0.4472,0.3249,0.1056,-0.4472,-0.3249,-0.2764,-0.4472,0.2008,-0.2764,-0.4472,-0.2008,-0.5527,0.1058,0,-0.1708,0.1058, -0.5527,-0.1708,0.1058,-0.5527,0.4471,0.1058,0.3249,0.4471,0.1058,-0.3249,0.5527,-0.1058,0,0.1708,-0.1058,0.5527,0.1708,-0.1058,-0.5527,-0.4471,-0.1058,0.3249,-0.4471,-0.1058,-0.3249,0,1,0,0,-1,0],c=[0,9,8,2,7,9,4,5,7,3,6,5,1,8,6,0,8,23,30,6,8,3,21,6,11,26,21,13,23,26,2,9,24,30,8,9,1,23,8,13,25,23,14,24,25,4,7,22,30,9,7,0,24,9,14,27,24,12,22,27,3,5,20,30,7,5,2,22,7,12,29,22,10,20,29,1,6,21,30,5,6,4,20,5,10,28,20,11,21,28,10,19,18,12,17,19,14,15,17,13,16,15,11,18,16,31,19,17,14,17,27,2,27,22,4,22,29, -10,29,19,31,18,19,12,19,29,4,29,20,3,20,28,11,28,18,31,16,18,10,18,28,3,28,21,1,21,26,13,26,16,31,15,16,11,16,26,1,26,23,0,23,25,14,25,15,31,17,15,13,15,25,0,25,24,2,24,27,12,27,17],d=[],f=[],e=[],g=0,o=c.length;g<o;g+=3){var m=3*c[g],j=3*c[g+1],l=3*c[g+2],m=[b[m],b[m+1],b[m+2]],j=[b[j],b[j+1],b[j+2]],l=[b[l],b[l+1],b[l+2]],n=a.cross([l[0]-j[0],l[1]-j[1],l[2]-j[2]],[m[0]-j[0],m[1]-j[1],m[2]-j[2]],[]);a.normalize(n);d.push(m[0],m[1],m[2],j[0],j[1],j[2],l[0],l[1],l[2]);f.push(n[0],n[1],n[2],n[0],n[1], -n[2],n[0],n[1],n[2]);e.push(g,g+1,g+2)}this.storeData(d,f,e);return!0};b.Star.prototype=new b._Mesh})(ChemDoodle.structures.d3,Math,vec3); -(function(b,e,a,h,c,d,f){var q=function(a,b,f){var e=c.sqrt(b[1]*b[1]+b[2]*b[2]),h=[1,0,0,0,0,b[2]/e,-b[1]/e,0,0,b[1]/e,b[2]/e,0,0,0,0,1],q=[1,0,0,0,0,b[2]/e,b[1]/e,0,0,-b[1]/e,b[2]/e,0,0,0,0,1],r=[e,0,-b[0],0,0,1,0,0,b[0],0,e,0,0,0,0,1],b=[e,0,b[0],0,0,1,0,0,-b[0],0,e,0,0,0,0,1],f=[c.cos(f),-c.sin(f),0,0,c.sin(f),c.cos(f),0,0,0,0,1,0,0,0,0,1],k=d.multiply(h,d.multiply(r,d.multiply(f,d.multiply(b,q,[]))));this.rotate=function(){return d.multiplyVec3(k,a)}};h.Tube=function(g,h,m){var j=g[0].lineSegments[0].length; -this.partitions=[];var l;this.ends=[];this.ends.push(g[0].lineSegments[0][0]);this.ends.push(g[g.length-2].lineSegments[0][0]);for(var n=[1,0,0],r=0,k=g.length-1;r<k;r++){if(!l||65E3<l.positionData.length)0<this.partitions.length&&r--,l={count:0,positionData:[],normalData:[],indexData:[]},this.partitions.push(l);var v=g[r];l.count++;for(var x=Infinity,t=new a.Atom("",g[r+1].cp1.x,g[r+1].cp1.y,g[r+1].cp1.z),y=0;y<j;y++){var w=v.lineSegments[0][y],u;u=y===j-1?r===g.length-2?v.lineSegments[0][y-1]:g[r+ -1].lineSegments[0][0]:v.lineSegments[0][y+1];u=[u.x-w.x,u.y-w.y,u.z-w.z];f.normalize(u);r===g.length-2&&y===j-1&&f.scale(u,-1);var p=vec3.cross(u,n,[]);f.normalize(p);f.scale(p,h/2);p=new q(p,u,2*Math.PI/m);u=0;for(var A=m;u<A;u++){var B=p.rotate();u===c.floor(m/4)&&(n=[B[0],B[1],B[2]]);l.normalData.push(B[0],B[1],B[2]);l.positionData.push(w.x+B[0],w.y+B[1],w.z+B[2])}t&&(u=w.distance3D(t),u<x&&(x=u,g[r+1].pPoint=w))}}n=0;for(v=this.partitions.length;n<v;n++){l=this.partitions[n];r=0;for(k=l.count- -1;r<k;r++){x=r*j*m;y=0;for(t=j;y<t;y++){w=x+y*m;for(u=0;u<m;u++)p=w+u,l.indexData.push(p),l.indexData.push(p+m),l.indexData.push(p+m+1),l.indexData.push(p),l.indexData.push(p+1),l.indexData.push(p+m+1)}}}this.storeData(this.partitions[0].positionData,this.partitions[0].normalData,this.partitions[0].indexData);m=[new a.Point(2,0)];for(r=0;60>r;r++)j=r/60*c.PI,m.push(new a.Point(2*c.cos(j),-2*c.sin(j)));m.push(new a.Point(-2,0),new a.Point(-2,4),new a.Point(2,4));var D=new a.d3.Shape(m,1);this.render= -function(j,l){this.bindBuffers(j);j.material.setDiffuseColor(l.macro_colorByChain?this.chainColor:l.nucleics_tubeColor);j.drawElements(j.TRIANGLES,this.vertexIndexBuffer.numItems,j.UNSIGNED_SHORT,0);if(this.partitions)for(var q=1,m=this.partitions.length;q<m;q++){var k=this.partitions[q],n=j,v=k;n.bindBuffer(n.ARRAY_BUFFER,v.vertexPositionBuffer);n.vertexAttribPointer(n.shader.vertexPositionAttribute,v.vertexPositionBuffer.itemSize,n.FLOAT,!1,0,0);n.bindBuffer(n.ARRAY_BUFFER,v.vertexNormalBuffer); -n.vertexAttribPointer(n.shader.vertexNormalAttribute,v.vertexNormalBuffer.itemSize,n.FLOAT,!1,0,0);n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,v.vertexIndexBuffer);j.drawElements(j.TRIANGLES,k.vertexIndexBuffer.numItems,j.UNSIGNED_SHORT,0)}j.sphereBuffer.bindBuffers(j);for(q=0;2>q;q++)k=this.ends[q],k=d.translate(j.modelViewMatrix,[k.x,k.y,k.z],[]),m=h/2,d.scale(k,[m,m,m]),j.setMatrixUniforms(k),j.drawElements(j.TRIANGLES,j.sphereBuffer.vertexIndexBuffer.numItems,j.UNSIGNED_SHORT,0);j.cylinderBuffer.bindBuffers(j); -q=1;for(m=g.length-1;q<m;q++){var v=g[q],r=v.pPoint,p=new a.Atom("",v.cp2.x,v.cp2.y,v.cp2.z),k=1.001*r.distance3D(p),v=[h/4,k,h/4],k=d.translate(j.modelViewMatrix,[r.x,r.y,r.z],[]),t=[0,1,0],u=0,n=[p.x-r.x,p.y-r.y,p.z-r.z];r.x===p.x&&r.z===p.z?(t=[0,0,1],r.y<r.y&&(u=c.PI)):(u=b.vec3AngleFrom(t,n),t=f.cross(t,n,[]));0!==u&&d.rotate(k,u,t);d.scale(k,v);j.setMatrixUniforms(k);j.drawArrays(j.TRIANGLE_STRIP,0,j.cylinderBuffer.vertexPositionBuffer.numItems)}D.bindBuffers(j);!l.nucleics_useShapelyColors&& -!l.macro_colorByChain&&j.material.setDiffuseColor(l.nucleics_baseColor);q=1;for(m=g.length-1;q<m;q++)v=g[q],p=v.cp2,k=d.translate(j.modelViewMatrix,[p.x,p.y,p.z],[]),t=[0,1,0],u=0,r=v.cp3,n=[r.x-p.x,r.y-p.y,r.z-p.z],p.x===r.x&&p.z===r.z?(t=[0,0,1],p.y<p.y&&(u=c.PI)):(u=b.vec3AngleFrom(t,n),t=f.cross(t,n,[])),0!==u&&d.rotate(k,u,t),p=[1,0,0],u=d.rotate(d.identity([]),u,t),d.multiplyVec3(u,p),u=v.cp4,r=v.cp5,u.y===r.y&&u.z===r.z||(u=[r.x-u.x,r.y-u.y,r.z-u.z],r=b.vec3AngleFrom(p,u),0>f.dot(n,f.cross(p, -u))&&(r*=-1),d.rotateY(k,r)),l.nucleics_useShapelyColors&&!l.macro_colorByChain&&(e[v.name]?j.material.setDiffuseColor(e[v.name].shapelyColor):j.material.setDiffuseColor(e["*"].shapelyColor)),j.setMatrixUniforms(k),j.drawElements(j.TRIANGLES,D.vertexIndexBuffer.numItems,j.UNSIGNED_SHORT,0)};return!0};h.Tube.prototype=new h._Mesh})(ChemDoodle.extensions,ChemDoodle.RESIDUE,ChemDoodle.structures,ChemDoodle.structures.d3,Math,mat4,vec3); -(function(b){b.UnitCell=function(b){var a=[],h=[],c=function(b,c,d,e){a.push(b[0],b[1],b[2]);a.push(c[0],c[1],c[2]);a.push(d[0],d[1],d[2]);a.push(e[0],e[1],e[2]);for(b=0;4>b;b++)h.push(0,0,0)};c(b.o,b.x,b.xy,b.y);c(b.o,b.y,b.yz,b.z);c(b.o,b.z,b.xz,b.x);c(b.yz,b.y,b.xy,b.xyz);c(b.xyz,b.xz,b.z,b.yz);c(b.xy,b.x,b.xz,b.xyz);b=[];for(c=0;6>c;c++){var d=4*c;b.push(d,d+1,d+1,d+2,d+2,d+3,d+3,d)}this.storeData(a,h,b);return!0};b.UnitCell.prototype=new b._Mesh})(ChemDoodle.structures.d3,vec3); -(function(b,e,a){b.Plate=function(b){this.lanes=Array(b);i=0;for(ii=b;i<ii;i++)this.lanes[i]=[];this.sort=function(){i=0;for(ii=this.lanes.length;i<ii;i++)this.lanes[i].sort(function(a,b){return a-b})};this.draw=function(b){var d=b.canvas.width,f=b.canvas.height;this.origin=9*f/10;this.front=f/10;this.laneLength=this.origin-this.front;b.strokeStyle="#000000";b.beginPath();b.moveTo(0,this.front);e.contextHashTo(b,0,this.front,d,this.front,3,3);b.closePath();b.stroke();b.beginPath();b.moveTo(0,this.origin); -b.lineTo(d,this.origin);b.closePath();b.stroke();i=0;for(ii=this.lanes.length;i<ii;i++){f=(i+1)*d/(ii+1);b.beginPath();b.moveTo(f,this.origin);b.lineTo(f,this.origin+3);b.closePath();b.stroke();s=0;for(ss=this.lanes[i].length;s<ss;s++){var h=this.origin-this.laneLength*this.lanes[i][s].rf;switch(this.lanes[i][s].type){case "compact":b.beginPath();b.arc(f,h,3,0,2*a.PI,!1);b.closePath();break;case "expanded":b.beginPath();b.arc(f,h,7,0,2*a.PI,!1);b.closePath();break;case "widened":e.contextOval(b,f- -18,h-10,36,10);break;case "cresent":b.beginPath(),b.arc(f,h,9,0,a.PI,!0),b.closePath()}switch(this.lanes[i][s].style){case "solid":b.fillStyle="#000000";b.fill();break;case "transparent":b.stroke()}}}};return!0};b.Plate.Spot=function(a,b,d){this.type=a;this.rf=b;this.style=d?d:"solid"}})(ChemDoodle.structures,ChemDoodle.extensions,Math); -(function(b,e,a){b.default_backgroundColor="#FFFFFF";b.default_scale=1;b.default_rotateAngle=0;b.default_bondLength_2D=20;b.default_angstromsPerBondLength=1.25;b.default_lightDirection_3D=[-0.1,-0.1,-1];b.default_lightDiffuseColor_3D="#FFFFFF";b.default_lightSpecularColor_3D="#FFFFFF";b.default_projectionPerspective_3D=!0;b.default_projectionPerspectiveVerticalFieldOfView_3D=45;b.default_projectionOrthoWidth_3D=40;b.default_projectionWidthHeightRatio_3D=void 0;b.default_projectionFrontCulling_3D= -0.1;b.default_projectionBackCulling_3D=1E4;b.default_atoms_display=!0;b.default_atoms_color="#000000";b.default_atoms_font_size_2D=12;b.default_atoms_font_families_2D=["Helvetica","Arial","Dialog"];b.default_atoms_font_bold_2D=!1;b.default_atoms_font_italic_2D=!1;b.default_atoms_circles_2D=!1;b.default_atoms_circleDiameter_2D=10;b.default_atoms_circleBorderWidth_2D=1;b.default_atoms_lonePairDistance_2D=8;b.default_atoms_lonePairSpread_2D=4;b.default_atoms_lonePairDiameter_2D=1;b.default_atoms_useJMOLColors= -!1;b.default_atoms_usePYMOLColors=!1;b.default_atoms_resolution_3D=60;b.default_atoms_sphereDiameter_3D=0.8;b.default_atoms_useVDWDiameters_3D=!1;b.default_atoms_vdwMultiplier_3D=1;b.default_atoms_materialAmbientColor_3D="#000000";b.default_atoms_materialSpecularColor_3D="#555555";b.default_atoms_materialShininess_3D=32;b.default_atoms_implicitHydrogens_2D=!0;b.default_atoms_displayTerminalCarbonLabels_2D=!1;b.default_atoms_showHiddenCarbons_2D=!0;b.default_atoms_displayAllCarbonLabels_2D=!1;b.default_atoms_nonBondedAsStars_3D= -!1;b.default_bonds_display=!0;b.default_bonds_color="#000000";b.default_bonds_width_2D=1;b.default_bonds_saturationWidth_2D=0.2;b.default_bonds_ends_2D="round";b.default_bonds_useJMOLColors=!1;b.default_bonds_usePYMOLColors=!1;b.default_bonds_colorGradient=!1;b.default_bonds_saturationAngle_2D=a.PI/3;b.default_bonds_symmetrical_2D=!1;b.default_bonds_clearOverlaps_2D=!1;b.default_bonds_overlapClearWidth_2D=0.5;b.default_bonds_atomLabelBuffer_2D=1;b.default_bonds_wedgeThickness_2D=0.22;b.default_bonds_hashWidth_2D= -1;b.default_bonds_hashSpacing_2D=2.5;b.default_bonds_showBondOrders_3D=!1;b.default_bonds_resolution_3D=60;b.default_bonds_renderAsLines_3D=!1;b.default_bonds_cylinderDiameter_3D=0.3;b.default_bonds_materialAmbientColor_3D="#222222";b.default_bonds_materialSpecularColor_3D="#555555";b.default_bonds_materialShininess_3D=32;b.default_proteins_displayRibbon=!0;b.default_proteins_displayBackbone=!1;b.default_proteins_backboneThickness=1.5;b.default_proteins_backboneColor="#CCCCCC";b.default_proteins_ribbonCartoonize= -!1;b.default_proteins_useShapelyColors=!1;b.default_proteins_useAminoColors=!1;b.default_proteins_usePolarityColors=!1;b.default_proteins_primaryColor="#FF0D0D";b.default_proteins_secondaryColor="#FFFF30";b.default_proteins_ribbonCartoonHelixPrimaryColor="#00E740";b.default_proteins_ribbonCartoonHelixSecondaryColor="#9905FF";b.default_proteins_ribbonCartoonSheetColor="#E8BB99";b.default_proteins_ribbonThickness=0.2;b.default_proteins_verticalResolution=10;b.default_proteins_horizontalResolution=9; -b.default_proteins_materialAmbientColor_3D="#222222";b.default_proteins_materialSpecularColor_3D="#555555";b.default_proteins_materialShininess_3D=32;b.default_nucleics_display=!0;b.default_nucleics_tubeColor="#CCCCCC";b.default_nucleics_baseColor="#C10000";b.default_nucleics_useShapelyColors=!0;b.default_nucleics_tubeThickness=1.5;b.default_nucleics_tubeResolution_3D=60;b.default_nucleics_verticalResolution=10;b.default_nucleics_materialAmbientColor_3D="#222222";b.default_nucleics_materialSpecularColor_3D= -"#555555";b.default_nucleics_materialShininess_3D=32;b.default_macro_displayAtoms=!1;b.default_macro_displayBonds=!1;b.default_macro_atomToLigandDistance=-1;b.default_macro_showWater=!1;b.default_macro_colorByChain=!1;b.default_surfaces_display=!0;b.default_surfaces_style="Dot";b.default_surfaces_color="#E9B862";b.default_surfaces_materialAmbientColor_3D="#000000";b.default_surfaces_materialSpecularColor_3D="#000000";b.default_surfaces_materialShininess_3D=32;b.default_crystals_displayUnitCell=!0; -b.default_crystals_unitCellColor="green";b.default_crystals_unitCellLineWidth=1;b.default_plots_color="#000000";b.default_plots_width=1;b.default_plots_showIntegration=!1;b.default_plots_integrationColor="#c10000";b.default_plots_integrationLineWidth=1;b.default_plots_showGrid=!1;b.default_plots_gridColor="gray";b.default_plots_gridLineWidth=0.5;b.default_plots_showYAxis=!0;b.default_plots_flipXAxis=!1;b.default_text_font_size=12;b.default_text_font_families=["Helvetica","Arial","Dialog"];b.default_text_color= -"#000000";b.default_shapes_color="#000000";b.default_shapes_lineWidth_2D=1;b.default_shapes_arrowLength_2D=8;b.default_pusher_showElectron_2D=!0;e.VisualSpecifications=function(){this.backgroundColor=b.default_backgroundColor;this.scale=b.default_scale;this.rotateAngle=b.default_rotateAngle;this.bondLength=b.default_bondLength_2D;this.angstromsPerBondLength=b.default_angstromsPerBondLength;this.lightDirection_3D=b.default_lightDirection_3D;this.lightDiffuseColor_3D=b.default_lightDiffuseColor_3D; -this.lightSpecularColor_3D=b.default_lightSpecularColor_3D;this.projectionPerspective_3D=b.default_projectionPerspective_3D;this.projectionPerspectiveVerticalFieldOfView_3D=b.default_projectionPerspectiveVerticalFieldOfView_3D;this.projectionOrthoWidth_3D=b.default_projectionOrthoWidth_3D;this.projectionWidthHeightRatio_3D=b.default_projectionWidthHeightRatio_3D;this.projectionFrontCulling_3D=b.default_projectionFrontCulling_3D;this.projectionBackCulling_3D=b.default_projectionBackCulling_3D;this.atoms_display= -b.default_atoms_display;this.atoms_color=b.default_atoms_color;this.atoms_font_size_2D=b.default_atoms_font_size_2D;this.atoms_font_families_2D=[];for(var a=0,c=b.default_atoms_font_families_2D.length;a<c;a++)this.atoms_font_families_2D[a]=b.default_atoms_font_families_2D[a];this.atoms_font_bold_2D=b.default_atoms_font_bold_2D;this.atoms_font_italic_2D=b.default_atoms_font_italic_2D;this.atoms_circles_2D=b.default_atoms_circles_2D;this.atoms_circleDiameter_2D=b.default_atoms_circleDiameter_2D;this.atoms_circleBorderWidth_2D= -b.default_atoms_circleBorderWidth_2D;this.atoms_lonePairDistance_2D=b.default_atoms_lonePairDistance_2D;this.atoms_lonePairSpread_2D=b.default_atoms_lonePairSpread_2D;this.atoms_lonePairDiameter_2D=b.default_atoms_lonePairDiameter_2D;this.atoms_useJMOLColors=b.default_atoms_useJMOLColors;this.atoms_usePYMOLColors=b.default_atoms_usePYMOLColors;this.atoms_resolution_3D=b.default_atoms_resolution_3D;this.atoms_sphereDiameter_3D=b.default_atoms_sphereDiameter_3D;this.atoms_useVDWDiameters_3D=b.default_atoms_useVDWDiameters_3D; -this.atoms_vdwMultiplier_3D=b.default_atoms_vdwMultiplier_3D;this.atoms_materialAmbientColor_3D=b.default_atoms_materialAmbientColor_3D;this.atoms_materialSpecularColor_3D=b.default_atoms_materialSpecularColor_3D;this.atoms_materialShininess_3D=b.default_atoms_materialShininess_3D;this.atoms_implicitHydrogens_2D=b.default_atoms_implicitHydrogens_2D;this.atoms_displayTerminalCarbonLabels_2D=b.default_atoms_displayTerminalCarbonLabels_2D;this.atoms_showHiddenCarbons_2D=b.default_atoms_showHiddenCarbons_2D; -this.atoms_displayAllCarbonLabels_2D=b.default_atoms_displayAllCarbonLabels_2D;this.atoms_nonBondedAsStars_3D=b.default_atoms_nonBondedAsStars_3D;this.bonds_display=b.default_bonds_display;this.bonds_color=b.default_bonds_color;this.bonds_width_2D=b.default_bonds_width_2D;this.bonds_saturationWidth_2D=b.default_bonds_saturationWidth_2D;this.bonds_ends_2D=b.default_bonds_ends_2D;this.bonds_useJMOLColors=b.default_bonds_useJMOLColors;this.bonds_usePYMOLColors=b.default_bonds_usePYMOLColors;this.bonds_colorGradient= -b.default_bonds_colorGradient;this.bonds_saturationAngle_2D=b.default_bonds_saturationAngle_2D;this.bonds_symmetrical_2D=b.default_bonds_symmetrical_2D;this.bonds_clearOverlaps_2D=b.default_bonds_clearOverlaps_2D;this.bonds_overlapClearWidth_2D=b.default_bonds_overlapClearWidth_2D;this.bonds_atomLabelBuffer_2D=b.default_bonds_atomLabelBuffer_2D;this.bonds_wedgeThickness_2D=b.default_bonds_wedgeThickness_2D;this.bonds_hashWidth_2D=b.default_bonds_hashWidth_2D;this.bonds_hashSpacing_2D=b.default_bonds_hashSpacing_2D; -this.bonds_showBondOrders_3D=b.default_bonds_showBondOrders_3D;this.bonds_resolution_3D=b.default_bonds_resolution_3D;this.bonds_renderAsLines_3D=b.default_bonds_renderAsLines_3D;this.bonds_cylinderDiameter_3D=b.default_bonds_cylinderDiameter_3D;this.bonds_materialAmbientColor_3D=b.default_bonds_materialAmbientColor_3D;this.bonds_materialSpecularColor_3D=b.default_bonds_materialSpecularColor_3D;this.bonds_materialShininess_3D=b.default_bonds_materialShininess_3D;this.proteins_displayRibbon=b.default_proteins_displayRibbon; -this.proteins_displayBackbone=b.default_proteins_displayBackbone;this.proteins_backboneThickness=b.default_proteins_backboneThickness;this.proteins_backboneColor=b.default_proteins_backboneColor;this.proteins_ribbonCartoonize=b.default_proteins_ribbonCartoonize;this.proteins_useShapelyColors=b.default_proteins_useShapelyColors;this.proteins_useAminoColors=b.default_proteins_useAminoColors;this.proteins_usePolarityColors=b.default_proteins_usePolarityColors;this.proteins_primaryColor=b.default_proteins_primaryColor; -this.proteins_secondaryColor=b.default_proteins_secondaryColor;this.proteins_ribbonCartoonHelixPrimaryColor=b.default_proteins_ribbonCartoonHelixPrimaryColor;this.proteins_ribbonCartoonHelixSecondaryColor=b.default_proteins_ribbonCartoonHelixSecondaryColor;this.proteins_ribbonCartoonSheetColor=b.default_proteins_ribbonCartoonSheetColor;this.proteins_ribbonThickness=b.default_proteins_ribbonThickness;this.proteins_verticalResolution=b.default_proteins_verticalResolution;this.proteins_horizontalResolution= -b.default_proteins_horizontalResolution;this.proteins_materialAmbientColor_3D=b.default_proteins_materialAmbientColor_3D;this.proteins_materialSpecularColor_3D=b.default_proteins_materialSpecularColor_3D;this.proteins_materialShininess_3D=b.default_proteins_materialShininess_3D;this.macro_displayAtoms=b.default_macro_displayAtoms;this.macro_displayBonds=b.default_macro_displayBonds;this.macro_atomToLigandDistance=b.default_macro_atomToLigandDistance;this.nucleics_display=b.default_nucleics_display; -this.nucleics_tubeColor=b.default_nucleics_tubeColor;this.nucleics_baseColor=b.default_nucleics_baseColor;this.nucleics_useShapelyColors=b.default_nucleics_useShapelyColors;this.nucleics_tubeThickness=b.default_nucleics_tubeThickness;this.nucleics_tubeResolution_3D=b.default_nucleics_tubeResolution_3D;this.nucleics_verticalResolution=b.default_nucleics_verticalResolution;this.nucleics_materialAmbientColor_3D=b.default_nucleics_materialAmbientColor_3D;this.nucleics_materialSpecularColor_3D=b.default_nucleics_materialSpecularColor_3D; -this.nucleics_materialShininess_3D=b.default_nucleics_materialShininess_3D;this.macro_showWater=b.default_macro_showWater;this.macro_colorByChain=b.default_macro_colorByChain;this.surfaces_display=b.default_surfaces_display;this.surfaces_style=b.default_surfaces_style;this.surfaces_color=b.default_surfaces_color;this.surfaces_materialAmbientColor_3D=b.default_surfaces_materialAmbientColor_3D;this.surfaces_materialSpecularColor_3D=b.default_surfaces_materialSpecularColor_3D;this.surfaces_materialShininess_3D= -b.default_surfaces_materialShininess_3D;this.crystals_displayUnitCell=b.default_crystals_displayUnitCell;this.crystals_unitCellColor=b.default_crystals_unitCellColor;this.crystals_unitCellLineWidth=b.default_crystals_unitCellLineWidth;this.plots_color=b.default_plots_color;this.plots_width=b.default_plots_width;this.plots_showIntegration=b.default_plots_showIntegration;this.plots_integrationColor=b.default_plots_integrationColor;this.plots_integrationLineWidth=b.default_plots_integrationLineWidth; -this.plots_showGrid=b.default_plots_showGrid;this.plots_gridColor=b.default_plots_gridColor;this.plots_gridLineWidth=b.default_plots_gridLineWidth;this.plots_showYAxis=b.default_plots_showYAxis;this.plots_flipXAxis=b.default_plots_flipXAxis;this.text_font_size=b.default_text_font_size;this.text_font_families=[];a=0;for(c=b.default_text_font_families.length;a<c;a++)this.text_font_families[a]=b.default_text_font_families[a];this.text_color=b.default_text_color;this.shapes_color=b.default_shapes_color; -this.shapes_lineWidth_2D=b.default_shapes_lineWidth_2D;this.shapes_arrowLength_2D=b.default_shapes_arrowLength_2D;this.pusher_showElectron_2D=b.default_pusher_showElectron_2D;this.set3DRepresentation=function(a){this.bonds_display=this.atoms_display=!0;this.bonds_color="#777777";this.bonds_showBondOrders_3D=this.bonds_useJMOLColors=this.atoms_useJMOLColors=this.atoms_useVDWDiameters_3D=!0;this.bonds_renderAsLines_3D=!1;"Ball and Stick"===a?(this.atoms_vdwMultiplier_3D=0.3,this.bonds_useJMOLColors= -!1,this.bonds_cylinderDiameter_3D=0.3,this.bonds_materialAmbientColor_3D=b.default_atoms_materialAmbientColor_3D):"van der Waals Spheres"===a?(this.bonds_display=!1,this.atoms_vdwMultiplier_3D=1):"Stick"===a?(this.bonds_showBondOrders_3D=this.atoms_useVDWDiameters_3D=!1,this.bonds_cylinderDiameter_3D=this.atoms_sphereDiameter_3D=0.8,this.bonds_materialAmbientColor_3D=this.atoms_materialAmbientColor_3D):"Wireframe"===a?(this.atoms_useVDWDiameters_3D=!1,this.bonds_cylinderDiameter_3D=0.05,this.atoms_sphereDiameter_3D= -0.15,this.bonds_materialAmbientColor_3D=b.default_atoms_materialAmbientColor_3D):"Line"===a?(this.atoms_display=!1,this.bonds_renderAsLines_3D=!0,this.bonds_width_2D=1,this.bonds_cylinderDiameter_3D=0.05):alert('"'+a+'" is not recognized. Use one of the following strings:\n\n1. Ball and Stick\n2. van der Waals Spheres\n3. Stick\n4. Wireframe\n5. Line\n')};this.getFontString=function(a,b,c,g){var e=[];c&&e.push("bold ");g&&e.push("italic ");e.push(a+"px ");a=0;for(c=b.length;a<c;a++)g=b[a],-1!==g.indexOf(" ")&& -(g='"'+g+'"'),e.push((0!==a?",":"")+g);return e.join("")}}})(ChemDoodle,ChemDoodle.structures,Math); -(function(b,e,a,h){a.getPointsPerAngstrom=function(){return b.default_bondLength_2D/b.default_angstromsPerBondLength};a.BondDeducer=function(){this.margin=1.1;this.deduceCovalentBonds=function(b,d){var f=a.getPointsPerAngstrom();d&&(f=d);for(var q=0,g=b.atoms.length;q<g;q++)for(var o=q+1;o<g;o++){var m=b.atoms[q],j=b.atoms[o];m.distance3D(j)<(e[m.label].covalentRadius+e[j.label].covalentRadius)*f*this.margin&&b.bonds.push(new h.Bond(m,j,1))}};return!0}})(ChemDoodle,ChemDoodle.ELEMENT,ChemDoodle.informatics, -ChemDoodle.structures);(function(b){b.HydrogenDeducer=function(){this.removeHydrogens=function(b){for(var a=[],h=[],c=0,d=b.bonds.length;c<d;c++)"H"!==b.bonds[c].a1.label&&"H"!==b.bonds[c].a2.label&&h.push(b.bonds[c]);c=0;for(d=b.atoms.length;c<d;c++)"H"!==b.atoms[c].label&&a.push(b.atoms[c]);b.atoms=a;b.bonds=h};return!0}})(ChemDoodle.informatics); -(function(b,e,a){e.MolecularSurfaceGenerator=function(){this.generateSurface=function(b,c,d,f,e){return new a.MolecularSurface(b,c,d,f,e)};return!0}})(ChemDoodle,ChemDoodle.informatics,ChemDoodle.structures.d3); -(function(b,e){b.Splitter=function(){this.split=function(a){for(var b=[],c=0,d=a.atoms.length;c<d;c++)a.atoms[c].visited=!1;c=0;for(d=a.bonds.length;c<d;c++)a.bonds[c].visited=!1;c=0;for(d=a.atoms.length;c<d;c++){var f=a.atoms[c];if(!f.visited){var q=new e.Molecule;q.atoms.push(f);f.visited=!0;var g=new e.Queue;for(g.enqueue(f);!g.isEmpty();)for(var f=g.dequeue(),o=0,m=a.bonds.length;o<m;o++){var j=a.bonds[o];j.contains(f)&&!j.visited&&(j.visited=!0,q.bonds.push(j),j=j.getNeighbor(f),j.visited||(j.visited= -!0,q.atoms.push(j),g.enqueue(j)))}b.push(q)}}return b};return!0}})(ChemDoodle.informatics,ChemDoodle.structures); -(function(b,e){b.StructureBuilder=function(){this.copy=function(a){for(var b=0,c=a.atoms.length;b<c;b++)a.atoms[b].metaID=b;for(var d=new e.Molecule,b=0,c=a.atoms.length;b<c;b++)d.atoms[b]=new e.Atom(a.atoms[b].label,a.atoms[b].x,a.atoms[b].y,a.atoms[b].z);b=0;for(c=a.bonds.length;b<c;b++)d.bonds[b]=new e.Bond(d.atoms[a.bonds[b].a1.metaID],d.atoms[a.bonds[b].a2.metaID],a.bonds[b].bondOrder);return d};return!0}})(ChemDoodle.informatics,ChemDoodle.structures); -(function(b){b._Counter=function(){this.value=0;this.molecule=void 0;this.setMolecule=function(b){this.value=0;this.molecule=b;this.innerCalculate&&this.innerCalculate()};return!0}})(ChemDoodle.informatics);(function(b){b.FrerejacqueNumberCounter=function(b){this.setMolecule(b);return!0};b.FrerejacqueNumberCounter.prototype=new b._Counter;b.FrerejacqueNumberCounter.prototype.innerCalculate=function(){this.value=this.molecule.bonds.length-this.molecule.atoms.length+(new b.NumberOfMoleculesCounter(this.molecule)).value}})(ChemDoodle.informatics); -(function(b,e){e.NumberOfMoleculesCounter=function(a){this.setMolecule(a);return!0};e.NumberOfMoleculesCounter.prototype=new e._Counter;e.NumberOfMoleculesCounter.prototype.innerCalculate=function(){for(var a=0,e=this.molecule.atoms.length;a<e;a++)this.molecule.atoms[a].visited=!1;a=0;for(e=this.molecule.atoms.length;a<e;a++)if(!this.molecule.atoms[a].visited){this.value++;var c=new b.Queue;this.molecule.atoms[a].visited=!0;for(c.enqueue(this.molecule.atoms[a]);!c.isEmpty();)for(var d=c.dequeue(), -f=0,q=this.molecule.bonds.length;f<q;f++){var g=this.molecule.bonds[f];g.contains(d)&&(g=g.getNeighbor(d),g.visited||(g.visited=!0,c.enqueue(g)))}}}})(ChemDoodle.structures,ChemDoodle.informatics); -(function(b,e){b._RingFinder=function(){this.rings=this.bonds=this.atoms=void 0;this.reduce=function(a){for(var b=0,c=a.atoms.length;b<c;b++)a.atoms[b].visited=!1;b=0;for(c=a.bonds.length;b<c;b++)a.bonds[b].visited=!1;for(var d=!0;d;){d=!1;b=0;for(c=a.atoms.length;b<c;b++){for(var f=0,e,g=0,o=a.bonds.length;g<o;g++)if(a.bonds[g].contains(a.atoms[b])&&!a.bonds[g].visited){f++;if(2===f)break;e=a.bonds[g]}1===f&&(d=!0,e.visited=!0,a.atoms[b].visited=!0)}}b=0;for(c=a.atoms.length;b<c;b++)a.atoms[b].visited|| -this.atoms.push(a.atoms[b]);b=0;for(c=a.bonds.length;b<c;b++)a.bonds[b].visited||this.bonds.push(a.bonds[b]);0===this.bonds.length&&0!==this.atoms.length&&(this.atoms=[])};this.setMolecule=function(a){this.atoms=[];this.bonds=[];this.rings=[];this.reduce(a);2<this.atoms.length&&this.innerGetRings&&this.innerGetRings()};this.fuse=function(){for(var a=0,b=this.rings.length;a<b;a++)for(var c=0,d=this.bonds.length;c<d;c++)-1!==e(this.bonds[c].a1,this.rings[a].atoms)&&-1!==e(this.bonds[c].a2,this.rings[a].atoms)&& -this.rings[a].bonds.push(this.bonds[c])};return!0}})(ChemDoodle.informatics,jQuery.inArray); -(function(b,e,a){function h(b,d){this.atoms=[];if(d)for(var f=0,q=d.atoms.length;f<q;f++)this.atoms[f]=d.atoms[f];this.atoms.push(b);this.grow=function(b,c){for(var d=this.atoms[this.atoms.length-1],f=[],e=0,q=b.length;e<q;e++)if(b[e].contains(d)){var r=b[e].getNeighbor(d);-1===a(r,c)&&f.push(r)}d=[];e=0;for(q=f.length;e<q;e++)d.push(new h(f[e],this));return d};this.check=function(b,c,d){for(var f=0,h=c.atoms.length-1;f<h;f++)if(-1!==a(c.atoms[f],this.atoms))return;var q;if(c.atoms[c.atoms.length- -1]===this.atoms[this.atoms.length-1]){q=new e.Ring;q.atoms[0]=d;f=0;for(h=this.atoms.length;f<h;f++)q.atoms.push(this.atoms[f]);for(f=c.atoms.length-2;0<=f;f--)q.atoms.push(c.atoms[f])}else{for(var r=[],f=0,h=b.length;f<h;f++)b[f].contains(c.atoms[c.atoms.length-1])&&r.push(b[f]);f=0;for(h=r.length;f<h;f++)if((1===c.atoms.length||!r[f].contains(c.atoms[c.atoms.length-2]))&&r[f].contains(this.atoms[this.atoms.length-1])){q=new e.Ring;q.atoms[0]=d;b=0;for(d=this.atoms.length;b<d;b++)q.atoms.push(this.atoms[b]); -for(b=c.atoms.length-1;0<=b;b--)q.atoms.push(c.atoms[b]);break}}return q};return!0}b.EulerFacetRingFinder=function(a){this.fingerBreak=5;this.setMolecule(a);return!0};b.EulerFacetRingFinder.prototype=new b._RingFinder;b.EulerFacetRingFinder.prototype.innerGetRings=function(){for(var b=0,d=this.atoms.length;b<d;b++){for(var f=[],e=0,g=this.bonds.length;e<g;e++)this.bonds[e].contains(this.atoms[b])&&f.push(this.bonds[e].getNeighbor(this.atoms[b]));e=0;for(g=f.length;e<g;e++)for(var o=e+1;o<f.length;o++){var m= -[];m[0]=new h(f[e]);m[1]=new h(f[o]);var j=[];j[0]=this.atoms[b];for(var l=0,n=f.length;l<n;l++)l!==e&&l!==o&&j.push(f[l]);var r=[];for((l=m[0].check(this.bonds,m[1],this.atoms[b]))&&(r[0]=l);0===r.length&&0<m.length&&m[0].atoms.length<this.fingerBreak;){for(var k=[],l=0,n=m.length;l<n;l++)for(var v=m[l].grow(this.bonds,j),x=0,t=v.length;x<t;x++)k.push(v[x]);m=k;l=0;for(n=m.length;l<n;l++)for(x=l+1;x<n;x++)(t=m[l].check(this.bonds,m[x],this.atoms[b]))&&r.push(t);if(0===r.length){k=[];l=0;for(n=j.length;l< -n;l++){x=0;for(t=this.bonds.length;x<t;x++)this.bonds[x].contains(j[l])&&(f=this.bonds[x].getNeighbor(j[l]),-1===a(f,j)&&-1===a(f,k)&&k.push(f))}l=0;for(n=k.length;l<n;l++)j.push(k[l])}}if(0<r.length){m=void 0;l=0;for(n=r.length;l<n;l++)if(!m||m.atoms.length>r[l].atoms.length)m=r[l];r=!1;l=0;for(n=this.rings.length;l<n;l++){j=!0;x=0;for(t=m.atoms.length;x<t;x++)if(-1===a(m.atoms[x],this.rings[l].atoms)){j=!1;break}if(j){r=!0;break}}r||this.rings.push(m)}}}this.fuse()}})(ChemDoodle.informatics,ChemDoodle.structures, -jQuery.inArray); -(function(b){b.SSSRFinder=function(e){this.rings=[];if(0<e.atoms.length){var a=(new b.FrerejacqueNumberCounter(e)).value,h=(new b.EulerFacetRingFinder(e)).rings;h.sort(function(a,b){return a.atoms.length-b.atoms.length});for(var c=0,d=e.bonds.length;c<d;c++)e.bonds[c].visited=!1;c=0;for(d=h.length;c<d;c++){for(var e=!1,f=0,q=h[c].bonds.length;f<q;f++)if(!h[c].bonds[f].visited){e=!0;break}if(e){f=0;for(q=h[c].bonds.length;f<q;f++)h[c].bonds[f].visited=!0;this.rings.push(h[c])}if(this.rings.length===a)break}}return!0}})(ChemDoodle.informatics); -(function(b){b._Interpreter=function(){};b._Interpreter.prototype.fit=function(b,a,h){for(var c=b.length,d=[],f=0;f<a-c;f++)d.push(" ");return h?b+d.join(""):d.join("")+b}})(ChemDoodle.io); -(function(b,e,a,h,c,d,f,q){var g=/\s+/g,o=/\(|\)|\s+/g,m=/\'|\s+/g,j=/,|\'|\s+/g,l=/^\s+/,n=/[0-9]/g,r=/[0-9]|\+|\-/g,k=function(a){return 0!==a.length},v={P:[],A:[[0,0.5,0.5]],B:[[0.5,0,0.5]],C:[[0.5,0.5,0]],I:[[0.5,0.5,0.5]],R:[[2/3,1/3,1/3],[1/3,2/3,2/3]],S:[[1/3,1/3,2/3],[2/3,2/3,1/3]],T:[[1/3,2/3,1/3],[2/3,1/3,2/3]],F:[[0,0.5,0.5],[0.5,0,0.5],[0.5,0.5,0]]},x=function(a){var b=0,c=0,d=0,f=0,e=a.indexOf("x"),g=a.indexOf("y"),j=a.indexOf("z");-1!==e&&(c++,0<e&&"+"!==a.charAt(e-1)&&(c*=-1));-1!== -g&&(d++,0<g&&"+"!==a.charAt(g-1)&&(d*=-1));-1!==j&&(f++,0<j&&"+"!==a.charAt(j-1)&&(f*=-1));if(2<a.length){e="+";g=0;for(j=a.length;g<j;g++){var h=a.charAt(g);if(("-"===h||"/"===h)&&(g===a.length-1||a.charAt(g+1).match(n)))e=h;h.match(n)&&("+"===e?b+=parseInt(h):"-"===e?b-=parseInt(h):"/"===e&&(b/=parseInt(h)))}}return[b,c,d,f]};a.CIFInterpreter=function(){this.read=function(a,f,n,p){var f=f?f:1,n=n?n:1,p=p?p:1,t=new h.Molecule;if(!a)return t;for(var B=a.split("\n"),D=0,G=0,F=0,C=a=0,E=0,I="P",L,H, -K,z,N=!0;0<B.length;)if(N?z=B.shift():N=!0,0<z.length)if(e.stringStartsWith(z,"_cell_length_a"))D=parseFloat(z.split(o)[1]);else if(e.stringStartsWith(z,"_cell_length_b"))G=parseFloat(z.split(o)[1]);else if(e.stringStartsWith(z,"_cell_length_c"))F=parseFloat(z.split(o)[1]);else if(e.stringStartsWith(z,"_cell_angle_alpha"))a=c.PI*parseFloat(z.split(o)[1])/180;else if(e.stringStartsWith(z,"_cell_angle_beta"))C=c.PI*parseFloat(z.split(o)[1])/180;else if(e.stringStartsWith(z,"_cell_angle_gamma"))E=c.PI* -parseFloat(z.split(o)[1])/180;else if(e.stringStartsWith(z,"_symmetry_space_group_name_H-M"))I=z.split(m)[1];else if(e.stringStartsWith(z,"loop_")){for(var J={fields:[],lines:[]},P=!1;void 0!==(z=B.shift())&&!e.stringStartsWith(z=z.replace(l,""),"loop_")&&0<z.length;)if(e.stringStartsWith(z,"_")){if(P)break;J.fields=J.fields.concat(z.split(g).filter(k))}else P=!0,J.lines.push(z);if(0!==B.length&&(e.stringStartsWith(z,"loop_")||e.stringStartsWith(z,"_")))N=!1;-1!==q("_symmetry_equiv_pos_as_xyz",J.fields)|| --1!==q("_space_group_symop_operation_xyz",J.fields)?L=J:-1!==q("_atom_site_label",J.fields)?H=J:-1!==q("_geom_bond_atom_site_label_1",J.fields)&&(K=J)}z=D;a=(c.cos(a)-c.cos(E)*c.cos(C))/c.sin(E);a=[z,0,0,0,G*c.cos(E),G*c.sin(E),0,0,F*c.cos(C),F*a,F*c.sqrt(1-c.pow(c.cos(C),2)-a*a),0,0,0,0,1];if(H){J=N=D=B=F=-1;E=0;for(C=H.fields.length;E<C;E++)z=H.fields[E],"_atom_site_type_symbol"===z?F=E:"_atom_site_label"===z?B=E:"_atom_site_fract_x"===z?D=E:"_atom_site_fract_y"===z?N=E:"_atom_site_fract_z"===z&& -(J=E);E=0;for(C=H.lines.length;E<C;E++)z=H.lines[E],G=z.split(g).filter(k),z=new h.Atom(G[-1===F?B:F].split(r)[0],parseFloat(G[D]),parseFloat(G[N]),parseFloat(G[J])),t.atoms.push(z),-1!==B&&(z.cifId=G[B],z.cifPart=0)}if(L&&!K){E=G=0;for(C=L.fields.length;E<C;E++)if(z=L.fields[E],"_symmetry_equiv_pos_as_xyz"===z||"_space_group_symop_operation_xyz"===z)G=E;N=v[I];B=[];E=0;for(C=L.lines.length;E<C;E++){z=L.lines[E].split(j).filter(k);for(var J=x(z[G]),P=x(z[G+1]),M=x(z[G+2]),I=0,D=t.atoms.length;I<D;I++){z= -t.atoms[I];var Q=z.x*J[1]+z.y*J[2]+z.z*J[3]+J[0],S=z.x*P[1]+z.y*P[2]+z.z*P[3]+P[0],R=z.x*M[1]+z.y*M[2]+z.z*M[3]+M[0];H=new h.Atom(z.label,Q,S,R);B.push(H);void 0!==z.cifId&&(H.cifId=z.cifId,H.cifPart=E+1);if(N){H=0;for(F=N.length;H<F;H++){var O=N[H],O=new h.Atom(z.label,Q+O[0],S+O[1],R+O[2]);B.push(O);void 0!==z.cifId&&(O.cifId=z.cifId,O.cifPart=E+1)}}}}E=0;for(C=B.length;E<C;E++){for(z=B[E];1<=z.x;)z.x--;for(;0>z.x;)z.x++;for(;1<=z.y;)z.y--;for(;0>z.y;)z.y++;for(;1<=z.z;)z.z--;for(;0>z.z;)z.z++}H= -[];E=0;for(C=B.length;E<C;E++){F=!1;z=B[E];I=0;for(D=t.atoms.length;I<D;I++)if(1.0E-4>t.atoms[I].distance3D(z)){F=!0;break}if(!F){I=0;for(D=H.length;I<D;I++)if(1.0E-4>H[I].distance3D(z)){F=!0;break}F||H.push(z)}}t.atoms=t.atoms.concat(H)}C=[];for(E=0;E<f;E++)for(I=0;I<n;I++)for(H=0;H<p;H++)if(!(0===E&&0===I&&0===H)){F=0;for(G=t.atoms.length;F<G;F++)z=t.atoms[F],B=new h.Atom(z.label,z.x+E,z.y+I,z.z+H),C.push(B),void 0!==z.cifId&&(B.cifId=z.cifId,B.cifPart=z.cifPart+(L?L.lines.length:0)+E+10*I+100* -H)}t.atoms=t.atoms.concat(C);E=0;for(C=t.atoms.length;E<C;E++)z=t.atoms[E],L=d.multiplyVec3(a,[z.x,z.y,z.z]),z.x=L[0],z.y=L[1],z.z=L[2];if(K){B=L=-1;E=0;for(C=K.fields.length;E<C;E++)z=K.fields[E],"_geom_bond_atom_site_label_1"===z?L=E:"_geom_bond_atom_site_label_2"===z&&(B=E);H=0;for(F=K.lines.length;H<F;H++){G=K.lines[H].split(g).filter(k);z=G[L];G=G[B];E=0;for(C=t.atoms.length;E<C;E++)for(I=E+1;I<C;I++){D=t.atoms[E];N=t.atoms[I];if(D.cifPart!==N.cifPart)break;(D.cifId===z&&N.cifId===G||D.cifId=== -G&&N.cifId===z)&&t.bonds.push(new h.Bond(D,N))}}}else(new b.informatics.BondDeducer).deduceCovalentBonds(t,1);f=[-f/2,-n/2,-p/2];t.unitCellVectors={o:d.multiplyVec3(a,f,[]),x:d.multiplyVec3(a,[f[0]+1,f[1],f[2]]),y:d.multiplyVec3(a,[f[0],f[1]+1,f[2]]),z:d.multiplyVec3(a,[f[0],f[1],f[2]+1]),xy:d.multiplyVec3(a,[f[0]+1,f[1]+1,f[2]]),xz:d.multiplyVec3(a,[f[0]+1,f[1],f[2]+1]),yz:d.multiplyVec3(a,[f[0],f[1]+1,f[2]+1]),xyz:d.multiplyVec3(a,[f[0]+1,f[1]+1,f[2]+1])};return t}};a.CIFInterpreter.prototype=new a._Interpreter; -var t=new a.CIFInterpreter;b.readCIF=function(a,b,c,d){return t.read(a,b,c,d)}})(ChemDoodle,ChemDoodle.extensions,ChemDoodle.io,ChemDoodle.structures,Math,mat4,vec3,jQuery.inArray); -(function(b,e,a,h,c){a.MOLInterpreter=function(){this.read=function(a,c){c||(c=b.default_bondLength_2D);var d=new h.Molecule;if(!a)return d;for(var o=a.split("\n"),m=o[3],j=parseInt(m.substring(0,3)),m=parseInt(m.substring(3,6)),l=0;l<j;l++){var n=o[4+l];d.atoms[l]=new h.Atom(n.substring(31,34),parseFloat(n.substring(0,10))*c,(1===c?1:-1)*parseFloat(n.substring(10,20))*c,parseFloat(n.substring(20,30))*c);var r=parseInt(n.substring(34,36));0!==r&&e[d.atoms[l].label]&&(d.atoms[l].mass=e[d.atoms[l].label].mass+ -r);switch(parseInt(n.substring(36,39))){case 1:d.atoms[l].charge=3;break;case 2:d.atoms[l].charge=2;break;case 3:d.atoms[l].charge=1;break;case 5:d.atoms[l].charge=-1;break;case 6:d.atoms[l].charge=-2;break;case 7:d.atoms[l].charge=-3}}for(l=0;l<m;l++){var n=o[4+j+l],k=parseInt(n.substring(6,9)),r=parseInt(n.substring(9,12));if(3<k)switch(k){case 4:k=1.5;break;default:k=1}n=new h.Bond(d.atoms[parseInt(n.substring(0,3))-1],d.atoms[parseInt(n.substring(3,6))-1],k);switch(r){case 3:n.stereo=h.Bond.STEREO_AMBIGUOUS; -break;case 1:n.stereo=h.Bond.STEREO_PROTRUDING;break;case 6:n.stereo=h.Bond.STEREO_RECESSED}d.bonds[l]=n}return d};this.write=function(a){var d=[];d.push("Molecule from ChemDoodle Web Components\n\nhttp://www.ichemlabs.com\n");d.push(this.fit(a.atoms.length.toString(),3));d.push(this.fit(a.bonds.length.toString(),3));d.push(" 0 0 0 0 999 v2000\n");for(var g=a.getCenter(),o=0,m=a.atoms.length;o<m;o++){var j=a.atoms[o],l=" 0";if(-1!==j.mass&&e[j.label]){var n=j.mass-e[j.label].mass;5> -n&&-4<n&&(l=(-1<n?" ":"")+n)}n=" 0";if(0!==j.charge)switch(j.charge){case 3:n=" 1";break;case 2:n=" 2";break;case 1:n=" 3";break;case -1:n=" 5";break;case -2:n=" 6";break;case -3:n=" 7"}d.push(this.fit(((j.x-g.x)/b.default_bondLength_2D).toFixed(4),10));d.push(this.fit((-(j.y-g.y)/b.default_bondLength_2D).toFixed(4),10));d.push(this.fit((j.z/b.default_bondLength_2D).toFixed(4),10));d.push(" ");d.push(this.fit(j.label,3,!0));d.push(l);d.push(n);d.push(" 0 0 0 0\n")}o=0;for(m=a.bonds.length;o< -m;o++)g=a.bonds[o],j=0,g.stereo===h.Bond.STEREO_AMBIGUOUS?j=3:g.stereo===h.Bond.STEREO_PROTRUDING?j=1:g.stereo===h.Bond.STEREO_RECESSED&&(j=6),d.push(this.fit((c(g.a1,a.atoms)+1).toString(),3)),d.push(this.fit((c(g.a2,a.atoms)+1).toString(),3)),d.push(this.fit(g.bondOrder.toString(),3)),d.push(" "),d.push(j),d.push(" 0 0\n");d.push("M END");return d.join("")}};a.MOLInterpreter.prototype=new a._Interpreter;var d=new a.MOLInterpreter;b.readMOL=function(a,b){return d.read(a,b)};b.writeMOL=function(a){return d.write(a)}})(ChemDoodle, -ChemDoodle.ELEMENT,ChemDoodle.io,ChemDoodle.structures,jQuery.inArray); -(function(b,e,a,h,c,d,f){a.PDBInterpreter=function(){function a(b,c,d,f,e){for(var g=0,h=c.length;g<h;g++){var q=c[g];if(q.id===d&&f>=q.start&&f<=q.end){e?b.helix=!0:b.sheet=!0;f+1===q.end&&(b.arrow=!0);break}}}this.deduceResidueBonds=this.calculateRibbonDistances=!1;this.read=function(q,m){var j=new h.Molecule;j.chains=[];if(!q)return j;var l=q.split("\n");m||(m=1);for(var n=[],r=[],k,v=[],x=[],t=[],y=0,w=l.length;y<w;y++){var u=l[y];if(e.stringStartsWith(u,"HELIX"))n.push({id:u.substring(19,20), -start:parseInt(u.substring(21,25)),end:parseInt(u.substring(33,37))});else if(e.stringStartsWith(u,"SHEET"))r.push({id:u.substring(21,22),start:parseInt(u.substring(22,26)),end:parseInt(u.substring(33,37))});else if(e.stringStartsWith(u,"ATOM")){var p=u.substring(16,17);if(" "===p||"A"===p){p=d(u.substring(76,78));if(0===p.length){var A=d(u.substring(12,14));"HD"===A?p="H":0<A.length&&(p=1<A.length?A.charAt(0)+A.substring(1).toLowerCase():A)}A=new h.Atom(p,parseFloat(u.substring(30,38))*m,parseFloat(u.substring(38, -46))*m,parseFloat(u.substring(46,54))*m);A.hetatm=!1;x.push(A);var B=parseInt(u.substring(22,26));if(0===v.length)for(p=0;2>p;p++){var D=new h.Residue(-1);D.cp1=A;D.cp2=A;v.push(D)}B!==Number.NaN&&v[v.length-1].resSeq!==B&&(p=new h.Residue(B),p.name=d(u.substring(17,20)),3===p.name.length?p.name=p.name.substring(0,1)+p.name.substring(1).toLowerCase():2===p.name.length&&"D"===p.name.charAt(0)&&(p.name=p.name.substring(1)),v.push(p),D=u.substring(21,22),a(p,n,D,B,!0),a(p,r,D,B,!1));u=d(u.substring(12, -16));p=v[v.length-1];if("CA"===u||"P"===u||"O5'"===u)p.cp1||(p.cp1=A);else if("N3"===u&&("C"===p.name||"U"===p.name||"T"===p.name)||"N1"===u&&("A"===p.name||"G"===p.name))p.cp3=A;else if("C2"===u)p.cp4=A;else if("C4"===u&&("C"===p.name||"U"===p.name||"T"===p.name)||"C6"===u&&("A"===p.name||"G"===p.name))p.cp5=A;else if("O"===u||"C6"===u&&("C"===p.name||"U"===p.name||"T"===p.name)||"N9"===u){if(!v[v.length-1].cp2){if("C6"===u||"N9"===u)k=A;p.cp2=A}}else"C"===u&&(k=A)}}else if(e.stringStartsWith(u, -"HETATM"))p=d(u.substring(76,78)),0===p.length&&(p=d(u.substring(12,16))),1<p.length&&(p=p.substring(0,1)+p.substring(1).toLowerCase()),p=new h.Atom(p,parseFloat(u.substring(30,38))*m,parseFloat(u.substring(38,46))*m,parseFloat(u.substring(46,54))*m),p.hetatm=!0,"HOH"===d(u.substring(17,20))&&(p.isWater=!0),j.atoms.push(p),t[parseInt(d(u.substring(6,11)))]=p;else if(e.stringStartsWith(u,"CONECT")){if(p=parseInt(d(u.substring(6,11))),t[p]){A=t[p];for(B=0;4>B;B++)if(p=d(u.substring(11+5*B,16+5*B)), -0!==p.length&&(p=parseInt(p),t[p])){for(var D=t[p],G=!1,p=0,F=j.bonds.length;p<F;p++){var C=j.bonds[p];if(C.a1===A&&C.a2===D||C.a1===D&&C.a2===A){G=!0;break}}G||j.bonds.push(new h.Bond(A,D))}}}else if(e.stringStartsWith(u,"TER"))this.endChain(j,v,k,x),v=[];else if(e.stringStartsWith(u,"ENDMDL"))break}this.endChain(j,v,k,x);0===j.bonds.size&&(new b.informatics.BondDeducer).deduceCovalentBonds(j,m);if(this.deduceResidueBonds){y=0;for(w=x.length;y<w;y++){l=f.min(w,y+20);for(p=y+1;p<l;p++)n=x[y],r=x[p], -n.distance3D(r)<1.1*(c[n.label].covalentRadius+c[r.label].covalentRadius)&&j.bonds.push(new h.Bond(n,r,1))}}j.atoms=j.atoms.concat(x);this.calculateRibbonDistances&&this.calculateDistances(j,x);return j};this.endChain=function(a,b,c,d){if(0<b.length){var f=b[b.length-1];f.cp1||(f.cp1=d[d.length-2]);f.cp2||(f.cp2=d[d.length-1]);for(d=0;4>d;d++)f=new h.Residue(-1),f.cp1=c,f.cp2=b[b.length-1].cp2,b.push(f);a.chains.push(b)}};this.calculateDistances=function(a,b){for(var c=[],d=0,f=a.atoms.length;d<f;d++){var e= -a.atoms[d];e.hetatm&&(e.isWater||c.push(e))}d=0;for(f=b.length;d<f;d++)if(e=b[d],e.closestDistance=Number.POSITIVE_INFINITY,0===c.length)e.closestDistance=0;else for(var g=0,h=c.length;g<h;g++)e.closestDistance=Math.min(e.closestDistance,e.distance3D(c[g]))}};a.PDBInterpreter.prototype=new a._Interpreter;var q=new a.PDBInterpreter;b.readPDB=function(a,b){return q.read(a,b)}})(ChemDoodle,ChemDoodle.extensions,ChemDoodle.io,ChemDoodle.structures,ChemDoodle.ELEMENT,jQuery.trim,Math); -(function(b,e,a,h,c,d){var f={"@":0,A:1,B:2,C:3,D:4,E:5,F:6,G:7,H:8,I:9,a:-1,b:-2,c:-3,d:-4,e:-5,f:-6,g:-7,h:-8,i:-9},q={"%":0,J:1,K:2,L:3,M:4,N:5,O:6,P:7,Q:8,R:9,j:-1,k:-2,l:-3,m:-4,n:-5,o:-6,p:-7,q:-8,r:-9},g={S:1,T:2,U:3,V:4,W:5,X:6,Y:7,Z:8,s:9};a.JCAMPInterpreter=function(){this.convertHZ2PPM=!1;this.read=function(a){this.isBreak=function(a){return void 0!==f[a]||void 0!==q[a]||void 0!==g[a]||" "===a||"-"===a||"+"===a};this.getValue=function(a,b){var c=a.charAt(0),d=a.substring(1);return void 0!== -f[c]?parseFloat(f[c]+d):void 0!==q[c]?parseFloat(q[c]+d)+b:parseFloat(d)};var b=new h.Spectrum;if(void 0===a||0===a.length)return b;for(var a=a.split("\n"),l=[],n,o,k,v,x=1,t=1,y=1,w=-1,u=-1,p=-1,A=!0,B=!1,D=0,G=a.length;D<G;D++){var F=d(a[D]),C=c.inArray("$$",F);-1!==C&&(F=F.substring(0,C));if(0===l.length||!e.stringStartsWith(a[D],"##"))0!==l.length&&l.push("\n"),l.push(d(F));else if(C=l.join(""),A&&100>C.length&&b.metadata.push(C),l=[F],e.stringStartsWith(C,"##TITLE="))b.title=d(C.substring(8)); -else if(e.stringStartsWith(C,"##XUNITS="))b.xUnit=d(C.substring(9)),this.convertHZ2PPM&&"HZ"===b.xUnit.toUpperCase()&&(b.xUnit="PPM",B=!0);else if(e.stringStartsWith(C,"##YUNITS="))b.yUnit=d(C.substring(9));else if(!e.stringStartsWith(C,"##XYPAIRS="))if(e.stringStartsWith(C,"##FIRSTX="))o=parseFloat(d(C.substring(9)));else if(e.stringStartsWith(C,"##LASTX="))n=parseFloat(d(C.substring(8)));else if(e.stringStartsWith(C,"##FIRSTY="))k=parseFloat(d(C.substring(9)));else if(e.stringStartsWith(C,"##NPOINTS="))v= -parseFloat(d(C.substring(10)));else if(e.stringStartsWith(C,"##XFACTOR="))x=parseFloat(d(C.substring(10)));else if(e.stringStartsWith(C,"##YFACTOR="))t=parseFloat(d(C.substring(10)));else if(e.stringStartsWith(C,"##DELTAX="))w=parseFloat(d(C.substring(9)));else if(e.stringStartsWith(C,"##.OBSERVE FREQUENCY="))this.convertHZ2PPM&&(y=parseFloat(d(C.substring(21))));else if(e.stringStartsWith(C,"##.SHIFT REFERENCE="))this.convertHZ2PPM&&(p=C.substring(19).split(","),u=parseInt(d(p[2])),p=parseFloat(d(p[3]))); -else if(e.stringStartsWith(C,"##XYDATA=")){B||(y=1);var F=A=!1,C=C.split("\n"),E=(n-o)/(v-1);if(-1!==w)for(var I=1,L=C.length;I<L;I++)if("|"===C[I].charAt(0)){E=w;break}for(var H=o-E,K=k,z=0,N,I=1,L=C.length;I<L;I++){for(var J=[],H=d(C[I]),l=[],P=!1,M=0,Q=H.length;M<Q;M++)this.isBreak(H.charAt(M))?(0<l.length&&!(1===l.length&&" "===l[0])&&J.push(l.join("")),l=[H.charAt(M)]):"|"===H.charAt(M)?P=!0:l.push(H.charAt(M));J.push(l.join(""));H=parseFloat(J[0])*x-E;M=1;for(Q=J.length;M<Q;M++)if(K=J[M],void 0!== -g[K.charAt(0)])for(var S=parseInt(g[K.charAt(0)]+K.substring(1))-1,R=0;R<S;R++)H+=E,z=this.getValue(N,z),K=z*t,O++,b.data[b.data.length-1]=new h.Point(H/y,K);else void 0!==f[K.charAt(0)]&&F?(K=this.getValue(K,z)*t,P&&(H+=E,b.data.push(new h.Point(H/y,K)))):(F=void 0!==q[K.charAt(0)],N=K,H+=E,z=this.getValue(K,z),K=z*t,O++,b.data.push(new h.Point(H/y,K)))}if(-1!==u){F=p-b.data[u-1].x;D=0;for(G=b.data.length;D<G;D++)b.data[D].x+=F}}else if(e.stringStartsWith(C,"##PEAK TABLE=")){A=!1;b.continuous=!1; -for(var C=C.split("\n"),O=0,I=1,L=C.length;I<L;I++){F=C[I].split(/[\s,]+/);O+=F.length/2;M=0;for(Q=F.length;M+1<Q;M+=2)b.data.push(new h.Point(parseFloat(d(F[M])),parseFloat(d(F[M+1]))))}}}b.setup();return b}};a.JCAMPInterpreter.prototype=new a._Interpreter;var o=new a.JCAMPInterpreter;o.convertHZ2PPM=!0;b.readJCAMP=function(a){return o.read(a)}})(ChemDoodle,ChemDoodle.extensions,ChemDoodle.io,ChemDoodle.structures,jQuery,jQuery.trim); -(function(b,e,a,h){b.JSONInterpreter=function(){this.contentTo=function(a,b){for(var f=0,e=0,g=0,h=a.length;g<h;g++){for(var m=a[g],j=0,l=m.atoms.length;j<l;j++)m.atoms[j].tmpid="a"+f++;j=0;for(l=m.bonds.length;j<l;j++)m.bonds[j].tmpid="b"+e++}g=f=0;for(h=b.length;g<h;g++)b[g].tmpid="s"+f++;f={};if(a&&0<a.length){f.m=[];g=0;for(h=a.length;g<h;g++)f.m.push(this.molTo(a[g]))}if(b&&0<b.length){f.s=[];g=0;for(h=b.length;g<h;g++)f.s.push(this.shapeTo(b[g]))}g=0;for(h=a.length;g<h;g++){m=a[g];j=0;for(l= -m.atoms.length;j<l;j++)m.atoms[j].tmpid=void 0;j=0;for(l=m.bonds.length;j<l;j++)m.bonds[j].tmpid=void 0}g=0;for(h=b.length;g<h;g++)b[g].tmpid=void 0;return f};this.contentFrom=function(a){var b={molecules:[],shapes:[]};if(a.m)for(var f=0,e=a.m.length;f<e;f++)b.molecules.push(this.molFrom(a.m[f]));if(a.s){f=0;for(e=a.s.length;f<e;f++)b.shapes.push(this.shapeFrom(a.s[f],b.molecules))}f=0;for(e=b.molecules.length;f<e;f++){for(var a=b.molecules[f],g=0,h=a.atoms.length;g<h;g++)a.atoms[g].tmpid=void 0; -g=0;for(h=a.bonds.length;g<h;g++)a.bonds[g].tmpid=void 0}f=0;for(e=b.shapes.length;f<e;f++)b.shapes[f].tmpid=void 0;return b};this.molTo=function(a){for(var b={a:[],b:[]},f=0,q=a.atoms.length;f<q;f++){var g=a.atoms[f],o={x:g.x,y:g.y};g.tmpid&&(o.i=g.tmpid);"C"!==g.label&&(o.l=g.label);0!==g.z&&(o.z=g.z);0!==g.charge&&(o.c=g.charge);-1!==g.mass&&(o.m=g.mass);0!==g.numRadical&&(o.r=g.numRadical);0!==g.numLonePair&&(o.p=g.numLonePair);g.any&&(o.q=!0);-1!==g.rgroup&&(o.rg=g.rgroup);b.a.push(o)}f=0;for(q= -a.bonds.length;f<q;f++)g=a.bonds[f],o={b:h(g.a1,a.atoms),e:h(g.a2,a.atoms)},g.tmpid&&(o.i=g.tmpid),1!==g.bondOrder&&(o.o=g.bondOrder),g.stereo!==e.Bond.STEREO_NONE&&(o.s=g.stereo),b.b.push(o);return b};this.molFrom=function(a){for(var b=new e.Molecule,f=0,h=a.a.length;f<h;f++){var g=a.a[f],o=new e.Atom(g.l?g.l:"C",g.x,g.y);g.i&&(o.tmpid=g.i);g.z&&(o.z=g.z);g.c&&(o.charge=g.c);g.m&&(o.mass=g.m);g.r&&(o.numRadical=g.r);g.p&&(o.numLonePair=g.p);g.q&&(o.any=!0);g.rg&&(o.rgroup=g.rg);void 0!==g.p_h&&(o.hetatm= -g.p_h);void 0!==g.p_w&&(o.isWater=g.p_w);void 0!==g.p_d&&(o.closestDistance=g.p_d);b.atoms.push(o)}f=0;for(h=a.b.length;f<h;f++)g=a.b[f],o=new e.Bond(b.atoms[g.b],b.atoms[g.e],g.o?g.o:1),g.i&&(o.tmpid=g.i),g.s&&(o.stereo=g.s),b.bonds.push(o);return b};this.shapeTo=function(b){var d={};b.tmpid&&(d.i=b.tmpid);b instanceof a.Line?(d.t="Line",d.x1=b.p1.x,d.y1=b.p1.y,d.x2=b.p2.x,d.y2=b.p2.y,d.a=b.arrowType):b instanceof a.Pusher&&(d.t="Pusher",d.o1=b.o1.tmpid,d.o2=b.o2.tmpid,1!==b.numElectron&&(d.e=b.numElectron)); -return d};this.shapeFrom=function(b,d){var f;if("Line"===b.t)f=new a.Line(new e.Point(b.x1,b.y1),new e.Point(b.x2,b.y2)),f.arrowType=b.a;else if("Pusher"===b.t){var h,g;f=0;for(var o=d.length;f<o;f++){for(var m=d[f],j=0,l=m.atoms.length;j<l;j++){var n=m.atoms[j];n.tmpid===b.o1?h=n:n.tmpid===b.o2&&(g=n)}j=0;for(l=m.bonds.length;j<l;j++)n=m.bonds[j],n.tmpid===b.o1?h=n:n.tmpid===b.o2&&(g=n)}f=new a.Pusher(h,g);b.e&&(f.numElectron=b.e)}return f};this.pdbFrom=function(a){var b=this.molFrom(a.mol);b.findRings= -!1;b.fromJSON=!0;b.chains=this.chainsFrom(a.ribbons);return b};this.chainsFrom=function(a){for(var b=[],f=0,h=a.cs.length;f<h;f++){for(var g=a.cs[f],o=[],m=0,j=g.length;m<j;m++){var l=g[m],n=new e.Residue;n.name=l.n;n.cp1=new e.Atom("",l.x1,l.y1,l.z1);n.cp2=new e.Atom("",l.x2,l.y2,l.z2);l.x3&&(n.cp3=new e.Atom("",l.x3,l.y3,l.z3),n.cp4=new e.Atom("",l.x4,l.y4,l.z4),n.cp5=new e.Atom("",l.x5,l.y5,l.z5));n.helix=l.h;n.sheet=l.s;n.arrow=l.a;o.push(n)}b.push(o)}return b}}})(ChemDoodle.io,ChemDoodle.structures, -ChemDoodle.structures.d2,jQuery.inArray); -(function(b,e,a){e.RXNInterpreter=function(){this.read=function(c,d){d||(d=b.default_bondLength_2D);var f=[],e;if(c){e=c.split("$MOL\n");for(var g=e[0].split("\n")[4],h=parseInt(g.substring(0,3)),g=parseInt(g.substring(3,6)),m=1,j=0,l=0,n=h+g;l<n;l++){f[l]=b.readMOL(e[m],d);var r=f[l].getBounds(),r=r.maxX-r.minX,j=j-(r+40);m++}l=0;for(n=h;l<n;l++){var r=f[l].getBounds(),r=r.maxX-r.minX,m=f[l].getCenter(),k=0;for(e=f[l].atoms.length;k<e;k++){var v=f[l].atoms[k];v.x+=j+r/2-m.x;v.y-=m.y}j+=r+40}e=new a.d2.Line(new a.Point(j, -0),new a.Point(j+40,0));j+=80;l=h;for(n=h+g;l<n;l++){r=f[l].getBounds();r=r.maxX-r.minX;m=f[l].getCenter();for(k=0;k<f[l].atoms.length;k++)v=f[l].atoms[k],v.x+=j+r/2-m.x,v.y-=m.y;j+=r+40}}else f.push(new a.Molecule),e=new a.d2.Line(new a.Point(-20,0),new a.Point(20,0));e.arrowType=a.d2.Line.ARROW_SYNTHETIC;return{molecules:f,shapes:[e]}};this.write=function(c,d){var f=[[],[]],e=void 0;if(c&&d){g=0;for(h=d.length;g<h;g++)if(d[g]instanceof a.d2.Line){e=d[g].getPoints();break}if(!e)return"";for(var g= -0,h=c.length;g<h;g++)c[g].getCenter().x<e[0].x?f[0].push(c[g]):f[1].push(c[g]);e=[];e.push("$RXN\nReaction from ChemDoodle Web Components\n\nhttp://www.ichemlabs.com\n");e.push(this.fit(f[0].length.toString(),3));e.push(this.fit(f[1].length.toString(),3));e.push("\n");for(g=0;2>g;g++)for(var h=0,m=f[g].length;h<m;h++)e.push("$MOL\n"),e.push(b.writeMOL(f[g][h])),e.push("\n");return e.join("")}}};e.RXNInterpreter.prototype=new e._Interpreter;var h=new e.RXNInterpreter;b.readRXN=function(a,b){return h.read(a, -b)};b.writeRXN=function(a,b){return h.write(a,b)}})(ChemDoodle,ChemDoodle.io,ChemDoodle.structures); -(function(b,e,a,h,c,d){h.XYZInterpreter=function(){this.deduceCovalentBonds=!0;this.read=function(f){var e=new c.Molecule;if(!f)return e;for(var f=f.split("\n"),h=parseInt(d(f[0])),m=0;m<h;m++){var j=f[m+2].split(/\s+/g);e.atoms[m]=new c.Atom(isNaN(j[0])?j[0]:a[parseInt(j[0])-1],parseFloat(j[1]),parseFloat(j[2]),parseFloat(j[3]))}this.deduceCovalentBonds&&(new b.informatics.BondDeducer).deduceCovalentBonds(e,1);return e}};h.XYZInterpreter.prototype=new h._Interpreter;var f=new h.XYZInterpreter;b.readXYZ= -function(a){return f.read(a)}})(ChemDoodle,ChemDoodle.ELEMENT,ChemDoodle.SYMBOLS,ChemDoodle.io,ChemDoodle.structures,jQuery.trim); -ChemDoodle.monitor=function(b,e,a){var h={CANVAS_DRAGGING:void 0,CANVAS_OVER:void 0,ALT:!1,SHIFT:!1,META:!1};b.supports_touch()||e(a).ready(function(){e(a).mousemove(function(a){h.CANVAS_DRAGGING&&h.CANVAS_DRAGGING.drag&&(h.CANVAS_DRAGGING.prehandleEvent(a),h.CANVAS_DRAGGING.drag(a))});e(a).mouseup(function(a){h.CANVAS_DRAGGING&&h.CANVAS_DRAGGING!==h.CANVAS_OVER&&h.CANVAS_DRAGGING.mouseup&&(h.CANVAS_DRAGGING.prehandleEvent(a),h.CANVAS_DRAGGING.mouseup(a));h.CANVAS_DRAGGING=void 0});e(a).keydown(function(a){h.SHIFT= -a.shiftKey;h.ALT=a.altKey;h.META=a.metaKey;var b=h.CANVAS_OVER;h.CANVAS_DRAGGING&&(b=h.CANVAS_DRAGGING);b&&b.keydown&&(b.prehandleEvent(a),b.keydown(a))});e(a).keypress(function(a){var b=h.CANVAS_OVER;h.CANVAS_DRAGGING&&(b=h.CANVAS_DRAGGING);b&&b.keypress&&(b.prehandleEvent(a),b.keypress(a))});e(a).keyup(function(a){h.SHIFT=a.shiftKey;h.ALT=a.altKey;h.META=a.metaKey;var b=h.CANVAS_OVER;h.CANVAS_DRAGGING&&(b=h.CANVAS_DRAGGING);b&&b.keyup&&(b.prehandleEvent(a),b.keyup(a))})});return h}(ChemDoodle.featureDetection, -jQuery,document); -(function(b,e,a,h,c,d,f,q,g,o,m){b._Canvas=function(){this.image=this.emptyMessage=this.shapes=this.molecules=void 0;return!0};b._Canvas.prototype.repaint=function(){if(!this.test){var a=o.getElementById(this.id);if(a.getContext){var b=a.getContext("2d");1!==this.pixelRatio&&a.width===this.width&&(a.width=this.width*this.pixelRatio,a.height=this.height*this.pixelRatio,b.scale(this.pixelRatio,this.pixelRatio));this.image?b.drawImage(this.image,0,0):(this.specs.backgroundColor&&this.bgCache!==a.style.backgroundColor&& -(a.style.backgroundColor=this.specs.backgroundColor,this.bgCache=a.style.backgroundColor),b.fillStyle=this.specs.backgroundColor,b.fillRect(0,0,this.width,this.height));if(this.innerRepaint)this.innerRepaint(b);else if(0!==this.molecules.length||0!==this.shapes.length){b.save();b.translate(this.width/2,this.height/2);b.rotate(this.specs.rotateAngle);b.scale(this.specs.scale,this.specs.scale);b.translate(-this.width/2,-this.height/2);for(var a=0,c=this.molecules.length;a<c;a++)this.molecules[a].check(!0), -this.molecules[a].draw(b,this.specs);a=0;for(c=this.shapes.length;a<c;a++)this.shapes[a].draw(b,this.specs);b.restore()}else this.emptyMessage&&(b.fillStyle="#737683",b.textAlign="center",b.textBaseline="middle",b.font="18px Helvetica, Verdana, Arial, Sans-serif",b.fillText(this.emptyMessage,this.width/2,this.height/2));this.drawChildExtras&&this.drawChildExtras(b)}}};b._Canvas.prototype.resize=function(a,b){var c=d("#"+this.id);c.attr({width:a,height:b});c.css("width",a);c.css("height",b);this.width= -a;this.height=b;if(this instanceof ChemDoodle._Canvas3D)this.gl.viewport(0,0,a,b),this.setupScene();else if(0<this.molecules.length){this.center();for(var c=0,f=this.molecules.length;c<f;c++)this.molecules[c].check()}this.repaint()};b._Canvas.prototype.setBackgroundImage=function(a){this.image=new Image;var b=this;this.image.onload=function(){b.repaint()};this.image.src=a};b._Canvas.prototype.loadMolecule=function(a){this.clear();this.molecules.push(a);this.center();this instanceof ChemDoodle._Canvas3D|| -a.check();this.afterLoadContent&&this.afterLoadContent();this.repaint()};b._Canvas.prototype.loadContent=function(a,b){this.molecules=a;this.shapes=b;this.center();if(!(this instanceof ChemDoodle._Canvas3D))for(var c=0,d=this.molecules.length;c<d;c++)this.molecules[c].check();this.afterLoadContent&&this.afterLoadContent();this.repaint()};b._Canvas.prototype.addMolecule=function(a){this.molecules.push(a);this instanceof ChemDoodle._Canvas3D||a.check();this.repaint()};b._Canvas.prototype.removeMolecule= -function(a){this.molecules=d.grep(this.molecules,function(b){return b!==a});this.repaint()};b._Canvas.prototype.getMolecule=function(){return 0<this.molecules.length?this.molecules[0]:void 0};b._Canvas.prototype.getMolecules=function(){return this.molecules};b._Canvas.prototype.addShape=function(a){this.shapes.push(a);this.repaint()};b._Canvas.prototype.removeShape=function(a){this.shapes=d.grep(this.shapes,function(b){return b!==a});this.repaint()};b._Canvas.prototype.getShapes=function(){return this.shapes}; -b._Canvas.prototype.clear=function(){this.molecules=[];this.shapes=[];this.specs.scale=1;this.repaint()};b._Canvas.prototype.center=function(){for(var a=this.getContentBounds(),b=new c.Point((this.width-a.minX-a.maxX)/2,(this.height-a.minY-a.maxY)/2),d=0,f=this.molecules.length;d<f;d++)for(var e=this.molecules[d],h=0,m=e.atoms.length;h<m;h++)e.atoms[h].add(b);d=0;for(f=this.shapes.length;d<f;d++){e=this.shapes[d].getPoints();h=0;for(m=e.length;h<m;h++)e[h].add(b)}this.specs.scale=1;b=a.maxX-a.minX; -a=a.maxY-a.minY;if(b>this.width||a>this.height)this.specs.scale=0.85*g.min(this.width/b,this.height/a)};b._Canvas.prototype.bondExists=function(a,b){for(var c=0,d=this.molecules.length;c<d;c++)for(var f=this.molecules[c],e=0,g=f.bonds.length;e<g;e++){var h=f.bonds[e];if(h.contains(a)&&h.contains(b))return!0}return!1};b._Canvas.prototype.getBond=function(a,b){for(var c=0,d=this.molecules.length;c<d;c++)for(var f=this.molecules[c],e=0,g=f.bonds.length;e<g;e++){var h=f.bonds[e];if(h.contains(a)&&h.contains(b))return h}}; -b._Canvas.prototype.getMoleculeByAtom=function(a){for(var b=0,c=this.molecules.length;b<c;b++){var d=this.molecules[b];if(-1!==q(a,d.atoms))return d}};b._Canvas.prototype.getAllAtoms=function(){for(var a=[],b=0,c=this.molecules.length;b<c;b++)a=a.concat(this.molecules[b].atoms);return a};b._Canvas.prototype.getAllPoints=function(){for(var a=[],b=0,c=this.molecules.length;b<c;b++)a=a.concat(this.molecules[b].atoms);b=0;for(c=this.shapes.length;b<c;b++)a=a.concat(this.shapes[b].getPoints());return a}; -b._Canvas.prototype.getContentBounds=function(){for(var b=new a.Bounds,c=0,d=this.molecules.length;c<d;c++)b.expand(this.molecules[c].getBounds());c=0;for(d=this.shapes.length;c<d;c++)b.expand(this.shapes[c].getBounds());return b};b._Canvas.prototype.create=function(a,l,q){this.id=a;this.width=l;this.height=q;this.molecules=[];this.shapes=[];if(o.getElementById(a)){var r=d("#"+a);l?r.attr("width",l):this.width=r.attr("width");q?r.attr("height",q):this.height=r.attr("height");r.attr("class","ChemDoodleWebComponent")}else{if(!b.featureDetection.supports_canvas_text()&& -f.msie&&"6"<=f.version){o.writeln('<div style="border: 1px solid black;" width="'+l+'" height="'+q+'">Please install <a href="http://code.google.com/chrome/chromeframe/">Google Chrome Frame</a>, then restart Internet Explorer.</div>');return}o.writeln('<canvas class="ChemDoodleWebComponent" id="'+a+'" width="'+l+'" height="'+q+'" alt="ChemDoodle Web Component">This browser does not support HTML5/Canvas.</canvas>')}a=d("#"+a);a.css("width",this.width);a.css("height",this.height);this.pixelRatio=m.devicePixelRatio? -m.devicePixelRatio:1;this.specs=new c.VisualSpecifications;var k=this;e.supports_touch()?(a.bind("touchstart",function(a){var b=(new Date).getTime();if(!e.supports_gesture()&&2===a.originalEvent.touches.length){var d=a.originalEvent.touches,f=new c.Point(d[0].pageX,d[0].pageY),d=new c.Point(d[1].pageX,d[1].pageY);k.implementedGestureDist=f.distance(d);k.implementedGestureAngle=f.angle(d);k.gesturestart&&(k.prehandleEvent(a),k.gesturestart(a))}k.lastTouch&&1===a.originalEvent.touches.length&&500>b- -k.lastTouch?k.dbltap?(k.prehandleEvent(a),k.dbltap(a)):k.dblclick?(k.prehandleEvent(a),k.dblclick(a)):k.touchstart?(k.prehandleEvent(a),k.touchstart(a)):k.mousedown&&(k.prehandleEvent(a),k.mousedown(a)):k.touchstart?(k.prehandleEvent(a),k.touchstart(a),this.hold&&clearTimeout(this.hold),this.touchhold&&(this.hold=setTimeout(function(){k.touchhold(a)},1E3))):k.mousedown&&(k.prehandleEvent(a),k.mousedown(a));k.lastTouch=b}),a.bind("touchmove",function(a){this.hold&&(clearTimeout(this.hold),this.hold= -void 0);if(!e.supports_gesture()&&2===a.originalEvent.touches.length&&k.gesturechange){var b=a.originalEvent.touches,d=new c.Point(b[0].pageX,b[0].pageY),f=new c.Point(b[1].pageX,b[1].pageY),b=d.distance(f),d=d.angle(f);a.originalEvent.scale=b/k.implementedGestureDist;a.originalEvent.rotation=180*(k.implementedGestureAngle-d)/g.PI;k.prehandleEvent(a);k.gesturechange(a)}if(1<a.originalEvent.touches.length&&k.multitouchmove){d=a.originalEvent.touches.length;k.prehandleEvent(a);b=new c.Point(-a.offset.left* -d,-a.offset.top*d);for(f=0;f<d;f++)b.x+=a.originalEvent.changedTouches[f].pageX,b.y+=a.originalEvent.changedTouches[f].pageY;b.x/=d;b.y/=d;a.p=b;k.multitouchmove(a,d)}else k.touchmove?(k.prehandleEvent(a),k.touchmove(a)):k.drag&&(k.prehandleEvent(a),k.drag(a))}),a.bind("touchend",function(a){this.hold&&(clearTimeout(this.hold),this.hold=void 0);!e.supports_gesture()&&k.implementedGestureDist&&(k.implementedGestureDist=void 0,k.implementedGestureAngle=void 0,k.gestureend&&(k.prehandleEvent(a),k.gestureend(a))); -k.touchend?(k.prehandleEvent(a),k.touchend(a)):k.mouseup&&(k.prehandleEvent(a),k.mouseup(a));250>(new Date).getTime()-k.lastTouch&&(k.tap?(k.prehandleEvent(a),k.tap(a)):k.click&&(k.prehandleEvent(a),k.click(a)))}),a.bind("gesturestart",function(a){k.gesturestart&&(k.prehandleEvent(a),k.gesturestart(a))}),a.bind("gesturechange",function(a){k.gesturechange&&(k.prehandleEvent(a),k.gesturechange(a))}),a.bind("gestureend",function(a){k.gestureend&&(k.prehandleEvent(a),k.gestureend(a))})):(a.click(function(a){switch(a.which){case 1:k.click&& -(k.prehandleEvent(a),k.click(a));break;case 2:k.middleclick&&(k.prehandleEvent(a),k.middleclick(a));break;case 3:k.rightclick&&(k.prehandleEvent(a),k.rightclick(a))}}),a.dblclick(function(a){k.dblclick&&(k.prehandleEvent(a),k.dblclick(a))}),a.mousedown(function(a){switch(a.which){case 1:h.CANVAS_DRAGGING=k;k.mousedown&&(k.prehandleEvent(a),k.mousedown(a));break;case 2:k.middlemousedown&&(k.prehandleEvent(a),k.middlemousedown(a));break;case 3:k.rightmousedown&&(k.prehandleEvent(a),k.rightmousedown(a))}}), -a.mousemove(function(a){!h.CANVAS_DRAGGING&&k.mousemove&&(k.prehandleEvent(a),k.mousemove(a))}),a.mouseout(function(a){h.CANVAS_OVER=void 0;k.mouseout&&(k.prehandleEvent(a),k.mouseout(a))}),a.mouseover(function(a){h.CANVAS_OVER=k;k.mouseover&&(k.prehandleEvent(a),k.mouseover(a))}),a.mouseup(function(a){switch(a.which){case 1:k.mouseup&&(k.prehandleEvent(a),k.mouseup(a));break;case 2:k.middlemouseup&&(k.prehandleEvent(a),k.middlemouseup(a));break;case 3:k.rightmouseup&&(k.prehandleEvent(a),k.rightmouseup(a))}}), -a.mousewheel(function(a,b){k.mousewheel&&(k.prehandleEvent(a),k.mousewheel(a,b))}));this.subCreate&&this.subCreate()};b._Canvas.prototype.prehandleEvent=function(a){a.originalEvent.changedTouches&&(a.pageX=a.originalEvent.changedTouches[0].pageX,a.pageY=a.originalEvent.changedTouches[0].pageY);a.preventDefault();a.offset=d("#"+this.id).offset();a.p=new c.Point(a.pageX-a.offset.left,a.pageY-a.offset.top)}})(ChemDoodle,ChemDoodle.featureDetection,ChemDoodle.math,ChemDoodle.monitor,ChemDoodle.structures, -jQuery,jQuery.browser,jQuery.inArray,Math,document,window); -(function(b){b._AnimatorCanvas=function(b,a,h){b&&this.create(b,a,h);this.timeout=33;return!0};b._AnimatorCanvas.prototype=new b._Canvas;b._AnimatorCanvas.prototype.startAnimation=function(){this.stopAnimation();this.lastTime=(new Date).getTime();var b=this;this.nextFrame&&(this.handle=setInterval(function(){var a=(new Date).getTime();b.nextFrame(a-b.lastTime);b.repaint();b.lastTime=a},this.timeout))};b._AnimatorCanvas.prototype.stopAnimation=function(){this.handle&&(clearInterval(this.handle),this.handle= -void 0)};b._AnimatorCanvas.prototype.isRunning=function(){return void 0!==this.handle}})(ChemDoodle); -(function(b,e){b.FileCanvas=function(a,b,c,d){a&&this.create(a,b,c);e.writeln('<br><form name="FileForm" enctype="multipart/form-data" method="POST" action="'+d+'" target="HiddenFileFrame"><input type="file" name="f" /><input type="submit" name="submitbutton" value="Show File" /></form><iframe id="HFF-'+a+'" name="HiddenFileFrame" height="0" width="0" style="display:none;" onLoad="GetMolFromFrame(\'HFF-'+a+"', "+a+')"></iframe>');this.emptyMessage="Click below to load file";this.repaint();return!0}; -b.FileCanvas.prototype=new b._Canvas})(ChemDoodle,document); -(function(b){b.HyperlinkCanvas=function(b,a,h,c,d,f){b&&this.create(b,a,h);this.urlOrFunction=c;this.color=d?d:"blue";this.size=f?f:2;this.openInNewWindow=!0;this.e=this.hoverImage=void 0;return!0};b.HyperlinkCanvas.prototype=new b._Canvas;b.HyperlinkCanvas.prototype.drawChildExtras=function(b){this.e&&(this.hoverImage?b.drawImage(this.hoverImage,0,0):(b.strokeStyle=this.color,b.lineWidth=2*this.size,b.strokeRect(0,0,this.width,this.height)))};b.HyperlinkCanvas.prototype.setHoverImage=function(b){this.hoverImage= -new Image;this.hoverImage.src=b};b.HyperlinkCanvas.prototype.click=function(){this.e=void 0;this.repaint();this.urlOrFunction instanceof Function?this.urlOrFunction():this.openInNewWindow?window.open(this.urlOrFunction):location.href=this.urlOrFunction};b.HyperlinkCanvas.prototype.mouseout=function(){this.e=void 0;this.repaint()};b.HyperlinkCanvas.prototype.mouseover=function(b){this.e=b;this.repaint()}})(ChemDoodle); -(function(b,e,a,h){b.MolGrabberCanvas=function(b,d,f){b&&this.create(b,d,f);d=[];d.push('<br><input type="text" id="');d.push(b);d.push('_query" size="32" value="" />');d.push("<br><nobr>");d.push('<select id="');d.push(b);d.push('_select">');d.push('<option value="chemexper">ChemExper');d.push('<option value="chemspider">ChemSpider');d.push('<option value="pubchem" selected>PubChem');d.push("</select>");d.push('<button id="');d.push(b);d.push('_submit">Show Molecule</button>');d.push("</nobr>"); -h.getElementById(b);a("#"+b).after(d.join(""));var e=this;a("#"+b+"_submit").click(function(){e.search()});a("#"+b+"_query").keypress(function(a){13===a.which&&e.search()});this.emptyMessage="Enter search term below";this.repaint();return!0};b.MolGrabberCanvas.prototype=new b._Canvas;b.MolGrabberCanvas.prototype.setSearchTerm=function(b){a("#"+this.id+"_query").val(b);this.search()};b.MolGrabberCanvas.prototype.search=function(){this.emptyMessage="Searching...";this.clear();var b=this;e.getMoleculeFromDatabase(a("#"+ -this.id+"_query").val(),{database:a("#"+this.id+"_select").val()},function(a){b.loadMolecule(a)})}})(ChemDoodle,ChemDoodle.iChemLabs,jQuery,document); -(function(b,e,a){var h=[],c=[1,0,0],d=[0,1,0],f=[0,0,1];b.RotatorCanvas=function(a,b,c,d){a&&this.create(a,b,c);this.rotate3D=d;this.zIncrement=this.yIncrement=this.xIncrement=a=e.PI/15;return!0};b.RotatorCanvas.prototype=new b._AnimatorCanvas;b.RotatorCanvas.prototype.nextFrame=function(b){if(0===this.molecules.length&&0===this.shapes.length)this.stopAnimation();else if(b/=1E3,this.rotate3D){a.identity(h);a.rotate(h,this.xIncrement*b,c);a.rotate(h,this.yIncrement*b,d);a.rotate(h,this.zIncrement* -b,f);for(var b=0,e=this.molecules.length;b<e;b++){for(var o=this.molecules[b],m=0,j=o.atoms.length;m<j;m++){var l=o.atoms[m],n=[l.x-this.width/2,l.y-this.height/2,l.z];a.multiplyVec3(h,n);l.x=n[0]+this.width/2;l.y=n[1]+this.height/2;l.z=n[2]}m=0;for(j=o.rings.length;m<j;m++)o.rings[m].center=o.rings[m].getCenter();this.specs.atoms_display&&this.specs.atoms_circles_2D&&o.sortAtomsByZ();this.specs.bonds_display&&this.specs.bonds_clearOverlaps_2D&&o.sortBondsByZ()}b=0;for(e=this.shapes.length;b<e;b++){o= -this.shapes[b].getPoints();m=0;for(j=o.length;m<j;m++)l=o[m],n=[l.x-this.width/2,l.y-this.height/2,0],a.multiplyVec3(h,n),l.x=n[0]+this.width/2,l.y=n[1]+this.height/2}}else this.specs.rotateAngle+=this.zIncrement*b};b.RotatorCanvas.prototype.dblclick=function(){this.isRunning()?this.stopAnimation():this.startAnimation()}})(ChemDoodle,Math,mat4); -(function(b,e){b.SlideshowCanvas=function(a,b,c){a&&this.create(a,b,c);this.frames=[];this.curIndex=0;this.timeout=5E3;this.alpha=0;this.innerHandle=void 0;this.phase=0;return!0};b.SlideshowCanvas.prototype=new b._AnimatorCanvas;b.SlideshowCanvas.prototype.drawChildExtras=function(a){var b=e.getRGB(this.specs.backgroundColor,255);a.fillStyle="rgba("+b[0]+", "+b[1]+", "+b[2]+", "+this.alpha+")";a.fillRect(0,0,this.width,this.height)};b.SlideshowCanvas.prototype.nextFrame=function(){if(0===this.frames.length)this.stopAnimation(); -else{this.phase=0;var a=this,b=1;this.innerHandle=setInterval(function(){a.alpha=b/15;a.repaint();15===b&&a.breakInnerHandle();b++},33)}};b.SlideshowCanvas.prototype.breakInnerHandle=function(){this.innerHandle&&(clearInterval(this.innerHandle),this.innerHandle=void 0);if(0===this.phase){this.curIndex++;this.curIndex>this.frames.length-1&&(this.curIndex=0);this.alpha=1;var a=this.frames[this.curIndex];this.loadContent(a.mols,a.shapes);this.phase=1;var b=this,c=1;this.innerHandle=setInterval(function(){b.alpha= -(15-c)/15;b.repaint();c===15&&b.breakInnerHandle();c++},33)}else 1===this.phase&&(this.alpha=0,this.repaint())};b.SlideshowCanvas.prototype.addFrame=function(a,b){0===this.frames.length&&this.loadContent(a,b);this.frames.push({mols:a,shapes:b})}})(ChemDoodle,ChemDoodle.math); -(function(b,e,a,h,c){b.TransformCanvas=function(a,b,c,e){a&&this.create(a,b,c);this.lastPoint=void 0;this.rotate3D=e;this.rotationMultMod=1.3;this.lastPinchScale=1;this.lastGestureRotate=0;return!0};b.TransformCanvas.prototype=new b._Canvas;b.TransformCanvas.prototype.mousedown=function(a){this.lastPoint=a.p};b.TransformCanvas.prototype.dblclick=function(){this.center();this.repaint()};b.TransformCanvas.prototype.drag=function(b){if(!this.lastPoint.multi){if(e.ALT){var f=new a.Point(b.p.x,b.p.y); -f.sub(this.lastPoint);for(var q=0,g=this.molecules.length;q<g;q++){for(var o=this.molecules[q],m=0,j=o.atoms.length;m<j;m++)o.atoms[m].add(f);o.check()}q=0;for(g=this.shapes.length;q<g;q++){o=this.shapes[q].getPoints();m=0;for(j=o.length;m<j;m++)o[m].add(f)}this.lastPoint=b.p}else if(!0===this.rotate3D){j=h.max(this.width/4,this.height/4);m=(b.p.x-this.lastPoint.x)/j*this.rotationMultMod;j=-(b.p.y-this.lastPoint.y)/j*this.rotationMultMod;f=[];c.identity(f);c.rotate(f,j,[1,0,0]);c.rotate(f,m,[0,1, -0]);q=0;for(g=this.molecules.length;q<g;q++){o=this.molecules[q];m=0;for(j=o.atoms.length;m<j;m++)q=o.atoms[m],g=[q.x-this.width/2,q.y-this.height/2,q.z],c.multiplyVec3(f,g),q.x=g[0]+this.width/2,q.y=g[1]+this.height/2,q.z=g[2];q=0;for(g=o.rings.length;q<g;q++)o.rings[q].center=o.rings[q].getCenter();this.lastPoint=b.p;this.specs.atoms_display&&this.specs.atoms_circles_2D&&o.sortAtomsByZ();this.specs.bonds_display&&this.specs.bonds_clearOverlaps_2D&&o.sortBondsByZ()}}else m=new a.Point(this.width/ -2,this.height/2),j=m.angle(this.lastPoint),this.specs.rotateAngle-=m.angle(b.p)-j,this.lastPoint=b.p;this.repaint()}};b.TransformCanvas.prototype.mousewheel=function(a,b){this.specs.scale+=b/10;0.01>this.specs.scale&&(this.specs.scale=0.01);this.repaint()};b.TransformCanvas.prototype.multitouchmove=function(b,c){if(2===c)if(this.lastPoint.multi){var e=new a.Point(b.p.x,b.p.y);e.sub(this.lastPoint);for(var g=0,h=this.molecules.length;g<h;g++){for(var m=this.molecules[g],j=0,l=m.atoms.length;j<l;j++)m.atoms[j].add(e); -m.check()}g=0;for(h=this.shapes.length;g<h;g++){m=this.shapes[g].getPoints();j=0;for(l=m.length;j<l;j++)m[j].add(e)}this.lastPoint=b.p;this.lastPoint.multi=!0;this.repaint()}else this.lastPoint=b.p,this.lastPoint.multi=!0};b.TransformCanvas.prototype.gesturechange=function(b){0!==b.originalEvent.scale-this.lastPinchScale&&(this.specs.scale*=b.originalEvent.scale/this.lastPinchScale,0.01>this.specs.scale&&(this.specs.scale=0.01),this.lastPinchScale=b.originalEvent.scale);if(0!==this.lastGestureRotate- -b.originalEvent.rotation){for(var c=(this.lastGestureRotate-b.originalEvent.rotation)/180*m.PI,e=new a.Point(this.width/2,this.height/2),g=0,h=this.molecules.length;g<h;g++){for(var m=this.molecules[g],j=0,l=m.atoms.length;j<l;j++){var n=m.atoms[j],r=e.distance(n),k=e.angle(n)+c;n.x=e.x+r*m.cos(k);n.y=e.y-r*m.sin(k)}m.check()}this.lastGestureRotate=b.originalEvent.rotation}this.repaint()};b.TransformCanvas.prototype.gestureend=function(){this.lastPinchScale=1;this.lastGestureRotate=0}})(ChemDoodle, -ChemDoodle.monitor,ChemDoodle.structures,Math,mat4);(function(b){b.ViewerCanvas=function(b,a,h){b&&this.create(b,a,h);return!0};b.ViewerCanvas.prototype=new b._Canvas})(ChemDoodle); -(function(b){b._SpectrumCanvas=function(b,a,h){b&&this.create(b,a,h);this.spectrum=void 0;this.emptyMessage="No Spectrum Loaded or Recognized";this.getMolecule=this.loadMolecule=void 0;return!0};b._SpectrumCanvas.prototype=new b._Canvas;b._SpectrumCanvas.prototype.innerRepaint=function(b){this.spectrum&&0<this.spectrum.data.length?this.spectrum.draw(b,this.specs,this.width,this.height):this.emptyMessage&&(b.fillStyle="#737683",b.textAlign="center",b.textBaseline="middle",b.font="18px Helvetica, Verdana, Arial, Sans-serif", -b.fillText(this.emptyMessage,this.width/2,this.height/2))};b._SpectrumCanvas.prototype.loadSpectrum=function(b){this.spectrum=b;this.repaint()};b._SpectrumCanvas.prototype.getSpectrum=function(){return this.spectrum};b._SpectrumCanvas.prototype.getSpectrumCoordinates=function(b,a){return spectrum.getInternalCoordinates(b,a,this.width,this.height)}})(ChemDoodle,document);(function(b){b.ObserverCanvas=function(b,a,h){b&&this.create(b,a,h);return!0};b.ObserverCanvas.prototype=new b._SpectrumCanvas})(ChemDoodle); -(function(b){b.OverlayCanvas=function(b,a,h){b&&this.create(b,a,h);this.overlaySpectra=[];return!0};b.OverlayCanvas.prototype=new b._SpectrumCanvas;b.OverlayCanvas.prototype.superRepaint=b.OverlayCanvas.prototype.innerRepaint;b.OverlayCanvas.prototype.innerRepaint=function(b){this.superRepaint(b);if(this.spectrum&&0<this.spectrum.data.length)for(var a=0,h=this.overlaySpectra.length;a<h;a++){var c=this.overlaySpectra[a];c&&0<c.data.length&&(c.minX=this.spectrum.minX,c.maxX=this.spectrum.maxX,c.drawPlot(b, -this.specs,this.width,this.height,this.spectrum.memory.offsetTop,this.spectrum.memory.offsetLeft,this.spectrum.memory.offsetBottom))}};b.OverlayCanvas.prototype.addSpectrum=function(b){this.spectrum?this.overlaySpectra.push(b):this.spectrum=b}})(ChemDoodle); -(function(b,e,a){b.PerspectiveCanvas=function(a,b,d){a&&this.create(a,b,d);this.dragRange=void 0;this.rescaleYAxisOnZoom=!0;this.lastPinchScale=1;return!0};b.PerspectiveCanvas.prototype=new b._SpectrumCanvas;b.PerspectiveCanvas.prototype.mousedown=function(a){this.dragRange=new b.structures.Point(a.p.x,a.p.x)};b.PerspectiveCanvas.prototype.mouseup=function(a){this.dragRange&&this.dragRange.x!==this.dragRange.y&&(this.dragRange.multi||(a=this.spectrum.zoom(this.dragRange.x,a.p.x,this.width,this.rescaleYAxisOnZoom), -this.rescaleYAxisOnZoom&&(this.specs.scale=a)),this.dragRange=void 0,this.repaint())};b.PerspectiveCanvas.prototype.drag=function(a){this.dragRange&&(this.dragRange.multi?this.dragRange=void 0:(e.SHIFT&&(this.spectrum.translate(a.p.x-this.dragRange.x,this.width),this.dragRange.x=a.p.x),this.dragRange.y=a.p.x),this.repaint())};b.PerspectiveCanvas.prototype.drawChildExtras=function(b){if(this.dragRange){var c=a.min(this.dragRange.x,this.dragRange.y),d=a.max(this.dragRange.x,this.dragRange.y);b.strokeStyle= -"gray";b.lineStyle=1;b.beginPath();for(b.moveTo(c,this.height/2);c<=d;c++)5>c%10?b.lineTo(c,a.round(this.height/2)):b.moveTo(c,a.round(this.height/2));b.stroke()}};b.PerspectiveCanvas.prototype.mousewheel=function(a,b){this.specs.scale+=b/10;0.01>this.specs.scale&&(this.specs.scale=0.01);this.repaint()};b.PerspectiveCanvas.prototype.dblclick=function(){this.spectrum.setup();this.specs.scale=1;this.repaint()};b.PerspectiveCanvas.prototype.multitouchmove=function(a,c){2===c&&(!this.dragRange||!this.dragRange.multi? -(this.dragRange=new b.structures.Point(a.p.x,a.p.x),this.dragRange.multi=!0):(this.spectrum.translate(a.p.x-this.dragRange.x,this.width),this.dragRange.x=a.p.x,this.dragRange.y=a.p.x,this.repaint()))};b.PerspectiveCanvas.prototype.gesturechange=function(a){this.specs.scale*=a.originalEvent.scale/this.lastPinchScale;0.01>this.specs.scale&&(this.specs.scale=0.01);this.lastPinchScale=a.originalEvent.scale;this.repaint()};b.PerspectiveCanvas.prototype.gestureend=function(){this.lastPinchScale=1}})(ChemDoodle, -ChemDoodle.monitor,Math); -(function(b,e){b.SeekerCanvas=function(a,b,c,d){a&&this.create(a,b,c);this.seekType=d;this.p=void 0;return!0};b.SeekerCanvas.prototype=new b._SpectrumCanvas;b.SeekerCanvas.prototype.superRepaint=b.SeekerCanvas.prototype.innerRepaint;b.SeekerCanvas.prototype.innerRepaint=function(a){this.superRepaint(a);if(this.spectrum&&0<this.spectrum.data.length&&this.p){var h,c;if(this.seekType===b.SeekerCanvas.SEEK_POINTER)h=this.p,c=this.spectrum.getInternalCoordinates(h.x,h.y);else if(this.seekType===b.SeekerCanvas.SEEK_PLOT|| -this.seekType===b.SeekerCanvas.SEEK_PEAK){c=this.seekType===b.SeekerCanvas.SEEK_PLOT?this.spectrum.getClosestPlotInternalCoordinates(this.p.x):this.spectrum.getClosestPeakInternalCoordinates(this.p.x);if(!c)return;h={x:this.spectrum.getTransformedX(c.x,this.specs,this.width,this.spectrum.memory.offsetLeft),y:this.spectrum.getTransformedY(c.y/100,this.specs,this.height,this.spectrum.memory.offsetBottom,this.spectrum.memory.offsetTop)}}a.fillStyle="white";a.strokeStyle=this.specs.plots_color;a.lineWidth= -this.specs.plots_width;a.beginPath();a.arc(h.x,h.y,3,0,2*e.PI,!1);a.fill();a.stroke();a.font=this.specs.getFontString(this.specs.text_font_size,this.specs.text_font_families);a.textAlign="left";a.textBaseline="bottom";c="x:"+c.x.toFixed(3)+", y:"+c.y.toFixed(3);var d=h.x+3,f=a.measureText(c).width;d+f>this.width-2&&(d-=6+f);h=h.y;0>h-this.specs.text_font_size-2&&(h+=this.specs.text_font_size);a.fillRect(d,h-this.specs.text_font_size,f,this.specs.text_font_size);a.fillStyle="black";a.fillText(c,d, -h)}};b.SeekerCanvas.prototype.mouseout=function(){this.p=void 0;this.repaint()};b.SeekerCanvas.prototype.mousemove=function(a){this.p={x:a.p.x-2,y:a.p.y-3};this.repaint()};b.SeekerCanvas.prototype.touchstart=function(a){this.mousemove(a)};b.SeekerCanvas.prototype.touchmove=function(a){this.mousemove(a)};b.SeekerCanvas.prototype.touchend=function(a){this.mouseout(a)};b.SeekerCanvas.SEEK_POINTER="pointer";b.SeekerCanvas.SEEK_PLOT="plot";b.SeekerCanvas.SEEK_PEAK="peak"})(ChemDoodle,Math); -(function(b,e,a,h,c,d,f,q,g,o,m){b._Canvas3D=function(a,b,c){a&&this.create(a,b,c);this.rotationMatrix=g.identity([]);this.translationMatrix=g.identity([]);this.lastPoint=void 0;this.emptyMessage="WebGL is Unavailable!";return!0};b._Canvas3D.prototype=new b._Canvas;b._Canvas3D.prototype.afterLoadContent=function(){for(var b=new a.Bounds,c=0,d=this.molecules.length;c<d;c++)b.expand(this.molecules[c].getBounds());this.maxDimension=f.max(b.maxX-b.minX,b.maxY-b.minY);this.translationMatrix=g.translate(g.identity([]), -[0,0,-this.maxDimension-10]);this.setupScene()};b._Canvas3D.prototype.setViewDistance=function(a){this.translationMatrix=g.translate(g.identity([]),[0,0,-a])};b._Canvas3D.prototype.repaint=function(){if(this.gl){this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT);this.gl.modelViewMatrix=g.multiply(this.translationMatrix,this.rotationMatrix,[]);this.gl.rotationMatrix=this.rotationMatrix;for(var a=0,b=this.molecules.length;a<b;a++)this.molecules[a].render(this.gl,this.specs);a=0;for(b= -this.shapes.length;a<b;a++)this.shapes[a].render(this.gl,this.specs);this.gl.flush()}};b._Canvas3D.prototype.center=function(){q.getElementById(this.id);for(var a=new h.Atom,b=0,c=this.molecules.length;b<c;b++){var d=this.molecules[b];a.add3D(d.getCenter3D())}a.x/=this.molecules.length;a.y/=this.molecules.length;b=0;for(c=this.molecules.length;b<c;b++){for(var d=this.molecules[b],f=0,e=d.atoms.length;f<e;f++)d.atoms[f].sub3D(a);if(d.chains&&d.fromJSON){f=0;for(e=d.chains.length;f<e;f++)for(var g= -d.chains[f],m=0,o=g.length;m<o;m++){var w=g[m];w.cp1.sub3D(a);w.cp2.sub3D(a);w.cp3&&(w.cp3.sub3D(a),w.cp4.sub3D(a),w.cp5.sub3D(a))}}}};b._Canvas3D.prototype.subCreate=function(){try{var a=q.getElementById(this.id);this.gl=a.getContext("webgl");this.gl||(this.gl=a.getContext("experimental-webgl"))}catch(b){}this.gl?(this.gl.viewport(0,0,this.width,this.height),this.gl.program=this.gl.createProgram(),this.gl.shader=new c.Shader,this.gl.shader.init(this.gl),this.setupScene()):this.displayMessage()}; -b._Canvas.prototype.displayMessage=function(){var a=q.getElementById(this.id);if(a.getContext&&(a=a.getContext("2d"),this.specs.backgroundColor&&(a.fillStyle=this.specs.backgroundColor,a.fillRect(0,0,this.width,this.height)),this.emptyMessage))a.fillStyle="#737683",a.textAlign="center",a.textBaseline="middle",a.font="18px Helvetica, Verdana, Arial, Sans-serif",a.fillText(this.emptyMessage,this.width/2,this.height/2)};b._Canvas3D.prototype.setupScene=function(){if(this.gl){var b=a.getRGB(this.specs.backgroundColor, -1);this.gl.clearColor(b[0],b[1],b[2],1);this.gl.clearDepth(1);this.gl.enable(this.gl.DEPTH_TEST);this.gl.depthFunc(this.gl.LEQUAL);this.gl.sphereBuffer=new c.Sphere(1,this.specs.atoms_resolution_3D,this.specs.atoms_resolution_3D);this.gl.starBuffer=new c.Star;this.gl.cylinderBuffer=new c.Cylinder(1,1,this.specs.bonds_resolution_3D);this.gl.lineBuffer=new c.Line;for(var b=0,h=this.molecules.length;b<h;b++){var q=this.molecules[b];q.unitCellVectors&&(q.unitCell=new c.UnitCell(q.unitCellVectors));if(q.chains){q.ribbons= -[];q.cartoons=[];q.tubes=[];for(var r=0,k=q.chains.length;r<k;r++){var v=q.chains[r],x=2<v.length&&d[v[2].name]&&"#BEA06E"===d[v[2].name].aminoColor;if(0<v.length&&!v[0].lineSegments){for(var t=0,y=v.length-1;t<y;t++)v[t].setup(v[t+1].cp1,x?1:this.specs.proteins_horizontalResolution);if(!x){t=1;for(y=v.length-1;t<y;t++)e.vec3AngleFrom(v[t-1].D,v[t].D)>f.PI/2&&(v[t].guidePointsSmall.reverse(),v[t].guidePointsLarge.reverse(),m.scale(v[t].D,-1))}t=1;for(y=v.length-3;t<y;t++)v[t].computeLineSegments(v[t- -1],v[t+1],v[t+2],!x,x?this.specs.nucleics_verticalResolution:this.specs.proteins_verticalResolution);v.pop();v.pop();v.pop();v.shift()}var w=a.hsl2rgb(1===k?0.5:r/k,1,0.5),w="rgb("+w[0]+","+w[1]+","+w[2]+")";v.chainColor=w;if(x)v=new c.Tube(v,this.specs.nucleics_tubeThickness,this.specs.nucleics_tubeResolution_3D),v.chainColor=w,q.tubes.push(v);else{x={front:new c.Ribbon(v,this.specs.proteins_ribbonThickness,!1),back:new c.Ribbon(v,-this.specs.proteins_ribbonThickness,!1)};x.front.chainColor=w;x.back.chainColor= -w;t=0;for(y=x.front.segments.length;t<y;t++)x.front.segments[t].chainColor=w;t=0;for(y=x.back.segments.length;t<y;t++)x.back.segments[t].chainColor=w;q.ribbons.push(x);v={front:new c.Ribbon(v,this.specs.proteins_ribbonThickness,!0),back:new c.Ribbon(v,-this.specs.proteins_ribbonThickness,!0)};v.front.chainColor=w;v.back.chainColor=w;t=0;for(y=v.front.segments.length;t<y;t++)v.front.segments[t].chainColor=w;t=0;for(y=v.back.segments.length;t<y;t++)v.back.segments[t].chainColor=w;t=0;for(y=v.front.cartoonSegments.length;t< -y;t++)v.front.cartoonSegments[t].chainColor=w;t=0;for(y=v.back.cartoonSegments.length;t<y;t++)v.back.cartoonSegments[t].chainColor=w;q.cartoons.push(v)}}}}this.gl.lighting=new c.Light(this.specs.lightDiffuseColor_3D,this.specs.lightSpecularColor_3D,this.specs.lightDirection_3D);this.gl.lighting.lightScene(this.gl);this.gl.material=new c.Material(this.gl);b=this.width/this.height;this.specs.projectionWidthHeightRatio_3D&&(b=this.specs.projectionWidthHeightRatio_3D);this.gl.projectionMatrix=this.specs.projectionPerspective_3D? -g.perspective(this.specs.projectionPerspectiveVerticalFieldOfView_3D,b,this.specs.projectionFrontCulling_3D,this.specs.projectionBackCulling_3D):g.ortho(-this.specs.projectionOrthoWidth_3D/2,this.specs.projectionOrthoWidth_3D/2,-this.specs.projectionOrthoWidth_3D/2/b,this.specs.projectionOrthoWidth_3D/2/b,this.specs.projectionFrontCulling_3D,this.specs.projectionBackCulling_3D);this.gl.uniformMatrix4fv(this.gl.getUniformLocation(this.gl.program,"u_projection_matrix"),!1,this.gl.projectionMatrix); -var u=this.gl.getUniformLocation(this.gl.program,"u_model_view_matrix"),p=this.gl.getUniformLocation(this.gl.program,"u_normal_matrix");this.gl.setMatrixUniforms=function(a){this.uniformMatrix4fv(u,false,a);a=o.transpose(g.toInverseMat3(a,[]));this.uniformMatrix3fv(p,false,a)}}};b._Canvas3D.prototype.mousedown=function(a){this.lastPoint=a.p};b._Canvas3D.prototype.rightmousedown=function(a){this.lastPoint=a.p};b._Canvas3D.prototype.drag=function(a){if(b.monitor.ALT){var c=new h.Point(a.p.x,a.p.y); -c.sub(this.lastPoint);g.translate(this.translationMatrix,[c.x/20,-c.y/20,0])}else{var d=a.p.x-this.lastPoint.x,c=a.p.y-this.lastPoint.y,d=g.rotate(g.identity([]),d*f.PI/180,[0,1,0]);g.rotate(d,c*f.PI/180,[1,0,0]);this.rotationMatrix=g.multiply(d,this.rotationMatrix)}this.lastPoint=a.p;this.repaint()};b._Canvas3D.prototype.mousewheel=function(a,b){var c=b*this.maxDimension/8;this.specs.projectionPerspective_3D?g.translate(this.translationMatrix,[0,0,c]):(this.specs.projectionOrthoWidth_3D-=c,this.setupScene()); -this.repaint()}})(ChemDoodle,ChemDoodle.extensions,ChemDoodle.math,ChemDoodle.structures,ChemDoodle.structures.d3,ChemDoodle.RESIDUE,Math,document,mat4,mat3,vec3,window); -(function(b,e,a,h){b.MolGrabberCanvas3D=function(b,d,f){b&&this.create(b,d,f);d=[];d.push('<br><input type="text" id="');d.push(b);d.push('_query" size="32" value="" />');d.push("<br><nobr>");d.push('<select id="');d.push(b);d.push('_select">');d.push('<option value="pubchem" selected>PubChem');d.push("</select>");d.push('<button id="');d.push(b);d.push('_submit">Show Molecule</button>');d.push("</nobr>");h.writeln(d.join(""));var e=this;a("#"+b+"_submit").click(function(){e.search()});a("#"+b+"_query").keypress(function(a){13=== -a.which&&e.search()});return!0};b.MolGrabberCanvas3D.prototype=new b._Canvas3D;b.MolGrabberCanvas3D.prototype.setSearchTerm=function(b){a("#"+this.id+"_query").val(b);this.search()};b.MolGrabberCanvas3D.prototype.search=function(){var b=this;e.getMoleculeFromDatabase(a("#"+this.id+"_query").val(),{database:a("#"+this.id+"_select").val(),dimension:3},function(a){b.loadMolecule(a)})}})(ChemDoodle,ChemDoodle.iChemLabs,jQuery,document); -(function(b,e){b.MovieCanvas3D=function(a,b,c){a&&this.create(a,b,c);this.timeout=50;this.frames=[];this.frameNumber=0;this.playMode=2;this.reverse=!1;return!0};b.MovieCanvas3D.PLAY_ONCE=0;b.MovieCanvas3D.PLAY_LOOP=1;b.MovieCanvas3D.PLAY_SPRING=2;b.MovieCanvas3D.prototype=new b._Canvas3D;b.MovieCanvas3D.prototype.startAnimation=b._AnimatorCanvas.prototype.startAnimation;b.MovieCanvas3D.prototype.stopAnimation=b._AnimatorCanvas.prototype.stopAnimation;b.MovieCanvas3D.prototype.isRunning=b._AnimatorCanvas.prototype.isRunning; -b.MovieCanvas3D.prototype.dblclick=b.RotatorCanvas.prototype.dblclick;b.MovieCanvas3D.prototype.nextFrame=function(){var a=this.frames[this.frameNumber];this.molecules=a.mols;this.shapes=a.shapes;2===this.playMode&&this.reverse?(this.frameNumber--,0>this.frameNumber&&(this.frameNumber=1,this.reverse=!1)):(this.frameNumber++,this.frameNumber>=this.frames.length&&(2===this.playMode?(this.frameNumber-=2,this.reverse=!0):(this.frameNumber=0,0===this.playMode&&this.stopAnimation())))};b.MovieCanvas3D.prototype.center= -function(){for(var a=new e.Atom,b=this.frames[0],c=0,d=b.mols.length;c<d;c++)a.add3D(b.mols[c].getCenter3D());a.x/=b.mols.length;a.y/=b.mols.length;b=new e.Atom;b.sub3D(a);for(var a=0,f=this.frames.length;a<f;a++)for(var q=this.frames[a],c=0,d=q.mols.length;c<d;c++)for(var g=q.mols[c],o=0,m=g.atoms.length;o<m;o++)g.atoms[o].add3D(b)};b.MovieCanvas3D.prototype.addFrame=function(a,b){this.frames.push({mols:a,shapes:b})}})(ChemDoodle,ChemDoodle.structures); -(function(b,e,a){var h=[],c=[1,0,0],d=[0,1,0],f=[0,0,1];b.RotatorCanvas3D=function(a,b,c){a&&this.create(a,b,c);this.timeout=33;this.zIncrement=this.yIncrement=this.xIncrement=a=e.PI/15;return!0};b.RotatorCanvas3D.prototype=new b._Canvas3D;b.RotatorCanvas3D.prototype.startAnimation=b._AnimatorCanvas.prototype.startAnimation;b.RotatorCanvas3D.prototype.stopAnimation=b._AnimatorCanvas.prototype.stopAnimation;b.RotatorCanvas3D.prototype.isRunning=b._AnimatorCanvas.prototype.isRunning;b.RotatorCanvas3D.prototype.dblclick= -b.RotatorCanvas.prototype.dblclick;b.RotatorCanvas3D.prototype.mousedown=void 0;b.RotatorCanvas3D.prototype.rightmousedown=void 0;b.RotatorCanvas3D.prototype.drag=void 0;b.RotatorCanvas3D.prototype.mousewheel=void 0;b.RotatorCanvas3D.prototype.nextFrame=function(b){0===this.molecules.length&&0===this.shapes.length?this.stopAnimation():(a.identity(h),b/=1E3,a.rotate(h,this.xIncrement*b,c),a.rotate(h,this.yIncrement*b,d),a.rotate(h,this.zIncrement*b,f),a.multiply(this.rotationMatrix,h))}})(ChemDoodle, -Math,mat4);(function(b){b.TransformCanvas3D=function(b,a,h){b&&this.create(b,a,h);return!0};b.TransformCanvas3D.prototype=new b._Canvas3D})(ChemDoodle);(function(b){b.ViewerCanvas3D=function(b,a,h){b&&this.create(b,a,h);return!0};b.ViewerCanvas3D.prototype=new b._Canvas3D;b.ViewerCanvas3D.prototype.mousedown=void 0;b.ViewerCanvas3D.prototype.rightmousedown=void 0;b.ViewerCanvas3D.prototype.drag=void 0;b.ViewerCanvas3D.prototype.mousewheel=void 0})(ChemDoodle); -(function(b,e,a){function h(a,b,f,e){this.element=a;this.x=b;this.y=f;this.dimension=e}b.PeriodicTableCanvas=function(a,b){this.padding=5;a&&this.create(a,18*b+2*this.padding,10*b+2*this.padding);this.getMolecule=this.loadMolecule=void 0;this.cellDimension=b?b:20;this.setupTable();this.repaint();return!0};b.PeriodicTableCanvas.prototype=new b._Canvas;b.PeriodicTableCanvas.prototype.getHoveredElement=function(){if(this.hovered)return this.hovered.element};b.PeriodicTableCanvas.prototype.innerRepaint= -function(a){for(var b=0,f=this.cells.length;b<f;b++)this.drawCell(a,this.specs,this.cells[b]);this.hovered&&this.drawCell(a,this.specs,this.hovered);this.selected&&this.drawCell(a,this.specs,this.selected)};b.PeriodicTableCanvas.prototype.setupTable=function(){this.cells=[];for(var a=this.padding,d=this.padding,f=0,e=0,g=b.SYMBOLS.length;e<g;e++){18===f&&(f=0,d+=this.cellDimension,a=this.padding);var o=b.ELEMENT[b.SYMBOLS[e]];if(2===o.atomicNumber)a+=16*this.cellDimension,f+=16;else if(5===o.atomicNumber|| -13===o.atomicNumber)a+=10*this.cellDimension,f+=10;if((58>o.atomicNumber||71<o.atomicNumber&&90>o.atomicNumber||103<o.atomicNumber)&&113>o.atomicNumber)this.cells.push(new h(o,a,d,this.cellDimension)),a+=this.cellDimension,f++}d+=2*this.cellDimension;a=3*this.cellDimension+this.padding;for(e=57;104>e;e++)if(o=b.ELEMENT[b.SYMBOLS[e]],90===o.atomicNumber&&(d+=this.cellDimension,a=3*this.cellDimension+this.padding),58<=o.atomicNumber&&71>=o.atomicNumber||90<=o.atomicNumber&&103>=o.atomicNumber)this.cells.push(new h(o, -a,d,this.cellDimension)),a+=this.cellDimension};b.PeriodicTableCanvas.prototype.drawCell=function(a,b,f){var h=a.createRadialGradient(f.x+f.dimension/3,f.y+f.dimension/3,1.5*f.dimension,f.x+f.dimension/3,f.y+f.dimension/3,f.dimension/10);h.addColorStop(0,"#000000");h.addColorStop(0.7,f.element.jmolColor);h.addColorStop(1,"#FFFFFF");a.fillStyle=h;e.contextRoundRect(a,f.x,f.y,f.dimension,f.dimension,f.dimension/8);if(f===this.hovered||f===this.selected)a.lineWidth=2,a.strokeStyle="#c10000",a.stroke(), -a.fillStyle="white";a.fill();a.font=b.getFontString(b.text_font_size,b.text_font_families);a.fillStyle=b.text_color;a.textAlign="center";a.textBaseline="middle";a.fillText(f.element.symbol,f.x+f.dimension/2,f.y+f.dimension/2)};b.PeriodicTableCanvas.prototype.click=function(){this.hovered&&(this.selected=this.hovered,this.repaint())};b.PeriodicTableCanvas.prototype.mousemove=function(b){var d=b.p.x,b=b.p.y;this.hovered=void 0;for(var f=0,e=this.cells.length;f<e;f++){var g=this.cells[f];if(a.isBetween(d, -g.x,g.x+g.dimension)&&a.isBetween(b,g.y,g.y+g.dimension)){this.hovered=g;break}}this.repaint()};b.PeriodicTableCanvas.prototype.mouseout=function(){this.hovered=void 0;this.repaint()}})(ChemDoodle,ChemDoodle.extensions,ChemDoodle.math,document);(function(b,e){b._Layout=function(){return!0};b._Layout.prototype.layout=function(){this.innerLayout&&this.innerLayout()};b._Layout.prototype.create=function(a){this.name=a;this.specs=new e.VisualSpecifications}})(ChemDoodle,ChemDoodle.structures); -(function(b,e,a){b.SimpleReactionLayout=function(a){this.reactants=[];this.products=[];this.textBelow=this.textAbove=void 0;this.arrow="→";this.plus="+";this.create(a);return!0};b.SimpleReactionLayout.prototype=new b._Layout;b.SimpleReactionLayout.prototype.addReactant=function(a){this.reactants.push(a)};b.SimpleReactionLayout.prototype.addProduct=function(a){this.products.push(a)};b.SimpleReactionLayout.prototype.innerLayout=function(){var b=[];b.push("<table><tr>");for(var c=0,d=this.reactants.length;c< -d;c++){0<c&&(b.push("<td>"),b.push('<span style="font-size:25px;">'),b.push(this.plus),b.push("</span></td>"));b.push("<td>");var f=this.reactants[c].getDimension();b.push('<canvas class="ChemDoodleWebComponent" id="');b.push(this.name);b.push("_reactant");b.push(c);b.push('" width="');b.push(f.x+60);b.push('" height="');b.push(f.y+60);b.push('"></canvas>');b.push("</td>")}b.push("<td>");b.push("<table>");b.push("<tr><td>");this.textAbove?(b.push("<center>"),b.push(this.textAbove),b.push("</center>")): -b.push(" ");b.push("</td></tr>");b.push("<tr><td><center>");b.push('<span style="font-size:25px;">');b.push(this.arrow);b.push("</span></center></td></tr>");b.push("<tr><td>");this.textBelow?(b.push("<center>"),b.push(this.textBelow),b.push("</center>")):b.push(" ");b.push("</td></tr>");b.push("</table>");b.push("</td>");c=0;for(d=this.products.length;c<d;c++)0<c&&(b.push("<td>"),b.push('<span style="font-size:25px;">'),b.push(this.plus),b.push("</td>")),b.push("<td>"),f=this.products[c].getDimension(), -b.push('<canvas class="ChemDoodleWebComponent" id="'),b.push(this.name),b.push("_product"),b.push(c),b.push('" width="'),b.push(f.x+60),b.push('" height="'),b.push(f.y+60),b.push('"></canvas>'),b.push("</td>");b.push("</tr></table>");a.getElementById(this.name)?e("#"+this.name).append(b.join("")):a.writeln(b.join(""));c=0;for(d=this.reactants.length;c<d;c++)b=new ChemDoodle.ViewerCanvas(this.name+"_reactant"+c),this.specs.backgroundColor||e("#"+this.name+"_reactant"+c).css("border","0px"),b.specs= -this.specs,b.loadMolecule(this.reactants[c]);c=0;for(d=this.products.length;c<d;c++)b=new ChemDoodle.ViewerCanvas(this.name+"_product"+c),this.specs.backgroundColor||e("#"+this.name+"_product"+c).css("border","0px"),b.specs=this.specs,b.loadMolecule(this.products[c])}})(ChemDoodle,jQuery,document);(function(b,e,a){b.png={};b.png.create=function(b){a.open(e.getElementById(b.id).toDataURL("image/png"))}})(ChemDoodle.io,document,window); -(function(b,e){b.file={};b.file.content=function(a,b){e.get(a,"",b)}})(ChemDoodle.io,jQuery); -(function(b,e,a,h,c){e.SERVER_URL="http://ichemlabs.cloud.chemdoodle.com/icl_cdc_v050000/WebHQ";e.inRelay=!1;e.asynchronous=!0;e.INFO={userAgent:navigator.userAgent,v_cwc:b.getVersion(),v_jQuery:c.version,v_jQuery_ui:c.ui?c.ui.version:"N/A"};var d=new a.JSONInterpreter;e._contactServer=function(a,b,d,h,m){this.inRelay?alert("Already connecting to the server, please wait for the first request to finish."):(e.inRelay=!0,c.ajax({dataType:"text",type:"POST",data:JSON.stringify({call:a,content:b,options:d, -info:e.INFO}),url:this.SERVER_URL,success:function(a){e.inRelay=!1;a=JSON.parse(a);a.message&&alert(a.message);h&&a.content&&!a.stop&&h(a.content);a.stop&&m&&m()},error:function(){e.inRelay=!1;alert("Call failed. Please try again. If you continue to see this message, please contact iChemLabs customer support.");m&&m()},xhrFields:{withCredentials:!0},async:e.asynchronous}))};e.authenticate=function(a,b,c,d){this._contactServer("authenticate",{credential:a},b,function(a){c(a)},d)};e.calculate=function(a, -b,c,e){this._contactServer("calculate",{mol:d.molTo(a)},b,function(a){c(a)},e)};e.generateImage=function(a,b,c,e){this._contactServer("generateImage",{mol:d.molTo(a)},b,function(a){c(a.link)},e)};e.getAd=function(a,b){this._contactServer("getAd",{},{},function(b){a(b.image_url,b.target_url)},b)};e.getMoleculeFromContent=function(a,b,c,e){this._contactServer("getMoleculeFromContent",{content:a},b,function(a){for(var b=!1,f=0,e=a.mol.a.length;f<e;f++)if(0!==a.mol.a[f].z){b=!0;break}if(b){f=0;for(e= -a.mol.a.length;f<e;f++)a.mol.a[f].x/=20,a.mol.a[f].y/=20,a.mol.a[f].z/=20}c(d.molFrom(a.mol))},e)};e.getMoleculeFromDatabase=function(a,b,c,e){this._contactServer("getMoleculeFromDatabase",{query:a},b,function(a){if(3===b.dimension)for(var f=0,e=a.mol.a.length;f<e;f++)a.mol.a[f].x/=20,a.mol.a[f].y/=-20,a.mol.a[f].z/=20;c(d.molFrom(a.mol))},e)};e.getOptimizedPDBStructure=function(a,b,c,e){this._contactServer("getOptimizedPDBStructure",{id:a},b,function(a){var b;b=a.mol?d.molFrom(a.mol):new h.Molecule; -b.chains=d.chainsFrom(a.ribbons);b.fromJSON=!0;c(b)},e)};e.getZeoliteFromIZA=function(a,b,c,d){this._contactServer("getZeoliteFromIZA",{query:a},b,function(a){c(ChemDoodle.readCIF(a.cif,b.xSuper,b.ySuper,b.zSuper))},d)};e.isGraphIsomorphism=function(a,b,c,e,h){this._contactServer("isGraphIsomorphism",{arrow:d.molTo(a),target:d.molTo(b)},c,function(a){e(a.value)},h)};e.isSubgraphIsomorphism=function(a,b,c,e,h){this._contactServer("isSubgraphIsomorphism",{arrow:d.molTo(a),target:d.molTo(b)},c,function(a){e(a.value)}, -h)};e.kekulize=function(a,b,c,e){this._contactServer("kekulize",{mol:d.molTo(a)},b,function(a){c(d.molFrom(a.mol))},e)};e.optimize=function(a,b,c,e){this._contactServer("optimize",{mol:d.molTo(a)},b,function(e){e=d.molFrom(e.mol);if(2===b.dimension){for(var h=0,l=e.atoms.length;h<l;h++)a.atoms[h].x=e.atoms[h].x,a.atoms[h].y=e.atoms[h].y;c()}else if(3===b.dimension){h=0;for(l=e.atoms.length;h<l;h++)e.atoms[h].x/=20,e.atoms[h].y/=-20,e.atoms[h].z/=20;c(e)}},e)};e.readIUPACName=function(a,b,c,e){this._contactServer("readIUPACName", -{iupac:a},b,function(a){c(d.molFrom(a.mol))},e)};e.readSMILES=function(a,b,c,e){this._contactServer("readSMILES",{smiles:a},b,function(a){c(d.molFrom(a.mol))},e)};e.saveFile=function(a,b,c,e){this._contactServer("saveFile",{mol:d.molTo(a)},b,function(a){c(a.link)},e)};e.simulate13CNMR=function(a,c,e,h){c.nucleus="C";c.isotope=13;this._contactServer("simulateNMR",{mol:d.molTo(a)},c,function(a){e(b.readJCAMP(a.jcamp))},h)};e.simulate1HNMR=function(a,c,e,h){c.nucleus="H";c.isotope=1;this._contactServer("simulateNMR", -{mol:d.molTo(a)},c,function(a){e(b.readJCAMP(a.jcamp))},h)};e.simulateMassParentPeak=function(a,c,e,h){this._contactServer("simulateMassParentPeak",{mol:d.molTo(a)},c,function(a){e(b.readJCAMP(a.jcamp))},h)};e.writeSMILES=function(a,b,c,e){this._contactServer("writeSMILES",{mol:d.molTo(a)},b,function(a){c(a.smiles)},e)}})(ChemDoodle,ChemDoodle.iChemLabs,ChemDoodle.io,ChemDoodle.structures,jQuery); +skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};g.angleBetweenLargest=function(e){if(0===e.length)return{angle:0,largest:2*a.PI};if(1===e.length)return{angle:e[0]+a.PI,largest:2*a.PI};for(var o=0,d=0,k=0,f=e.length-1;k<f;k++){var g=e[k+1]-e[k]; +g>o&&(o=g,d=(e[k+1]+e[k])/2)}k=e[0]+2*a.PI-e[e.length-1];k>o&&(d=e[0]-k/2,o=k,0>d&&(d+=2*a.PI));return{angle:d,largest:o}};g.isBetween=function(a,o,d){if(o>d){var k=o;o=d;d=k}return a>=o&&a<=d};g.getRGB=function(a,o){var d=[0,0,0];f[a.toLowerCase()]&&(a=f[a.toLowerCase()]);if("#"===a.charAt(0))return 4===a.length&&(a="#"+a.charAt(1)+a.charAt(1)+a.charAt(2)+a.charAt(2)+a.charAt(3)+a.charAt(3)),[parseInt(a.substring(1,3),16)/255*o,parseInt(a.substring(3,5),16)/255*o,parseInt(a.substring(5,7),16)/255* +o];if(c.stringStartsWith(a,"rgb")){var k=a.replace(/rgb\(|\)/g,"").split(",");return 3!==k.length?d:[parseInt(k[0])/255*o,parseInt(k[1])/255*o,parseInt(k[2])/255*o]}return d};g.distanceFromPointToLineInclusive=function(e,o,d){var k=o.distance(d);d=o.angle(d);d=a.PI/2-d;d=o.angle(e)+d;e=o.distance(e);e=new b.Point(e*a.cos(d),-e*a.sin(d));return g.isBetween(-e.y,0,k)?a.abs(e.x):-1};g.calculateDistanceInterior=function(e,o,d){if(this.isBetween(o.x,d.x,d.x+d.w)&&this.isBetween(o.y,d.y,d.y+d.w))return e.distance(o); +var k=[];k.push({x1:d.x,y1:d.y,x2:d.x+d.w,y2:d.y});k.push({x1:d.x,y1:d.y+d.h,x2:d.x+d.w,y2:d.y+d.h});k.push({x1:d.x,y1:d.y,x2:d.x,y2:d.y+d.h});k.push({x1:d.x+d.w,y1:d.y,x2:d.x+d.w,y2:d.y+d.h});d=[];for(var f=0;4>f;f++){var g=k[f];(g=this.intersectLines(o.x,o.y,e.x,e.y,g.x1,g.y1,g.x2,g.y2))&&d.push(g)}if(0===d.length)return 0;f=o=0;for(k=d.length;f<k;f++){var g=d[f],b=e.x-g.x,g=e.y-g.y;o=a.max(o,a.sqrt(b*b+g*g))}return o};g.intersectLines=function(a,f,d,k,g,b,h,c){d-=a;k-=f;h-=g;c-=b;var m=k*h-d*c; +if(0===m)return!1;h=(c*(a-g)-h*(f-b))/m;g=(k*(a-g)-d*(f-b))/m;return 0<=g&&1>=g&&0<=h&&1>=h?{x:a+h*d,y:f+h*k}:!1};g.hsl2rgb=function(a,f,d){var k=function(a,d,k){0>k?k+=1:1<k&&(k-=1);return k<1/6?a+6*(d-a)*k:0.5>k?d:k<2/3?a+6*(d-a)*(2/3-k):a};if(0===f)d=f=a=d;else{var g=0.5>d?d*(1+f):d+f-d*f,b=2*d-g;d=k(b,g,a+1/3);f=k(b,g,a);a=k(b,g,a-1/3)}return[255*d,255*f,255*a]};g.isPointInPoly=function(a,f){for(var d=!1,k=-1,g=a.length,b=g-1;++k<g;b=k)(a[k].y<=f.y&&f.y<a[b].y||a[b].y<=f.y&&f.y<a[k].y)&&f.x<(a[b].x- +a[k].x)*(f.y-a[k].y)/(a[b].y-a[k].y)+a[k].x&&(d=!d);return d};return g}(ChemDoodle.extensions,ChemDoodle.structures,Math); +(function(c,b){c.Bounds=function(){};var a=c.Bounds.prototype;a.minX=a.minY=a.minZ=Infinity;a.maxX=a.maxY=a.maxZ=-Infinity;a.expand=function(a,f,e,o){a instanceof c.Bounds?(this.minX=b.min(this.minX,a.minX),this.minY=b.min(this.minY,a.minY),this.maxX=b.max(this.maxX,a.maxX),this.maxY=b.max(this.maxY,a.maxY),Infinity!==a.maxZ&&(this.minZ=b.min(this.minZ,a.minZ),this.maxZ=b.max(this.maxZ,a.maxZ))):(this.minX=b.min(this.minX,a),this.maxX=b.max(this.maxX,a),this.minY=b.min(this.minY,f),this.maxY=b.max(this.maxY, +f),void 0!==e&&void 0!==o&&(this.minX=b.min(this.minX,e),this.maxX=b.max(this.maxX,e),this.minY=b.min(this.minY,o),this.maxY=b.max(this.maxY,o)))};a.expand3D=function(a,f,e,o,d,k){this.minX=b.min(this.minX,a);this.maxX=b.max(this.maxX,a);this.minY=b.min(this.minY,f);this.maxY=b.max(this.maxY,f);this.minZ=b.min(this.minZ,e);this.maxZ=b.max(this.maxZ,e);void 0!==o&&(void 0!==d&&void 0!==k)&&(this.minX=b.min(this.minX,o),this.maxX=b.max(this.maxX,o),this.minY=b.min(this.minY,d),this.maxY=b.max(this.maxY, +d),this.minZ=b.min(this.minZ,k),this.maxZ=b.max(this.maxZ,k))}})(ChemDoodle.math,Math); +(function(){var c={subtract:function(a,d){return{x:a.x-d.x,y:a.y-d.y}},dotProduct:function(a,d){return a.x*d.x+a.y*d.y},square:function(a){return Math.sqrt(a.x*a.x+a.y*a.y)},scale:function(a,d){return{x:a.x*d,y:a.y*d}}},b=Math.pow(2,-65),a=function(a,d){for(var k=[],e=d.length-1,o=2*e-1,b=[],v=[],q=[],r=[],w=[[1,0.6,0.3,0.1],[0.4,0.6,0.6,0.4],[0.1,0.3,0.6,1]],p=0;p<=e;p++)b[p]=c.subtract(d[p],a);for(p=0;p<=e-1;p++)v[p]=c.subtract(d[p+1],d[p]),v[p]=c.scale(v[p],3);for(p=0;p<=e-1;p++)for(var y=0;y<= +e;y++)q[p]||(q[p]=[]),q[p][y]=c.dotProduct(v[p],b[y]);for(p=0;p<=o;p++)r[p]||(r[p]=[]),r[p].y=0,r[p].x=parseFloat(p)/o;o=e-1;for(b=0;b<=e+o;b++){p=Math.max(0,b-o);for(v=Math.min(b,e);p<=v;p++)y=b-p,r[p+y].y+=q[y][p]*w[y][p]}e=d.length-1;r=g(r,2*e-1,k,0);o=c.subtract(a,d[0]);q=c.square(o);for(p=w=0;p<r;p++)o=c.subtract(a,f(d,e,k[p],null,null)),o=c.square(o),o<q&&(q=o,w=k[p]);o=c.subtract(a,d[e]);o=c.square(o);o<q&&(q=o,w=1);return{location:w,distance:q}},g=function(a,d,k,e){var o=[],c=[],v=[],q=[], +r=0,w,p;p=0==a[0].y?0:0<a[0].y?1:-1;for(var y=1;y<=d;y++)w=0==a[y].y?0:0<a[y].y?1:-1,w!=p&&r++,p=w;switch(r){case 0:return 0;case 1:if(64<=e)return k[0]=(a[0].x+a[d].x)/2,1;var z,x,A,r=a[0].y-a[d].y;w=a[d].x-a[0].x;p=a[0].x*a[d].y-a[d].x*a[0].y;y=z=0;for(x=1;x<d;x++)A=r*a[x].x+w*a[x].y+p,A>z?z=A:A<y&&(y=A);A=w;x=0*A-1*r;z=(1*(p-z)-0*A)*(1/x);A=w;x=0*A-1*r;r=(1*(p-y)-0*A)*(1/x);w=Math.min(z,r);if(Math.max(z,r)-w<b)return v=a[d].x-a[0].x,q=a[d].y-a[0].y,k[0]=0+1*(v*(a[0].y-0)-q*(a[0].x-0))*(1/(0*v- +1*q)),1}f(a,d,0.5,o,c);a=g(o,d,v,e+1);d=g(c,d,q,e+1);for(e=0;e<a;e++)k[e]=v[e];for(e=0;e<d;e++)k[e+a]=q[e];return a+d},f=function(a,d,k,e,f){for(var o=[[]],g=0;g<=d;g++)o[0][g]=a[g];for(a=1;a<=d;a++)for(g=0;g<=d-a;g++)o[a]||(o[a]=[]),o[a][g]||(o[a][g]={}),o[a][g].x=(1-k)*o[a-1][g].x+k*o[a-1][g+1].x,o[a][g].y=(1-k)*o[a-1][g].y+k*o[a-1][g+1].y;if(null!=e)for(g=0;g<=d;g++)e[g]=o[g][0];if(null!=f)for(g=0;g<=d;g++)f[g]=o[d-g][g];return o[d][0]},e={},o=function(a,d){var k,f=a.length-1;k=e[f];if(!k){k=[]; +var g=function(a){return function(){return a}},o=function(){return function(a){return a}},b=function(){return function(a){return 1-a}},c=function(a){return function(d){for(var k=1,e=0;e<a.length;e++)k*=a[e](d);return k}};k.push(new function(){return function(a){return Math.pow(a,f)}});for(var v=1;v<f;v++){for(var w=[new g(f)],p=0;p<f-v;p++)w.push(new o);for(p=0;p<v;p++)w.push(new b);k.push(new c(w))}k.push(new function(){return function(a){return Math.pow(1-a,f)}});e[f]=k}for(b=o=g=0;b<a.length;b++)g+= +a[b].x*k[b](d),o+=a[b].y*k[b](d);return{x:g,y:o}},d=function(a,d){return Math.sqrt(Math.pow(a.x-d.x,2)+Math.pow(a.y-d.y,2))},k=function(a,k,e){for(var f=o(a,k),g=0,b=0<e?1:-1,c=null;g<Math.abs(e);)k+=0.005*b,c=o(a,k),g+=d(c,f),f=c;return{point:c,location:k}},v=function(a,d){var k=o(a,d),e=o(a.slice(0,a.length-1),d),f=e.y-k.y,k=e.x-k.x;return 0==f?Infinity:Math.atan(f/k)};ChemDoodle.math.jsBezier={distanceFromCurve:a,gradientAtPoint:v,gradientAtPointAlongCurveFrom:function(a,d,e){d=k(a,d,e);1<d.location&& +(d.location=1);0>d.location&&(d.location=0);return v(a,d.location)},nearestPointOnCurve:function(d,k){var e=a(d,k);return{point:f(k,k.length-1,e.location,null,null),location:e.location}},pointOnCurve:o,pointAlongCurveFrom:function(a,d,e){return k(a,d,e).point},perpendicularToCurveAt:function(a,d,e,f){d=k(a,d,null==f?0:f);a=v(a,d.location);f=Math.atan(-1/a);a=e/2*Math.sin(f);e=e/2*Math.cos(f);return[{x:d.point.x+e,y:d.point.y+a},{x:d.point.x-e,y:d.point.y-a}]},locationAlongCurveFrom:function(a,d,e){return k(a, +d,e).location},getLength:function(a){for(var k=o(a,0),e=0,f=0,g=null;1>f;)f+=0.005,g=o(a,f),e+=d(g,k),k=g;return e}}})(ChemDoodle.math); +ChemDoodle.featureDetection=function(c,b,a,g){var f={supports_canvas:function(){return!!a.createElement("canvas").getContext},supports_canvas_text:function(){return!f.supports_canvas()?!1:"function"===typeof a.createElement("canvas").getContext("2d").fillText},supports_webgl:function(){var e=a.createElement("canvas");try{if(e.getContext("webgl")||e.getContext("experimental-webgl"))return!0}catch(f){}return!1},supports_xhr2:function(){return b.support.cors},supports_touch:function(){return"ontouchstart"in +g},supports_gesture:function(){return"ongesturestart"in g}};return f}(ChemDoodle.iChemLabs,jQuery,document,window);ChemDoodle.SYMBOLS="H He Li Be B C N O F Ne Na Mg Al Si P S Cl Ar K Ca Sc Ti V Cr Mn Fe Co Ni Cu Zn Ga Ge As Se Br Kr Rb Sr Y Zr Nb Mo Tc Ru Rh Pd Ag Cd In Sn Sb Te I Xe Cs Ba La Ce Pr Nd Pm Sm Eu Gd Tb Dy Ho Er Tm Yb Lu Hf Ta W Re Os Ir Pt Au Hg Tl Pb Bi Po At Rn Fr Ra Ac Th Pa U Np Pu Am Cm Bk Cf Es Fm Md No Lr Rf Db Sg Bh Hs Mt Ds Rg Cn Uut Uuq Uup Uuh Uus Uuo".split(" "); +ChemDoodle.ELEMENT=function(c){function b(a,f,d){this.symbol=a;this.name=f;this.atomicNumber=d}var a=[];a.H=new b("H","Hydrogen",1);a.He=new b("He","Helium",2);a.Li=new b("Li","Lithium",3);a.Be=new b("Be","Beryllium",4);a.B=new b("B","Boron",5);a.C=new b("C","Carbon",6);a.N=new b("N","Nitrogen",7);a.O=new b("O","Oxygen",8);a.F=new b("F","Fluorine",9);a.Ne=new b("Ne","Neon",10);a.Na=new b("Na","Sodium",11);a.Mg=new b("Mg","Magnesium",12);a.Al=new b("Al","Aluminum",13);a.Si=new b("Si","Silicon",14); +a.P=new b("P","Phosphorus",15);a.S=new b("S","Sulfur",16);a.Cl=new b("Cl","Chlorine",17);a.Ar=new b("Ar","Argon",18);a.K=new b("K","Potassium",19);a.Ca=new b("Ca","Calcium",20);a.Sc=new b("Sc","Scandium",21);a.Ti=new b("Ti","Titanium",22);a.V=new b("V","Vanadium",23);a.Cr=new b("Cr","Chromium",24);a.Mn=new b("Mn","Manganese",25);a.Fe=new b("Fe","Iron",26);a.Co=new b("Co","Cobalt",27);a.Ni=new b("Ni","Nickel",28);a.Cu=new b("Cu","Copper",29);a.Zn=new b("Zn","Zinc",30);a.Ga=new b("Ga","Gallium",31); +a.Ge=new b("Ge","Germanium",32);a.As=new b("As","Arsenic",33);a.Se=new b("Se","Selenium",34);a.Br=new b("Br","Bromine",35);a.Kr=new b("Kr","Krypton",36);a.Rb=new b("Rb","Rubidium",37);a.Sr=new b("Sr","Strontium",38);a.Y=new b("Y","Yttrium",39);a.Zr=new b("Zr","Zirconium",40);a.Nb=new b("Nb","Niobium",41);a.Mo=new b("Mo","Molybdenum",42);a.Tc=new b("Tc","Technetium",43);a.Ru=new b("Ru","Ruthenium",44);a.Rh=new b("Rh","Rhodium",45);a.Pd=new b("Pd","Palladium",46);a.Ag=new b("Ag","Silver",47);a.Cd=new b("Cd", +"Cadmium",48);a.In=new b("In","Indium",49);a.Sn=new b("Sn","Tin",50);a.Sb=new b("Sb","Antimony",51);a.Te=new b("Te","Tellurium",52);a.I=new b("I","Iodine",53);a.Xe=new b("Xe","Xenon",54);a.Cs=new b("Cs","Cesium",55);a.Ba=new b("Ba","Barium",56);a.La=new b("La","Lanthanum",57);a.Ce=new b("Ce","Cerium",58);a.Pr=new b("Pr","Praseodymium",59);a.Nd=new b("Nd","Neodymium",60);a.Pm=new b("Pm","Promethium",61);a.Sm=new b("Sm","Samarium",62);a.Eu=new b("Eu","Europium",63);a.Gd=new b("Gd","Gadolinium",64); +a.Tb=new b("Tb","Terbium",65);a.Dy=new b("Dy","Dysprosium",66);a.Ho=new b("Ho","Holmium",67);a.Er=new b("Er","Erbium",68);a.Tm=new b("Tm","Thulium",69);a.Yb=new b("Yb","Ytterbium",70);a.Lu=new b("Lu","Lutetium",71);a.Hf=new b("Hf","Hafnium",72);a.Ta=new b("Ta","Tantalum",73);a.W=new b("W","Tungsten",74);a.Re=new b("Re","Rhenium",75);a.Os=new b("Os","Osmium",76);a.Ir=new b("Ir","Iridium",77);a.Pt=new b("Pt","Platinum",78);a.Au=new b("Au","Gold",79);a.Hg=new b("Hg","Mercury",80);a.Tl=new b("Tl","Thallium", +81);a.Pb=new b("Pb","Lead",82);a.Bi=new b("Bi","Bismuth",83);a.Po=new b("Po","Polonium",84);a.At=new b("At","Astatine",85);a.Rn=new b("Rn","Radon",86);a.Fr=new b("Fr","Francium",87);a.Ra=new b("Ra","Radium",88);a.Ac=new b("Ac","Actinium",89);a.Th=new b("Th","Thorium",90);a.Pa=new b("Pa","Protactinium",91);a.U=new b("U","Uranium",92);a.Np=new b("Np","Neptunium",93);a.Pu=new b("Pu","Plutonium",94);a.Am=new b("Am","Americium",95);a.Cm=new b("Cm","Curium",96);a.Bk=new b("Bk","Berkelium",97);a.Cf=new b("Cf", +"Californium",98);a.Es=new b("Es","Einsteinium",99);a.Fm=new b("Fm","Fermium",100);a.Md=new b("Md","Mendelevium",101);a.No=new b("No","Nobelium",102);a.Lr=new b("Lr","Lawrencium",103);a.Rf=new b("Rf","Rutherfordium",104);a.Db=new b("Db","Dubnium",105);a.Sg=new b("Sg","Seaborgium",106);a.Bh=new b("Bh","Bohrium",107);a.Hs=new b("Hs","Hassium",108);a.Mt=new b("Mt","Meitnerium",109);a.Ds=new b("Ds","Darmstadtium",110);a.Rg=new b("Rg","Roentgenium",111);a.Cn=new b("Cn","Copernicium",112);a.Uut=new b("Uut", +"Ununtrium",113);a.Uuq=new b("Uuq","Ununquadium",114);a.Uup=new b("Uup","Ununpentium",115);a.Uuh=new b("Uuh","Ununhexium",116);a.Uus=new b("Uus","Ununseptium",117);a.Uuo=new b("Uuo","Ununoctium",118);a.B.addH=!0;a.C.addH=!0;a.N.addH=!0;a.O.addH=!0;a.F.addH=!0;a.Si.addH=!0;a.P.addH=!0;a.S.addH=!0;a.Cl.addH=!0;a.As.addH=!0;a.Se.addH=!0;a.Br.addH=!0;a.Te.addH=!0;a.I.addH=!0;a.At.addH=!0;a.H.jmolColor="#FFFFFF";a.He.jmolColor="#D9FFFF";a.Li.jmolColor="#CC80FF";a.Be.jmolColor="#C2FF00";a.B.jmolColor="#FFB5B5"; +a.C.jmolColor="#909090";a.N.jmolColor="#3050F8";a.O.jmolColor="#FF0D0D";a.F.jmolColor="#90E050";a.Ne.jmolColor="#B3E3F5";a.Na.jmolColor="#AB5CF2";a.Mg.jmolColor="#8AFF00";a.Al.jmolColor="#BFA6A6";a.Si.jmolColor="#F0C8A0";a.P.jmolColor="#FF8000";a.S.jmolColor="#FFFF30";a.Cl.jmolColor="#1FF01F";a.Ar.jmolColor="#80D1E3";a.K.jmolColor="#8F40D4";a.Ca.jmolColor="#3DFF00";a.Sc.jmolColor="#E6E6E6";a.Ti.jmolColor="#BFC2C7";a.V.jmolColor="#A6A6AB";a.Cr.jmolColor="#8A99C7";a.Mn.jmolColor="#9C7AC7";a.Fe.jmolColor= +"#E06633";a.Co.jmolColor="#F090A0";a.Ni.jmolColor="#50D050";a.Cu.jmolColor="#C88033";a.Zn.jmolColor="#7D80B0";a.Ga.jmolColor="#C28F8F";a.Ge.jmolColor="#668F8F";a.As.jmolColor="#BD80E3";a.Se.jmolColor="#FFA100";a.Br.jmolColor="#A62929";a.Kr.jmolColor="#5CB8D1";a.Rb.jmolColor="#702EB0";a.Sr.jmolColor="#00FF00";a.Y.jmolColor="#94FFFF";a.Zr.jmolColor="#94E0E0";a.Nb.jmolColor="#73C2C9";a.Mo.jmolColor="#54B5B5";a.Tc.jmolColor="#3B9E9E";a.Ru.jmolColor="#248F8F";a.Rh.jmolColor="#0A7D8C";a.Pd.jmolColor="#006985"; +a.Ag.jmolColor="#C0C0C0";a.Cd.jmolColor="#FFD98F";a.In.jmolColor="#A67573";a.Sn.jmolColor="#668080";a.Sb.jmolColor="#9E63B5";a.Te.jmolColor="#D47A00";a.I.jmolColor="#940094";a.Xe.jmolColor="#429EB0";a.Cs.jmolColor="#57178F";a.Ba.jmolColor="#00C900";a.La.jmolColor="#70D4FF";a.Ce.jmolColor="#FFFFC7";a.Pr.jmolColor="#D9FFC7";a.Nd.jmolColor="#C7FFC7";a.Pm.jmolColor="#A3FFC7";a.Sm.jmolColor="#8FFFC7";a.Eu.jmolColor="#61FFC7";a.Gd.jmolColor="#45FFC7";a.Tb.jmolColor="#30FFC7";a.Dy.jmolColor="#1FFFC7";a.Ho.jmolColor= +"#00FF9C";a.Er.jmolColor="#00E675";a.Tm.jmolColor="#00D452";a.Yb.jmolColor="#00BF38";a.Lu.jmolColor="#00AB24";a.Hf.jmolColor="#4DC2FF";a.Ta.jmolColor="#4DA6FF";a.W.jmolColor="#2194D6";a.Re.jmolColor="#267DAB";a.Os.jmolColor="#266696";a.Ir.jmolColor="#175487";a.Pt.jmolColor="#D0D0E0";a.Au.jmolColor="#FFD123";a.Hg.jmolColor="#B8B8D0";a.Tl.jmolColor="#A6544D";a.Pb.jmolColor="#575961";a.Bi.jmolColor="#9E4FB5";a.Po.jmolColor="#AB5C00";a.At.jmolColor="#754F45";a.Rn.jmolColor="#428296";a.Fr.jmolColor="#420066"; +a.Ra.jmolColor="#007D00";a.Ac.jmolColor="#70ABFA";a.Th.jmolColor="#00BAFF";a.Pa.jmolColor="#00A1FF";a.U.jmolColor="#008FFF";a.Np.jmolColor="#0080FF";a.Pu.jmolColor="#006BFF";a.Am.jmolColor="#545CF2";a.Cm.jmolColor="#785CE3";a.Bk.jmolColor="#8A4FE3";a.Cf.jmolColor="#A136D4";a.Es.jmolColor="#B31FD4";a.Fm.jmolColor="#B31FBA";a.Md.jmolColor="#B30DA6";a.No.jmolColor="#BD0D87";a.Lr.jmolColor="#C70066";a.Rf.jmolColor="#CC0059";a.Db.jmolColor="#D1004F";a.Sg.jmolColor="#D90045";a.Bh.jmolColor="#E00038";a.Hs.jmolColor= +"#E6002E";a.Mt.jmolColor="#EB0026";a.Ds.jmolColor="#000000";a.Rg.jmolColor="#000000";a.Cn.jmolColor="#000000";a.Uut.jmolColor="#000000";a.Uuq.jmolColor="#000000";a.Uup.jmolColor="#000000";a.Uuh.jmolColor="#000000";a.Uus.jmolColor="#000000";a.Uuo.jmolColor="#000000";for(var g=0,f=c.length;g<f;g++)a[c[g]].pymolColor=a[c[g]].jmolColor;a.H.pymolColor="#E6E6E6";a.C.pymolColor="#33FF33";a.N.pymolColor="#3333FF";a.O.pymolColor="#FF4D4D";a.F.pymolColor="#B3FFFF";a.S.pymolColor="#E6C640";a.H.covalentRadius= +0.31;a.He.covalentRadius=0.28;a.Li.covalentRadius=1.28;a.Be.covalentRadius=0.96;a.B.covalentRadius=0.84;a.C.covalentRadius=0.76;a.N.covalentRadius=0.71;a.O.covalentRadius=0.66;a.F.covalentRadius=0.57;a.Ne.covalentRadius=0.58;a.Na.covalentRadius=1.66;a.Mg.covalentRadius=1.41;a.Al.covalentRadius=1.21;a.Si.covalentRadius=1.11;a.P.covalentRadius=1.07;a.S.covalentRadius=1.05;a.Cl.covalentRadius=1.02;a.Ar.covalentRadius=1.06;a.K.covalentRadius=2.03;a.Ca.covalentRadius=1.76;a.Sc.covalentRadius=1.7;a.Ti.covalentRadius= +1.6;a.V.covalentRadius=1.53;a.Cr.covalentRadius=1.39;a.Mn.covalentRadius=1.39;a.Fe.covalentRadius=1.32;a.Co.covalentRadius=1.26;a.Ni.covalentRadius=1.24;a.Cu.covalentRadius=1.32;a.Zn.covalentRadius=1.22;a.Ga.covalentRadius=1.22;a.Ge.covalentRadius=1.2;a.As.covalentRadius=1.19;a.Se.covalentRadius=1.2;a.Br.covalentRadius=1.2;a.Kr.covalentRadius=1.16;a.Rb.covalentRadius=2.2;a.Sr.covalentRadius=1.95;a.Y.covalentRadius=1.9;a.Zr.covalentRadius=1.75;a.Nb.covalentRadius=1.64;a.Mo.covalentRadius=1.54;a.Tc.covalentRadius= +1.47;a.Ru.covalentRadius=1.46;a.Rh.covalentRadius=1.42;a.Pd.covalentRadius=1.39;a.Ag.covalentRadius=1.45;a.Cd.covalentRadius=1.44;a.In.covalentRadius=1.42;a.Sn.covalentRadius=1.39;a.Sb.covalentRadius=1.39;a.Te.covalentRadius=1.38;a.I.covalentRadius=1.39;a.Xe.covalentRadius=1.4;a.Cs.covalentRadius=2.44;a.Ba.covalentRadius=2.15;a.La.covalentRadius=2.07;a.Ce.covalentRadius=2.04;a.Pr.covalentRadius=2.03;a.Nd.covalentRadius=2.01;a.Pm.covalentRadius=1.99;a.Sm.covalentRadius=1.98;a.Eu.covalentRadius=1.98; +a.Gd.covalentRadius=1.96;a.Tb.covalentRadius=1.94;a.Dy.covalentRadius=1.92;a.Ho.covalentRadius=1.92;a.Er.covalentRadius=1.89;a.Tm.covalentRadius=1.9;a.Yb.covalentRadius=1.87;a.Lu.covalentRadius=1.87;a.Hf.covalentRadius=1.75;a.Ta.covalentRadius=1.7;a.W.covalentRadius=1.62;a.Re.covalentRadius=1.51;a.Os.covalentRadius=1.44;a.Ir.covalentRadius=1.41;a.Pt.covalentRadius=1.36;a.Au.covalentRadius=1.36;a.Hg.covalentRadius=1.32;a.Tl.covalentRadius=1.45;a.Pb.covalentRadius=1.46;a.Bi.covalentRadius=1.48;a.Po.covalentRadius= +1.4;a.At.covalentRadius=1.5;a.Rn.covalentRadius=1.5;a.Fr.covalentRadius=2.6;a.Ra.covalentRadius=2.21;a.Ac.covalentRadius=2.15;a.Th.covalentRadius=2.06;a.Pa.covalentRadius=2;a.U.covalentRadius=1.96;a.Np.covalentRadius=1.9;a.Pu.covalentRadius=1.87;a.Am.covalentRadius=1.8;a.Cm.covalentRadius=1.69;a.Bk.covalentRadius=0;a.Cf.covalentRadius=0;a.Es.covalentRadius=0;a.Fm.covalentRadius=0;a.Md.covalentRadius=0;a.No.covalentRadius=0;a.Lr.covalentRadius=0;a.Rf.covalentRadius=0;a.Db.covalentRadius=0;a.Sg.covalentRadius= +0;a.Bh.covalentRadius=0;a.Hs.covalentRadius=0;a.Mt.covalentRadius=0;a.Ds.covalentRadius=0;a.Rg.covalentRadius=0;a.Cn.covalentRadius=0;a.Uut.covalentRadius=0;a.Uuq.covalentRadius=0;a.Uup.covalentRadius=0;a.Uuh.covalentRadius=0;a.Uus.covalentRadius=0;a.Uuo.covalentRadius=0;a.H.vdWRadius=1.2;a.He.vdWRadius=1.4;a.Li.vdWRadius=1.82;a.Be.vdWRadius=0;a.B.vdWRadius=0;a.C.vdWRadius=1.7;a.N.vdWRadius=1.55;a.O.vdWRadius=1.52;a.F.vdWRadius=1.47;a.Ne.vdWRadius=1.54;a.Na.vdWRadius=2.27;a.Mg.vdWRadius=1.73;a.Al.vdWRadius= +0;a.Si.vdWRadius=2.1;a.P.vdWRadius=1.8;a.S.vdWRadius=1.8;a.Cl.vdWRadius=1.75;a.Ar.vdWRadius=1.88;a.K.vdWRadius=2.75;a.Ca.vdWRadius=0;a.Sc.vdWRadius=0;a.Ti.vdWRadius=0;a.V.vdWRadius=0;a.Cr.vdWRadius=0;a.Mn.vdWRadius=0;a.Fe.vdWRadius=0;a.Co.vdWRadius=0;a.Ni.vdWRadius=1.63;a.Cu.vdWRadius=1.4;a.Zn.vdWRadius=1.39;a.Ga.vdWRadius=1.87;a.Ge.vdWRadius=0;a.As.vdWRadius=1.85;a.Se.vdWRadius=1.9;a.Br.vdWRadius=1.85;a.Kr.vdWRadius=2.02;a.Rb.vdWRadius=0;a.Sr.vdWRadius=0;a.Y.vdWRadius=0;a.Zr.vdWRadius=0;a.Nb.vdWRadius= +0;a.Mo.vdWRadius=0;a.Tc.vdWRadius=0;a.Ru.vdWRadius=0;a.Rh.vdWRadius=0;a.Pd.vdWRadius=1.63;a.Ag.vdWRadius=1.72;a.Cd.vdWRadius=1.58;a.In.vdWRadius=1.93;a.Sn.vdWRadius=2.17;a.Sb.vdWRadius=0;a.Te.vdWRadius=2.06;a.I.vdWRadius=1.98;a.Xe.vdWRadius=2.16;a.Cs.vdWRadius=0;a.Ba.vdWRadius=0;a.La.vdWRadius=0;a.Ce.vdWRadius=0;a.Pr.vdWRadius=0;a.Nd.vdWRadius=0;a.Pm.vdWRadius=0;a.Sm.vdWRadius=0;a.Eu.vdWRadius=0;a.Gd.vdWRadius=0;a.Tb.vdWRadius=0;a.Dy.vdWRadius=0;a.Ho.vdWRadius=0;a.Er.vdWRadius=0;a.Tm.vdWRadius=0; +a.Yb.vdWRadius=0;a.Lu.vdWRadius=0;a.Hf.vdWRadius=0;a.Ta.vdWRadius=0;a.W.vdWRadius=0;a.Re.vdWRadius=0;a.Os.vdWRadius=0;a.Ir.vdWRadius=0;a.Pt.vdWRadius=1.75;a.Au.vdWRadius=1.66;a.Hg.vdWRadius=1.55;a.Tl.vdWRadius=1.96;a.Pb.vdWRadius=2.02;a.Bi.vdWRadius=0;a.Po.vdWRadius=0;a.At.vdWRadius=0;a.Rn.vdWRadius=0;a.Fr.vdWRadius=0;a.Ra.vdWRadius=0;a.Ac.vdWRadius=0;a.Th.vdWRadius=0;a.Pa.vdWRadius=0;a.U.vdWRadius=1.86;a.Np.vdWRadius=0;a.Pu.vdWRadius=0;a.Am.vdWRadius=0;a.Cm.vdWRadius=0;a.Bk.vdWRadius=0;a.Cf.vdWRadius= +0;a.Es.vdWRadius=0;a.Fm.vdWRadius=0;a.Md.vdWRadius=0;a.No.vdWRadius=0;a.Lr.vdWRadius=0;a.Rf.vdWRadius=0;a.Db.vdWRadius=0;a.Sg.vdWRadius=0;a.Bh.vdWRadius=0;a.Hs.vdWRadius=0;a.Mt.vdWRadius=0;a.Ds.vdWRadius=0;a.Rg.vdWRadius=0;a.Cn.vdWRadius=0;a.Uut.vdWRadius=0;a.Uuq.vdWRadius=0;a.Uup.vdWRadius=0;a.Uuh.vdWRadius=0;a.Uus.vdWRadius=0;a.Uuo.vdWRadius=0;a.H.valency=1;a.He.valency=0;a.Li.valency=1;a.Be.valency=2;a.B.valency=3;a.C.valency=4;a.N.valency=3;a.O.valency=2;a.F.valency=1;a.Ne.valency=0;a.Na.valency= +1;a.Mg.valency=0;a.Al.valency=0;a.Si.valency=4;a.P.valency=3;a.S.valency=2;a.Cl.valency=1;a.Ar.valency=0;a.K.valency=0;a.Ca.valency=0;a.Sc.valency=0;a.Ti.valency=1;a.V.valency=1;a.Cr.valency=2;a.Mn.valency=3;a.Fe.valency=2;a.Co.valency=1;a.Ni.valency=1;a.Cu.valency=0;a.Zn.valency=0;a.Ga.valency=0;a.Ge.valency=4;a.As.valency=3;a.Se.valency=2;a.Br.valency=1;a.Kr.valency=0;a.Rb.valency=0;a.Sr.valency=0;a.Y.valency=0;a.Zr.valency=0;a.Nb.valency=1;a.Mo.valency=2;a.Tc.valency=3;a.Ru.valency=2;a.Rh.valency= +1;a.Pd.valency=0;a.Ag.valency=0;a.Cd.valency=0;a.In.valency=0;a.Sn.valency=4;a.Sb.valency=3;a.Te.valency=2;a.I.valency=1;a.Xe.valency=0;a.Cs.valency=0;a.Ba.valency=0;a.La.valency=0;a.Ce.valency=0;a.Pr.valency=0;a.Nd.valency=0;a.Pm.valency=0;a.Sm.valency=0;a.Eu.valency=0;a.Gd.valency=0;a.Tb.valency=0;a.Dy.valency=0;a.Ho.valency=0;a.Er.valency=0;a.Tm.valency=0;a.Yb.valency=0;a.Lu.valency=0;a.Hf.valency=0;a.Ta.valency=1;a.W.valency=2;a.Re.valency=3;a.Os.valency=2;a.Ir.valency=3;a.Pt.valency=0;a.Au.valency= +1;a.Hg.valency=0;a.Tl.valency=0;a.Pb.valency=4;a.Bi.valency=3;a.Po.valency=2;a.At.valency=1;a.Rn.valency=0;a.Fr.valency=0;a.Ra.valency=0;a.Ac.valency=0;a.Th.valency=0;a.Pa.valency=0;a.U.valency=0;a.Np.valency=0;a.Pu.valency=0;a.Am.valency=0;a.Cm.valency=0;a.Bk.valency=0;a.Cf.valency=0;a.Es.valency=0;a.Fm.valency=0;a.Md.valency=0;a.No.valency=0;a.Lr.valency=0;a.Rf.valency=0;a.Db.valency=0;a.Sg.valency=0;a.Bh.valency=0;a.Hs.valency=0;a.Mt.valency=0;a.Ds.valency=0;a.Rg.valency=0;a.Cn.valency=0;a.Uut.valency= +0;a.Uuq.valency=0;a.Uup.valency=0;a.Uuh.valency=0;a.Uus.valency=0;a.Uuo.valency=0;a.H.mass=1;a.He.mass=4;a.Li.mass=7;a.Be.mass=9;a.B.mass=11;a.C.mass=12;a.N.mass=14;a.O.mass=16;a.F.mass=19;a.Ne.mass=20;a.Na.mass=23;a.Mg.mass=24;a.Al.mass=27;a.Si.mass=28;a.P.mass=31;a.S.mass=32;a.Cl.mass=35;a.Ar.mass=40;a.K.mass=39;a.Ca.mass=40;a.Sc.mass=45;a.Ti.mass=48;a.V.mass=51;a.Cr.mass=52;a.Mn.mass=55;a.Fe.mass=56;a.Co.mass=59;a.Ni.mass=58;a.Cu.mass=63;a.Zn.mass=64;a.Ga.mass=69;a.Ge.mass=74;a.As.mass=75;a.Se.mass= +80;a.Br.mass=79;a.Kr.mass=84;a.Rb.mass=85;a.Sr.mass=88;a.Y.mass=89;a.Zr.mass=90;a.Nb.mass=93;a.Mo.mass=98;a.Tc.mass=0;a.Ru.mass=102;a.Rh.mass=103;a.Pd.mass=106;a.Ag.mass=107;a.Cd.mass=114;a.In.mass=115;a.Sn.mass=120;a.Sb.mass=121;a.Te.mass=130;a.I.mass=127;a.Xe.mass=132;a.Cs.mass=133;a.Ba.mass=138;a.La.mass=139;a.Ce.mass=140;a.Pr.mass=141;a.Nd.mass=142;a.Pm.mass=0;a.Sm.mass=152;a.Eu.mass=153;a.Gd.mass=158;a.Tb.mass=159;a.Dy.mass=164;a.Ho.mass=165;a.Er.mass=166;a.Tm.mass=169;a.Yb.mass=174;a.Lu.mass= +175;a.Hf.mass=180;a.Ta.mass=181;a.W.mass=184;a.Re.mass=187;a.Os.mass=192;a.Ir.mass=193;a.Pt.mass=195;a.Au.mass=197;a.Hg.mass=202;a.Tl.mass=205;a.Pb.mass=208;a.Bi.mass=209;a.Po.mass=0;a.At.mass=0;a.Rn.mass=0;a.Fr.mass=0;a.Ra.mass=0;a.Ac.mass=0;a.Th.mass=232;a.Pa.mass=231;a.U.mass=238;a.Np.mass=0;a.Pu.mass=0;a.Am.mass=0;a.Cm.mass=0;a.Bk.mass=0;a.Cf.mass=0;a.Es.mass=0;a.Fm.mass=0;a.Md.mass=0;a.No.mass=0;a.Lr.mass=0;a.Rf.mass=0;a.Db.mass=0;a.Sg.mass=0;a.Bh.mass=0;a.Hs.mass=0;a.Mt.mass=0;a.Ds.mass=0;a.Rg.mass= +0;a.Cn.mass=0;a.Uut.mass=0;a.Uuq.mass=0;a.Uup.mass=0;a.Uuh.mass=0;a.Uus.mass=0;a.Uuo.mass=0;return a}(ChemDoodle.SYMBOLS); +ChemDoodle.RESIDUE=function(){function c(a,g){this.symbol=a;this.name=g}var b=[];b.Ala=new c("Ala","Alanine");b.Arg=new c("Arg","Arginine");b.Asn=new c("Asn","Asparagine");b.Asp=new c("Asp","Aspartic Acid");b.Cys=new c("Cys","Cysteine");b.Gln=new c("Gln","Glutamine");b.Glu=new c("Glu","Glutamic Acid");b.Gly=new c("Gly","Glycine");b.His=new c("His","Histidine");b.Ile=new c("Ile","Isoleucine");b.Leu=new c("Leu","Leucine");b.Lys=new c("Lys","Lysine");b.Met=new c("Met","Methionine");b.Phe=new c("Phe", +"Phenylalanine");b.Pro=new c("Pro","Proline");b.Ser=new c("Ser","Serine");b.Thr=new c("Thr","Threonine");b.Trp=new c("Trp","Tryptophan");b.Tyr=new c("Tyr","Tyrosine");b.Val=new c("Val","Valine");b.Asx=new c("Asx","Asparagine/Aspartic Acid");b.Glx=new c("Glx","Glutamine/Glutamic Acid");b["*"]=new c("*","Other");b.A=new c("A","Adenine");b.G=new c("G","Guanine");b.I=new c("I","");b.C=new c("C","Cytosine");b.T=new c("T","Thymine");b.U=new c("U","Uracil");b.Ala.polar=!1;b.Arg.polar=!0;b.Asn.polar=!0;b.Asp.polar= +!0;b.Cys.polar=!0;b.Gln.polar=!0;b.Glu.polar=!0;b.Gly.polar=!1;b.His.polar=!0;b.Ile.polar=!1;b.Leu.polar=!1;b.Lys.polar=!0;b.Met.polar=!1;b.Phe.polar=!1;b.Pro.polar=!1;b.Ser.polar=!0;b.Thr.polar=!0;b.Trp.polar=!0;b.Tyr.polar=!0;b.Val.polar=!1;b.Asx.polar=!0;b.Glx.polar=!0;b.Ala.aminoColor="#C8C8C8";b.Arg.aminoColor="#145AFF";b.Asn.aminoColor="#00DCDC";b.Asp.aminoColor="#E60A0A";b.Cys.aminoColor="#E6E600";b.Gln.aminoColor="#00DCDC";b.Glu.aminoColor="#E60A0A";b.Gly.aminoColor="#EBEBEB";b.His.aminoColor= +"#8282D2";b.Ile.aminoColor="#0F820F";b.Leu.aminoColor="#0F820F";b.Lys.aminoColor="#145AFF";b.Met.aminoColor="#E6E600";b.Phe.aminoColor="#3232AA";b.Pro.aminoColor="#DC9682";b.Ser.aminoColor="#FA9600";b.Thr.aminoColor="#FA9600";b.Trp.aminoColor="#B45AB4";b.Tyr.aminoColor="#3232AA";b.Val.aminoColor="#0F820F";b.Asx.aminoColor="#FF69B4";b.Glx.aminoColor="#FF69B4";b["*"].aminoColor="#BEA06E";b.A.aminoColor="#BEA06E";b.G.aminoColor="#BEA06E";b.I.aminoColor="#BEA06E";b.C.aminoColor="#BEA06E";b.T.aminoColor= +"#BEA06E";b.U.aminoColor="#BEA06E";b.Ala.shapelyColor="#8CFF8C";b.Arg.shapelyColor="#00007C";b.Asn.shapelyColor="#FF7C70";b.Asp.shapelyColor="#A00042";b.Cys.shapelyColor="#FFFF70";b.Gln.shapelyColor="#FF4C4C";b.Glu.shapelyColor="#660000";b.Gly.shapelyColor="#FFFFFF";b.His.shapelyColor="#7070FF";b.Ile.shapelyColor="#004C00";b.Leu.shapelyColor="#455E45";b.Lys.shapelyColor="#4747B8";b.Met.shapelyColor="#B8A042";b.Phe.shapelyColor="#534C52";b.Pro.shapelyColor="#525252";b.Ser.shapelyColor="#FF7042";b.Thr.shapelyColor= +"#B84C00";b.Trp.shapelyColor="#4F4600";b.Tyr.shapelyColor="#8C704C";b.Val.shapelyColor="#FF8CFF";b.Asx.shapelyColor="#FF00FF";b.Glx.shapelyColor="#FF00FF";b["*"].shapelyColor="#FF00FF";b.A.shapelyColor="#A0A0FF";b.G.shapelyColor="#FF7070";b.I.shapelyColor="#80FFFF";b.C.shapelyColor="#FF8C4B";b.T.shapelyColor="#A0FFA0";b.U.shapelyColor="#FF8080";return b}(); +(function(c){c.Queue=function(){this.queue=[]};c=c.Queue.prototype;c.queueSpace=0;c.getSize=function(){return this.queue.length-this.queueSpace};c.isEmpty=function(){return 0===this.queue.length};c.enqueue=function(b){this.queue.push(b)};c.dequeue=function(){var b;this.queue.length&&(b=this.queue[this.queueSpace],2*++this.queueSpace>=this.queue.length&&(this.queue=this.queue.slice(this.queueSpace),this.queueSpace=0));return b};c.getOldestElement=function(){var b;this.queue.length&&(b=this.queue[this.queueSpace]); +return b}})(ChemDoodle.structures); +(function(c,b){c.Point=function(a,f){this.x=a?a:0;this.y=f?f:0};var a=c.Point.prototype;a.sub=function(a){this.x-=a.x;this.y-=a.y};a.add=function(a){this.x+=a.x;this.y+=a.y};a.distance=function(a){var f=a.x-this.x;a=a.y-this.y;return b.sqrt(f*f+a*a)};a.angleForStupidCanvasArcs=function(a){var f=a.x-this.x;a=a.y-this.y;for(var e=0,e=0===f?0===a?0:0<a?b.PI/2:3*b.PI/2:0===a?0<f?0:b.PI:0>f?b.atan(a/f)+b.PI:0>a?b.atan(a/f)+2*b.PI:b.atan(a/f);0>e;)e+=2*b.PI;return e%=2*b.PI};a.angle=function(a){var f=a.x- +this.x;a=this.y-a.y;for(var e=0,e=0===f?0===a?0:0<a?b.PI/2:3*b.PI/2:0===a?0<f?0:b.PI:0>f?b.atan(a/f)+b.PI:0>a?b.atan(a/f)+2*b.PI:b.atan(a/f);0>e;)e+=2*b.PI;return e%=2*b.PI}})(ChemDoodle.structures,Math); +(function(c,b,a,g,f,e){g.Atom=function(a,d,k,e){this.label=a?a.replace(/\s/g,""):"C";c[this.label]||(this.label="C");this.x=d?d:0;this.y=k?k:0;this.z=e?e:0};g=g.Atom.prototype=new g.Point(0,0);g.charge=0;g.numLonePair=0;g.numRadical=0;g.mass=-1;g.coordinationNumber=0;g.bondNumber=0;g.angleOfLeastInterference=0;g.isHidden=!1;g.altLabel=void 0;g.any=!1;g.rgroup=-1;g.isLone=!1;g.isHover=!1;g.isSelected=!1;g.add3D=function(a){this.x+=a.x;this.y+=a.y;this.z+=a.z};g.sub3D=function(a){this.x-=a.x;this.y-= +a.y;this.z-=a.z};g.distance3D=function(a){var d=a.x-this.x,k=a.y-this.y;a=a.z-this.z;return f.sqrt(d*d+k*k+a*a)};g.draw=function(a,d){if(this.isLassoed){var k=a.createRadialGradient(this.x-1,this.y-1,0,this.x,this.y,7);k.addColorStop(0,"rgba(212, 99, 0, 0)");k.addColorStop(0.7,"rgba(212, 99, 0, 0.8)");a.fillStyle=k;a.beginPath();a.arc(this.x,this.y,5,0,2*f.PI,!1);a.fill()}this.textBounds=[];this.specs&&(d=this.specs);k=d.getFontString(d.atoms_font_size_2D,d.atoms_font_families_2D,d.atoms_font_bold_2D, +d.atoms_font_italic_2D);a.font=k;a.fillStyle=d.atoms_color;!this.any&&-1===this.rgroup&&(d.atoms_useJMOLColors?a.fillStyle=c[this.label].jmolColor:d.atoms_usePYMOLColors&&(a.fillStyle=c[this.label].pymolColor));if(this.isLone&&!d.atoms_displayAllCarbonLabels_2D||d.atoms_circles_2D)a.beginPath(),a.arc(this.x,this.y,d.atoms_circleDiameter_2D/2,0,2*f.PI,!1),a.fill(),0<d.atoms_circleBorderWidth_2D&&(a.lineWidth=d.atoms_circleBorderWidth_2D,a.strokeStyle="black",a.stroke(this.x,this.y,0,2*f.PI,d.atoms_circleDiameter_2D/ +2));else if(this.isLabelVisible(d)){a.textAlign="center";a.textBaseline="middle";if(void 0!==this.altLabel){a.fillText(this.altLabel,this.x,this.y);var e=a.measureText(this.altLabel).width;this.textBounds.push({x:this.x-e/2,y:this.y-d.atoms_font_size_2D/2+1,w:e,h:d.atoms_font_size_2D-2})}else if(this.any)a.font=d.getFontString(d.atoms_font_size_2D+5,d.atoms_font_families_2D,!0),a.fillText("*",this.x+1,this.y+3),e=a.measureText("*").width,this.textBounds.push({x:this.x-e/2,y:this.y-d.atoms_font_size_2D/ +2+1,w:e,h:d.atoms_font_size_2D-2});else if(-1!==this.rgroup)k="R"+this.rgroup,a.fillText(k,this.x,this.y),e=a.measureText(k).width,this.textBounds.push({x:this.x-e/2,y:this.y-d.atoms_font_size_2D/2+1,w:e,h:d.atoms_font_size_2D-2});else{a.fillText(this.label,this.x,this.y);e=a.measureText(this.label).width;this.textBounds.push({x:this.x-e/2,y:this.y-d.atoms_font_size_2D/2+1,w:e,h:d.atoms_font_size_2D-2});if(-1!==this.mass){var g=d.getFontString(0.7*d.atoms_font_size_2D,d.atoms_font_families_2D,d.atoms_font_bold_2D, +d.atoms_font_italic_2D),h=a.font;a.font=g;g=a.measureText(this.mass).width;a.fillText(this.mass,this.x-g-0.5,this.y-0.3*d.atoms_font_size_2D);a.font=h}h=this.getImplicitHydrogenCount();if(d.atoms_implicitHydrogens_2D&&0<h){var j=a.measureText("H").width;if(1<h){var m=e/2+j/2,t=0,g=d.getFontString(0.8*d.atoms_font_size_2D,d.atoms_font_families_2D,d.atoms_font_bold_2D,d.atoms_font_italic_2D);a.font=g;var n=a.measureText(h).width;1===this.bondNumber?this.angleOfLeastInterference>f.PI/2&&this.angleOfLeastInterference< +3*f.PI/2&&(m=-e/2-n-j/2):this.angleOfLeastInterference<=f.PI/4||(this.angleOfLeastInterference<3*f.PI/4?(m=0,t=0.9*-d.atoms_font_size_2D):this.angleOfLeastInterference<=5*f.PI/4?m=-e/2-n-j/2:this.angleOfLeastInterference<7*f.PI/4&&(m=0,t=0.9*d.atoms_font_size_2D));a.font=k;a.fillText("H",this.x+m,this.y+t);a.font=g;a.fillText(h,this.x+m+j/2+n/2,this.y+t+0.3*d.atoms_font_size_2D);this.textBounds.push({x:this.x+m-j/2,y:this.y+t-d.atoms_font_size_2D/2+1,w:j,h:d.atoms_font_size_2D-2});this.textBounds.push({x:this.x+ +m+j/2,y:this.y+t+0.3*d.atoms_font_size_2D-d.atoms_font_size_2D/2+1,w:n,h:0.8*d.atoms_font_size_2D-2})}else m=e/2+j/2,t=0,1===this.bondNumber?this.angleOfLeastInterference>f.PI/2&&this.angleOfLeastInterference<3*f.PI/2&&(m=-e/2-j/2):this.angleOfLeastInterference<=f.PI/4||(this.angleOfLeastInterference<3*f.PI/4?(m=0,t=0.9*-d.atoms_font_size_2D):this.angleOfLeastInterference<=5*f.PI/4?m=-e/2-j/2:this.angleOfLeastInterference<7*f.PI/4&&(m=0,t=0.9*d.atoms_font_size_2D)),a.fillText("H",this.x+m,this.y+ +t),this.textBounds.push({x:this.x+m-j/2,y:this.y+t-d.atoms_font_size_2D/2+1,w:j,h:d.atoms_font_size_2D-2})}}0!==this.charge&&(k=this.charge.toFixed(0),k="1"===k?"+":"-1"===k?"\u2013":b.stringStartsWith(k,"-")?k.substring(1)+"\u2013":k+"+",e=this.angleOfLeastInterference,g=d.atoms_font_size_2D,this.isLabelVisible(d)&&0<h&&(e+=f.PI/4),a.textAlign="center",a.textBaseline="middle",a.fillText(k,this.x+g*f.cos(e),this.y-g*f.sin(e)));if(0<this.numLonePair||0<this.numRadical)a.fillStyle="black",2===this.bondNumber&& +f.abs(this.largestAngle-f.PI)<f.PI/60?0===this.numRadical?(this.drawElectrons(a,d,f.floor(this.numLonePair/2),0,this.angleOfLeastInterference,this.largestAngle),this.drawElectrons(a,d,f.floor(this.numLonePair/2)+this.numLonePair%2,0,this.angleOfLeastInterference+f.PI,this.largestAngle)):0===this.numLonePair?(this.drawElectrons(a,d,0,f.floor(this.numRadical/2),this.angleOfLeastInterference,this.largestAngle),this.drawElectrons(a,d,0,f.floor(this.numRadical/2)+this.numRadical%2,this.angleOfLeastInterference+ +f.PI,this.largestAngle)):(this.drawElectrons(a,d,this.numLonePair,0,this.angleOfLeastInterference,this.largestAngle),this.drawElectrons(a,d,0,this.numRadical,this.angleOfLeastInterference+f.PI,this.largestAngle)):this.drawElectrons(a,d,this.numLonePair,this.numRadical,this.angleOfLeastInterference,this.largestAngle)}};g.drawElectrons=function(a,d,e,g,b,c){var j=c/(e+g+(0===this.bondNumber?0:1));c=b-c/2+j;for(var m=0;m<e;m++){b=c+m*j;var t=this.x+Math.cos(b)*d.atoms_lonePairDistance_2D,n=this.y-Math.sin(b)* +d.atoms_lonePairDistance_2D,u=b+Math.PI/2;b=Math.cos(u)*d.atoms_lonePairSpread_2D/2;u=-Math.sin(u)*d.atoms_lonePairSpread_2D/2;a.beginPath();a.arc(t+b,n+u,d.atoms_lonePairDiameter_2D,0,2*f.PI,!1);a.fill();a.beginPath();a.arc(t-b,n-u,d.atoms_lonePairDiameter_2D,0,2*f.PI,!1);a.fill()}for(m=0;m<g;m++)b=c+(m+e)*j,t=this.x+Math.cos(b)*d.atoms_lonePairDistance_2D,n=this.y-Math.sin(b)*d.atoms_lonePairDistance_2D,a.beginPath(),a.arc(t,n,d.atoms_lonePairDiameter_2D,0,2*f.PI,!1),a.fill()};g.drawDecorations= +function(a){if(this.isHover||this.isSelected)a.strokeStyle=this.isHover?"#885110":"#0060B2",a.lineWidth=1.2,a.beginPath(),a.arc(this.x,this.y,this.isHover?7:15,0,2*f.PI,!1),a.stroke();this.isOverlap&&(a.strokeStyle="#C10000",a.lineWidth=1.2,a.beginPath(),a.arc(this.x,this.y,7,0,2*f.PI,!1),a.stroke())};g.render=function(a,d){this.specs&&(d=this.specs);var k=e.translate(a.modelViewMatrix,[this.x,this.y,this.z],[]),f=d.atoms_useVDWDiameters_3D?c[this.label].vdWRadius*d.atoms_vdwMultiplier_3D:d.atoms_sphereDiameter_3D/ +2;0===f&&(f=1);e.scale(k,[f,f,f]);f=d.atoms_color;d.atoms_useJMOLColors?f=c[this.label].jmolColor:d.atoms_usePYMOLColors&&(f=c[this.label].pymolColor);a.material.setDiffuseColor(f);a.setMatrixUniforms(k);a.drawElements(a.TRIANGLES,(this.renderAsStar?a.starBuffer:a.sphereBuffer).vertexIndexBuffer.numItems,a.UNSIGNED_SHORT,0)};g.isLabelVisible=function(a){return a.atoms_displayAllCarbonLabels_2D||"C"!==this.label||this.altLabel||this.any||-1!==this.rgroup||-1!==this.mass||0!==this.charge||0!==this.numLonePair|| +this.isHidden&&a.atoms_showHiddenCarbons_2D||a.atoms_displayTerminalCarbonLabels_2D&&1===this.bondNumber};g.getImplicitHydrogenCount=function(){if("H"===this.label||!c[this.label]||!c[this.label].addH)return 0;var a=c[this.label].valency,d=a-this.coordinationNumber;0<this.charge?(a=4-a,d=this.charge<=a?d+this.charge:4-this.coordinationNumber-this.charge+a):d+=this.charge;return 0>d?0:f.floor(d)};g.getBounds=function(){var e=new a.Bounds;e.expand(this.x,this.y);if(this.textBounds)for(var d=0,k=this.textBounds.length;d< +k;d++){var f=this.textBounds[d];e.expand(f.x,f.y,f.x+f.w,f.y+f.h)}return e}})(ChemDoodle.ELEMENT,ChemDoodle.extensions,ChemDoodle.math,ChemDoodle.structures,Math,mat4); +(function(c,b,a,g,f,e,o){a.Bond=function(a,d,e){this.a1=a;this.a2=d;this.bondOrder=void 0!==e?e:1};a.Bond.STEREO_NONE="none";a.Bond.STEREO_PROTRUDING="protruding";a.Bond.STEREO_RECESSED="recessed";a.Bond.STEREO_AMBIGUOUS="ambiguous";var d=a.Bond.prototype;d.stereo=a.Bond.STEREO_NONE;d.isHover=!1;d.ring=void 0;d.getCenter=function(){return new a.Point((this.a1.x+this.a2.x)/2,(this.a1.y+this.a2.y)/2)};d.getLength=function(){return this.a1.distance(this.a2)};d.getLength3D=function(){return this.a1.distance3D(this.a2)}; +d.contains=function(a){return a===this.a1||a===this.a2};d.getNeighbor=function(a){if(a===this.a1)return this.a2;if(a===this.a2)return this.a1};d.draw=function(d,e){if(!(this.a1.x===this.a2.x&&this.a1.y===this.a2.y)){this.specs&&(e=this.specs);var o=this.a1.x,h=this.a2.x,j=this.a1.y,m=this.a2.y,t=this.a1.distance(this.a2),n=h-o,u=m-j;if(this.a1.isLassoed&&this.a2.isLassoed){var q=d.createLinearGradient(o,j,h,m);q.addColorStop(0,"rgba(212, 99, 0, 0)");q.addColorStop(0.5,"rgba(212, 99, 0, 0.8)");q.addColorStop(1, +"rgba(212, 99, 0, 0)");var r=2.5,w=this.a1.angle(this.a2)+f.PI/2,p=f.cos(w),w=f.sin(w),y=o-p*r,z=j+w*r,x=o+p*r,A=j-w*r,C=h+p*r,F=m-w*r,p=h-p*r,w=m+w*r;d.fillStyle=q;d.beginPath();d.moveTo(y,z);d.lineTo(x,A);d.lineTo(C,F);d.lineTo(p,w);d.closePath();d.fill()}if(e.atoms_display&&!e.atoms_circles_2D&&this.a1.isLabelVisible(e)&&this.a1.textBounds){r=p=0;for(y=this.a1.textBounds.length;r<y;r++)p=Math.max(p,g.calculateDistanceInterior(this.a1,this.a2,this.a1.textBounds[r]));p+=e.bonds_atomLabelBuffer_2D; +p/=t;o+=n*p;j+=u*p}if(e.atoms_display&&!e.atoms_circles_2D&&this.a2.isLabelVisible(e)&&this.a2.textBounds){r=p=0;for(y=this.a2.textBounds.length;r<y;r++)p=Math.max(p,g.calculateDistanceInterior(this.a2,this.a1,this.a2.textBounds[r]));p+=e.bonds_atomLabelBuffer_2D;p/=t;h-=n*p;m-=u*p}e.bonds_clearOverlaps_2D&&(p=o+0.15*n,w=j+0.15*u,r=h-0.15*n,t=m-0.15*u,d.strokeStyle=e.backgroundColor,d.lineWidth=e.bonds_width_2D+2*e.bonds_overlapClearWidth_2D,d.lineCap="round",d.beginPath(),d.moveTo(p,w),d.lineTo(r, +t),d.closePath(),d.stroke());d.strokeStyle=e.bonds_color;d.fillStyle=e.bonds_color;d.lineWidth=e.bonds_width_2D;d.lineCap=e.bonds_ends_2D;if(e.bonds_useJMOLColors||e.bonds_usePYMOLColors)p=d.createLinearGradient(o,j,h,m),w=c[this.a1.label].jmolColor,r=c[this.a2.label].jmolColor,e.atoms_usePYMOLColors&&(w=c[this.a1.label].pymolColor,r=c[this.a2.label].pymolColor),p.addColorStop(0,w),e.bonds_colorGradient||(p.addColorStop(0.5,w),p.addColorStop(0.51,r)),p.addColorStop(1,r),d.strokeStyle=p,d.fillStyle= +p;switch(this.bondOrder){case 0:h-=o;m-=j;h=f.sqrt(h*h+m*m);m=f.floor(h/e.bonds_dotSize_2D);h=(h-m*e.bonds_dotSize_2D+e.bonds_dotSize_2D)/2;1===m%2?h+=e.bonds_dotSize_2D/4:(h-=e.bonds_dotSize_2D/4,m+=2);m/=2;u=this.a1.angle(this.a2);p=o+h*Math.cos(u);w=j-h*Math.sin(u);d.beginPath();for(r=0;r<m;r++)d.arc(p,w,e.bonds_dotSize_2D/2,0,2*f.PI,!1),p+=2*e.bonds_dotSize_2D*Math.cos(u),w-=2*e.bonds_dotSize_2D*Math.sin(u);d.fill();break;case 0.5:d.beginPath();d.moveTo(o,j);b.contextHashTo(d,o,j,h,m,e.bonds_hashSpacing_2D, +e.bonds_hashSpacing_2D);d.stroke();break;case 1:if(this.stereo===a.Bond.STEREO_PROTRUDING||this.stereo===a.Bond.STEREO_RECESSED)u=e.bonds_width_2D/2,r=this.a1.distance(this.a2)*e.bonds_wedgeThickness_2D/2,w=this.a1.angle(this.a2)+f.PI/2,p=f.cos(w),w=f.sin(w),y=o-p*u,z=j+w*u,x=o+p*u,A=j-w*u,C=h+p*r,F=m-w*r,p=h-p*r,w=m+w*r,d.beginPath(),d.moveTo(y,z),d.lineTo(x,A),d.lineTo(C,F),d.lineTo(p,w),d.closePath(),this.stereo===a.Bond.STEREO_PROTRUDING?d.fill():(d.save(),d.clip(),d.lineWidth=2*r,d.lineCap="butt", +d.beginPath(),d.moveTo(o,j),b.contextHashTo(d,o,j,h,m,e.bonds_hashWidth_2D,e.bonds_hashSpacing_2D),d.stroke(),d.restore());else if(this.stereo===a.Bond.STEREO_AMBIGUOUS){d.beginPath();d.moveTo(o,j);h=f.floor(f.sqrt(n*n+u*u)/e.bonds_wavyLength_2D);w=this.a1.angle(this.a2)+f.PI/2;p=f.cos(w);w=f.sin(w);m=n/h;u/=h;r=0;for(y=h;r<y;r++)o+=m,j+=u,h=e.bonds_wavyLength_2D*p+o-0.5*m,t=e.bonds_wavyLength_2D*-w+j-0.5*u,n=e.bonds_wavyLength_2D*-p+o-0.5*m,z=e.bonds_wavyLength_2D*w+j-0.5*u,0===r%2?d.quadraticCurveTo(h, +t,o,j):d.quadraticCurveTo(n,z,o,j);d.stroke();break}else d.beginPath(),d.moveTo(o,j),d.lineTo(h,m),d.stroke();break;case 1.5:case 2:this.stereo===a.Bond.STEREO_AMBIGUOUS?(r=this.a1.distance(this.a2)*e.bonds_saturationWidth_2D/2,w=this.a1.angle(this.a2)+f.PI/2,p=f.cos(w),w=f.sin(w),y=o-p*r,z=j+w*r,x=o+p*r,A=j-w*r,C=h+p*r,F=m-w*r,p=h-p*r,w=m+w*r,d.beginPath(),d.moveTo(y,z),d.lineTo(C,F),d.moveTo(x,A),d.lineTo(p,w),d.stroke()):!e.bonds_symmetrical_2D&&(this.ring||"C"===this.a1.label&&"C"===this.a2.label)? +(d.beginPath(),d.moveTo(o,j),d.lineTo(h,m),p=0,t=this.a1.distance(this.a2),u=this.a1.angle(this.a2),w=u+f.PI/2,r=t*e.bonds_saturationWidth_2D,n=e.bonds_saturationAngle_2D,n<f.PI/2&&(p=-(r/f.tan(n))),f.abs(p)<t/2&&(n=o-f.cos(u)*p,o=h+f.cos(u)*p,h=j+f.sin(u)*p,j=m-f.sin(u)*p,p=f.cos(w),w=f.sin(w),y=n-p*r,z=h+w*r,x=n+p*r,A=h-w*r,C=o-p*r,F=j+w*r,p=o+p*r,w=j-w*r,!this.ring||this.ring.center.angle(this.a1)>this.ring.center.angle(this.a2)&&!(this.ring.center.angle(this.a1)-this.ring.center.angle(this.a2)> +f.PI)||this.ring.center.angle(this.a1)-this.ring.center.angle(this.a2)<-f.PI?(d.moveTo(y,z),2===this.bondOrder?d.lineTo(C,F):b.contextHashTo(d,y,z,C,F,e.bonds_hashSpacing_2D,e.bonds_hashSpacing_2D)):(d.moveTo(x,A),2===this.bondOrder?d.lineTo(p,w):b.contextHashTo(d,x,A,p,w,e.bonds_hashSpacing_2D,e.bonds_hashSpacing_2D)),d.stroke())):(r=this.a1.distance(this.a2)*e.bonds_saturationWidth_2D/2,w=this.a1.angle(this.a2)+f.PI/2,p=f.cos(w),w=f.sin(w),y=o-p*r,z=j+w*r,x=o+p*r,A=j-w*r,C=h+p*r,F=m-w*r,p=h-p*r, +w=m+w*r,d.beginPath(),d.moveTo(y,z),d.lineTo(p,w),d.moveTo(x,A),2===this.bondOrder?d.lineTo(C,F):b.contextHashTo(d,x,A,C,F,e.bonds_hashSpacing_2D,e.bonds_hashSpacing_2D),d.stroke());break;case 3:r=this.a1.distance(this.a2)*e.bonds_saturationWidth_2D,w=this.a1.angle(this.a2)+f.PI/2,p=f.cos(w),w=f.sin(w),y=o-p*r,z=j+w*r,x=o+p*r,A=j-w*r,C=h+p*r,F=m-w*r,p=h-p*r,w=m+w*r,d.beginPath(),d.moveTo(y,z),d.lineTo(p,w),d.moveTo(x,A),d.lineTo(C,F),d.moveTo(o,j),d.lineTo(h,m),d.stroke()}}};d.drawDecorations=function(a){if(this.isHover|| +this.isSelected){var d=2*f.PI,e=(this.a1.angleForStupidCanvasArcs(this.a2)+f.PI/2)%d;a.strokeStyle=this.isHover?"#885110":"#0060B2";a.lineWidth=1.2;a.beginPath();var g=(e+f.PI)%d,g=g%(2*f.PI);a.arc(this.a1.x,this.a1.y,7,e,g,!1);a.stroke();a.beginPath();e+=f.PI;g=(e+f.PI)%d;a.arc(this.a2.x,this.a2.y,7,e,g,!1);a.stroke()}};d.render=function(a,d){this.specs&&(d=this.specs);var g=(d.bonds_renderAsLines_3D?1.1:1.001)*this.a1.distance3D(this.a2)/(d.bonds_useJMOLColors||d.bonds_usePYMOLColors?2:1);if(0=== +g)return!1;var g=[d.bonds_cylinderDiameter_3D/2,g,d.bonds_cylinderDiameter_3D/2],h=e.translate(a.modelViewMatrix,[this.a1.x,this.a1.y,this.a1.z],[]),j,m=[this.a2.x-this.a1.x,this.a2.y-this.a1.y,this.a2.z-this.a1.z];if(d.bonds_useJMOLColors||d.bonds_usePYMOLColors)o.scale(m,0.5),j=e.translate(a.modelViewMatrix,[this.a2.x,this.a2.y,this.a2.z],[]);var t=[0],n;if(d.bonds_showBondOrders_3D){switch(this.bondOrder){case 2:t=[-d.bonds_cylinderDiameter_3D,d.bonds_cylinderDiameter_3D];break;case 3:t=[-1.2* +d.bonds_cylinderDiameter_3D,0,1.2*d.bonds_cylinderDiameter_3D]}if(1<t.length){n=[0,0,1];var u=e.inverse(a.rotationMatrix,[]);e.multiplyVec3(u,n);n=o.cross(m,n,[]);o.normalize(n)}}var q=[0,1,0],u=0;this.a1.x===this.a2.x&&this.a1.z===this.a2.z?(m=[0,0,1],this.a2.y<this.a1.y&&(u=f.PI)):(u=b.vec3AngleFrom(q,m),m=o.cross(q,m,[]));for(var q=0,r=t.length;q<r;q++){var w=e.set(h,[]);0!==t[q]&&e.translate(w,o.scale(n,t[q],[]));0!==u&&e.rotate(w,u,m);e.scale(w,g);var p=d.bonds_color;d.bonds_useJMOLColors?p= +c[this.a1.label].jmolColor:d.bonds_usePYMOLColors&&(p=c[this.a1.label].pymolColor);a.material.setDiffuseColor(p);a.setMatrixUniforms(w);d.bonds_renderAsLines_3D?a.drawArrays(a.LINES,0,a.lineBuffer.vertexPositionBuffer.numItems):a.drawArrays(a.TRIANGLE_STRIP,0,a.cylinderBuffer.vertexPositionBuffer.numItems);if(d.bonds_useJMOLColors||d.bonds_usePYMOLColors)e.set(j,w),0!==t[q]&&e.translate(w,o.scale(n,t[q],[])),e.rotate(w,u+f.PI,m),e.scale(w,g),a.material.setDiffuseColor(d.bonds_usePYMOLColors?c[this.a2.label].pymolColor: +c[this.a2.label].jmolColor),a.setMatrixUniforms(w),d.bonds_renderAsLines_3D?a.drawArrays(a.LINES,0,a.lineBuffer.vertexPositionBuffer.numItems):a.drawArrays(a.TRIANGLE_STRIP,0,a.cylinderBuffer.vertexPositionBuffer.numItems)}}})(ChemDoodle.ELEMENT,ChemDoodle.extensions,ChemDoodle.structures,ChemDoodle.math,Math,mat4,vec3); +(function(c,b){c.Ring=function(){this.atoms=[];this.bonds=[]};var a=c.Ring.prototype;a.center=void 0;a.setupBonds=function(){for(var a=0,f=this.bonds.length;a<f;a++)this.bonds[a].ring=this;this.center=this.getCenter()};a.getCenter=function(){for(var a=Infinity,f=Infinity,e=-Infinity,o=-Infinity,d=0,k=this.atoms.length;d<k;d++)a=b.min(this.atoms[d].x,a),f=b.min(this.atoms[d].y,f),e=b.max(this.atoms[d].x,e),o=b.max(this.atoms[d].y,o);return new c.Point((e+a)/2,(o+f)/2)}})(ChemDoodle.structures,Math); +(function(c,b,a,g,f){a.Molecule=function(){this.atoms=[];this.bonds=[];this.rings=[]};var e=a.Molecule.prototype;e.findRings=!0;e.draw=function(a,d){this.specs&&(d=this.specs);if(d.atoms_display&&!d.atoms_circles_2D)for(var e=0,f=this.atoms.length;e<f;e++)this.atoms[e].draw(a,d);if(d.bonds_display){e=0;for(f=this.bonds.length;e<f;e++)this.bonds[e].draw(a,d)}if(d.atoms_display&&d.atoms_circles_2D){e=0;for(f=this.atoms.length;e<f;e++)this.atoms[e].draw(a,d)}};e.render=function(e,d){this.specs&&(d=this.specs); +var f=0<this.atoms.length&&void 0!==this.atoms[0].hetatm;if(f){if(d.macro_displayBonds){0<this.bonds.length&&(d.bonds_renderAsLines_3D&&!this.residueSpecs||this.residueSpecs&&this.residueSpecs.bonds_renderAsLines_3D?(e.lineWidth(this.residueSpecs?this.residueSpecs.bonds_width_2D:d.bonds_width_2D),e.lineBuffer.bindBuffers(e)):e.cylinderBuffer.bindBuffers(e),e.material.setTempColors(d.bonds_materialAmbientColor_3D,void 0,d.bonds_materialSpecularColor_3D,d.bonds_materialShininess_3D));for(var b=0,c= +this.bonds.length;b<c;b++){var h=this.bonds[b];if(!h.a1.hetatm&&(-1===d.macro_atomToLigandDistance||void 0!==h.a1.closestDistance&&d.macro_atomToLigandDistance>=h.a1.closestDistance&&d.macro_atomToLigandDistance>=h.a2.closestDistance))h.render(e,this.residueSpecs?this.residueSpecs:d)}}if(d.macro_displayAtoms){0<this.atoms.length&&(e.sphereBuffer.bindBuffers(e),e.material.setTempColors(d.atoms_materialAmbientColor_3D,void 0,d.atoms_materialSpecularColor_3D,d.atoms_materialShininess_3D));b=0;for(c= +this.atoms.length;b<c;b++){var j=this.atoms[b];if(!j.hetatm&&(-1===d.macro_atomToLigandDistance||void 0!==j.closestDistance&&d.macro_atomToLigandDistance>=j.closestDistance))j.render(e,this.residueSpecs?this.residueSpecs:d)}}}if(d.bonds_display){0<this.bonds.length&&(d.bonds_renderAsLines_3D?(e.lineWidth(d.bonds_width_2D),e.lineBuffer.bindBuffers(e)):e.cylinderBuffer.bindBuffers(e),e.material.setTempColors(d.bonds_materialAmbientColor_3D,void 0,d.bonds_materialSpecularColor_3D,d.bonds_materialShininess_3D)); +b=0;for(c=this.bonds.length;b<c;b++)h=this.bonds[b],(!f||h.a1.hetatm)&&h.render(e,d)}if(d.atoms_display){b=0;for(c=this.atoms.length;b<c;b++)j=this.atoms[b],j.bondNumber=0,j.renderAsStar=!1;b=0;for(c=this.bonds.length;b<c;b++)h=this.bonds[b],h.a1.bondNumber++,h.a2.bondNumber++;0<this.atoms.length&&(e.sphereBuffer.bindBuffers(e),e.material.setTempColors(d.atoms_materialAmbientColor_3D,void 0,d.atoms_materialSpecularColor_3D,d.atoms_materialShininess_3D));h=[];b=0;for(c=this.atoms.length;b<c;b++)if(j= +this.atoms[b],!f||j.hetatm&&(d.macro_showWater||!j.isWater))d.atoms_nonBondedAsStars_3D&&0===j.bondNumber?(j.renderAsStar=!0,h.push(j)):j.render(e,d);if(0<h.length){e.starBuffer.bindBuffers(e);b=0;for(c=h.length;b<c;b++)h[b].render(e,d)}}if(this.chains){e.setMatrixUniforms(e.modelViewMatrix);if(d.proteins_displayRibbon){e.material.setTempColors(d.proteins_materialAmbientColor_3D,void 0,d.proteins_materialSpecularColor_3D,d.proteins_materialShininess_3D);f=0;for(j=this.ribbons.length;f<j;f++)if(d.proteins_useShapelyColors|| +d.proteins_useAminoColors||d.proteins_usePolarityColors){h=d.proteins_ribbonCartoonize?this.cartoons[f]:this.ribbons[f];h.front.bindBuffers(e);b=0;for(c=h.front.segments.length;b<c;b++)h.front.segments[b].render(e,d);h.back.bindBuffers(e);b=0;for(c=h.back.segments.length;b<c;b++)h.back.segments[b].render(e,d)}else if(d.proteins_ribbonCartoonize){h=this.cartoons[f];h.front.bindBuffers(e);b=0;for(c=h.front.cartoonSegments.length;b<c;b++)h.front.cartoonSegments[b].render(e,d);h.back.bindBuffers(e);b= +0;for(c=h.back.cartoonSegments.length;b<c;b++)h.back.cartoonSegments[b].render(e,d)}else h=this.ribbons[f],h.front.render(e,d),h.back.render(e,d)}if(d.proteins_displayBackbone){if(!this.alphaCarbonTrace){this.alphaCarbonTrace={nodes:[],edges:[]};f=0;for(j=this.chains.length;f<j;f++){var m=this.chains[f];if(!(2<m.length&&g[m[2].name]&&"#BEA06E"===g[m[2].name].aminoColor)&&0<m.length){b=1;for(c=m.length-2;b<c;b++)h=m[b].cp1,h.chainColor=m.chainColor,this.alphaCarbonTrace.nodes.push(h),h=new a.Bond(m[b].cp1, +m[b+1].cp1),h.residueName=m[b].name,h.chainColor=m.chainColor,this.alphaCarbonTrace.edges.push(h),b===m.length-3&&(h=m[b+1].cp1,h.chainColor=m.chainColor,this.alphaCarbonTrace.nodes.push(h))}}}if(0<this.alphaCarbonTrace.nodes.length){f=new a.VisualSpecifications;f.atoms_display=!0;f.bonds_display=!0;f.atoms_sphereDiameter_3D=d.proteins_backboneThickness;f.bonds_cylinderDiameter_3D=d.proteins_backboneThickness;f.bonds_useJMOLColors=!1;f.atoms_color=d.proteins_backboneColor;f.bonds_color=d.proteins_backboneColor; +f.atoms_useVDWDiameters_3D=!1;e.material.setTempColors(d.proteins_materialAmbientColor_3D,void 0,d.proteins_materialSpecularColor_3D,d.proteins_materialShininess_3D);e.material.setDiffuseColor(d.proteins_backboneColor);b=0;for(c=this.alphaCarbonTrace.nodes.length;b<c;b++)h=this.alphaCarbonTrace.nodes[b],d.macro_colorByChain&&(f.atoms_color=h.chainColor),e.sphereBuffer.bindBuffers(e),h.render(e,f);b=0;for(c=this.alphaCarbonTrace.edges.length;b<c;b++){var j=this.alphaCarbonTrace.edges[b],t,h=g[j.residueName]? +g[j.residueName]:g["*"];d.macro_colorByChain?t=j.chainColor:d.proteins_useShapelyColors?t=h.shapelyColor:d.proteins_useAminoColors?t=h.aminoColor:d.proteins_usePolarityColors&&(t=h.polar?"#C10000":"#FFFFFF");t&&(f.bonds_color=t);e.cylinderBuffer.bindBuffers(e);j.render(e,f)}}}if(d.nucleics_display){e.material.setTempColors(d.nucleics_materialAmbientColor_3D,void 0,d.nucleics_materialSpecularColor_3D,d.nucleics_materialShininess_3D);f=0;for(j=this.tubes.length;f<j;f++)e.setMatrixUniforms(e.modelViewMatrix), +h=this.tubes[f],h.render(e,d)}}d.crystals_displayUnitCell&&this.unitCell&&(e.setMatrixUniforms(e.modelViewMatrix),this.unitCell.bindBuffers(e),e.material.setDiffuseColor(d.crystals_unitCellColor),e.lineWidth(d.crystals_unitCellLineWidth),e.drawElements(e.LINES,this.unitCell.vertexIndexBuffer.numItems,e.UNSIGNED_SHORT,0));this.surface&&d.surfaces_display&&(e.setMatrixUniforms(e.modelViewMatrix),this.surface.bindBuffers(e),e.material.setTempColors(d.surfaces_materialAmbientColor_3D,d.surfaces_color, +d.surfaces_materialSpecularColor_3D,d.surfaces_materialShininess_3D),"Dot"===d.surfaces_style?e.drawArrays(e.POINTS,0,this.surface.vertexPositionBuffer.numItems):e.drawElements(e.TRIANGLES,this.surface.vertexIndexBuffer.numItems,e.UNSIGNED_SHORT,0))};e.getCenter3D=function(){if(1===this.atoms.length)return new a.Atom("C",this.atoms[0].x,this.atoms[0].y,this.atoms[0].z);var e=Infinity,d=Infinity,g=Infinity,b=-Infinity,c=-Infinity,h=-Infinity;if(this.chains)for(var j=0,m=this.chains.length;j<m;j++)for(var t= +this.chains[j],n=0,u=t.length;n<u;n++)var q=t[n],e=f.min(q.cp1.x,e),d=f.min(q.cp1.y,d),g=f.min(q.cp1.z,g),b=f.max(q.cp1.x,b),c=f.max(q.cp1.y,c),h=f.max(q.cp1.z,h),e=f.min(q.cp2.x,e),d=f.min(q.cp2.y,d),g=f.min(q.cp2.z,g),b=f.max(q.cp2.x,b),c=f.max(q.cp2.y,c),h=f.max(q.cp2.z,h);j=0;for(m=this.atoms.length;j<m;j++)e=f.min(this.atoms[j].x,e),d=f.min(this.atoms[j].y,d),g=f.min(this.atoms[j].z,g),b=f.max(this.atoms[j].x,b),c=f.max(this.atoms[j].y,c),h=f.max(this.atoms[j].z,h);return new a.Atom("C",(b+e)/ +2,(c+d)/2,(h+g)/2)};e.getCenter=function(){if(1===this.atoms.length)return new a.Point(this.atoms[0].x,this.atoms[0].y);for(var e=Infinity,d=Infinity,g=-Infinity,b=-Infinity,c=0,h=this.atoms.length;c<h;c++)e=f.min(this.atoms[c].x,e),d=f.min(this.atoms[c].y,d),g=f.max(this.atoms[c].x,g),b=f.max(this.atoms[c].y,b);return new a.Point((g+e)/2,(b+d)/2)};e.getDimension=function(){if(1===this.atoms.length)return new a.Point(0,0);var e=Infinity,d=Infinity,g=-Infinity,b=-Infinity;if(this.chains){for(var c= +0,h=this.chains.length;c<h;c++)for(var j=this.chains[c],m=0,t=j.length;m<t;m++)var n=j[m],e=f.min(n.cp1.x,e),d=f.min(n.cp1.y,d),g=f.max(n.cp1.x,g),b=f.max(n.cp1.y,b),e=f.min(n.cp2.x,e),d=f.min(n.cp2.y,d),g=f.max(n.cp2.x,g),b=f.max(n.cp2.y,b);e-=30;d-=30;g+=30;b+=30}c=0;for(h=this.atoms.length;c<h;c++)e=f.min(this.atoms[c].x,e),d=f.min(this.atoms[c].y,d),g=f.max(this.atoms[c].x,g),b=f.max(this.atoms[c].y,b);return new a.Point(g-e,b-d)};e.check=function(a){if(a&&this.doChecks){if(this.findRings)if(this.bonds.length- +this.atoms.length!==this.fjNumCache){this.rings=(new c.informatics.SSSRFinder(this)).rings;for(var d=0,e=this.bonds.length;d<e;d++)this.bonds[d].ring=void 0;d=0;for(e=this.rings.length;d<e;d++)this.rings[d].setupBonds()}else{d=0;for(e=this.rings.length;d<e;d++){var f=this.rings[d];f.center=f.getCenter()}}d=0;for(e=this.atoms.length;d<e;d++)if(this.atoms[d].isLone=!1,"C"===this.atoms[d].label){for(var g=f=0,b=this.bonds.length;g<b;g++)(this.bonds[g].a1===this.atoms[d]||this.bonds[g].a2===this.atoms[d])&& +f++;0===f&&(this.atoms[d].isLone=!0)}f=!1;d=0;for(e=this.atoms.length;d<e;d++)0!==this.atoms[d].z&&(f=!0);f&&(this.sortAtomsByZ(),this.sortBondsByZ());this.setupMetaData();this.atomNumCache=this.atoms.length;this.bondNumCache=this.bonds.length;this.fjNumCache=this.bonds.length-this.atoms.length}this.doChecks=!a};e.getAngles=function(a){for(var d=[],e=0,f=this.bonds.length;e<f;e++)this.bonds[e].contains(a)&&d.push(a.angle(this.bonds[e].getNeighbor(a)));d.sort();return d};e.getCoordinationNumber=function(a){for(var d= +0,e=0,f=a.length;e<f;e++)d+=a[e].bondOrder;return d};e.getBonds=function(a){for(var d=[],e=0,f=this.bonds.length;e<f;e++)this.bonds[e].contains(a)&&d.push(this.bonds[e]);return d};e.sortAtomsByZ=function(){for(var a=1,d=this.atoms.length;a<d;a++)for(var e=a;0<e&&this.atoms[e].z<this.atoms[e-1].z;){var f=this.atoms[e];this.atoms[e]=this.atoms[e-1];this.atoms[e-1]=f;e--}};e.sortBondsByZ=function(){for(var a=1,d=this.bonds.length;a<d;a++)for(var e=a;0<e&&this.bonds[e].a1.z+this.bonds[e].a2.z<this.bonds[e- +1].a1.z+this.bonds[e-1].a2.z;){var f=this.bonds[e];this.bonds[e]=this.bonds[e-1];this.bonds[e-1]=f;e--}};e.setupMetaData=function(){for(var a=this.getCenter(),d=0,e=this.atoms.length;d<e;d++){var g=this.atoms[d];g.bonds=this.getBonds(g);g.angles=this.getAngles(g);g.isHidden=2===g.bonds.length&&f.abs(f.abs(g.angles[1]-g.angles[0])-f.PI)<f.PI/30&&g.bonds[0].bondOrder===g.bonds[1].bondOrder;var b=c.math.angleBetweenLargest(g.angles);g.angleOfLeastInterference=b.angle%(2*f.PI);g.largestAngle=b.largest; +g.coordinationNumber=this.getCoordinationNumber(g.bonds);g.bondNumber=g.bonds.length;g.molCenter=a}d=0;for(e=this.bonds.length;d<e;d++)this.bonds[d].molCenter=a};e.scaleToAverageBondLength=function(a){var d=this.getAverageBondLength();if(0!==d){a/=d;for(var d=0,e=this.atoms.length;d<e;d++)this.atoms[d].x*=a,this.atoms[d].y*=a}};e.getAverageBondLength=function(){if(0===this.bonds.length)return 0;for(var a=0,d=0,e=this.bonds.length;d<e;d++)a+=this.bonds[d].getLength();return a/=this.bonds.length};e.getBounds= +function(){for(var a=new b.Bounds,d=0,e=this.atoms.length;d<e;d++)a.expand(this.atoms[d].getBounds());if(this.chains){d=0;for(e=this.chains.length;d<e;d++)for(var f=this.chains[d],g=0,c=f.length;g<c;g++){var j=f[g];a.expand(j.cp1.x,j.cp1.y);a.expand(j.cp2.x,j.cp2.y)}a.minX-=30;a.minY-=30;a.maxX+=30;a.maxY+=30}return a}})(ChemDoodle,ChemDoodle.math,ChemDoodle.structures,ChemDoodle.RESIDUE,Math); +(function(c,b,a,g){var f,e=-1;c.Residue=function(a){this.resSeq=a};var o=c.Residue.prototype;o.setup=function(a,e){this.horizontalResolution=e;var f=[a.x-this.cp1.x,a.y-this.cp1.y,a.z-this.cp1.z],b=g.cross(f,[this.cp2.x-this.cp1.x,this.cp2.y-this.cp1.y,this.cp2.z-this.cp1.z],[]);this.D=g.cross(b,f,[]);g.normalize(b);g.normalize(this.D);this.guidePointsSmall=[];this.guidePointsLarge=[];f=[(a.x+this.cp1.x)/2,(a.y+this.cp1.y)/2,(a.z+this.cp1.z)/2];this.helix&&(g.scale(b,1.5),g.add(f,b));this.guidePointsSmall[0]= +new c.Atom("",f[0]-this.D[0]/2,f[1]-this.D[1]/2,f[2]-this.D[2]/2);for(b=1;b<e;b++)this.guidePointsSmall[b]=new c.Atom("",this.guidePointsSmall[0].x+this.D[0]*b/e,this.guidePointsSmall[0].y+this.D[1]*b/e,this.guidePointsSmall[0].z+this.D[2]*b/e);g.scale(this.D,4);this.guidePointsLarge[0]=new c.Atom("",f[0]-this.D[0]/2,f[1]-this.D[1]/2,f[2]-this.D[2]/2);for(b=1;b<e;b++)this.guidePointsLarge[b]=new c.Atom("",this.guidePointsLarge[0].x+this.D[0]*b/e,this.guidePointsLarge[0].y+this.D[1]*b/e,this.guidePointsLarge[0].z+ +this.D[2]*b/e)};o.getGuidePointSet=function(a){if(0===a)return this.helix||this.sheet?this.guidePointsLarge:this.guidePointsSmall;if(1===a)return this.guidePointsSmall;if(2===a)return this.guidePointsLarge};o.computeLineSegments=function(d,g,b,c,o){if(o!==e){var j=o*o,m=o*o*o;f=a.multiply([-1/6,0.5,-0.5,1/6,0.5,-1,0.5,0,-0.5,0,0.5,0,1/6,2/3,1/6,0],[6/m,0,0,0,6/m,2/j,0,0,1/m,1/j,1/o,0,0,0,0,1],[]);e=o}this.split=g.helix!==this.helix||g.sheet!==this.sheet;this.lineSegments=this.innerCompute(0,d,g,b, +!1,o);c&&(this.lineSegmentsCartoon=this.innerCompute(g.helix||g.sheet?2:1,d,g,b,!0,o))};o.innerCompute=function(d,e,o,l,h,j){var m=[],t=this.getGuidePointSet(d);e=e.getGuidePointSet(d);o=o.getGuidePointSet(d);for(var n=l.getGuidePointSet(d),u=0,q=this.guidePointsLarge.length;u<q;u++){for(var r=a.multiply([e[u].x,e[u].y,e[u].z,1,t[u].x,t[u].y,t[u].z,1,o[u].x,o[u].y,o[u].z,1,n[u].x,n[u].y,n[u].z,1],f,[]),w=[],p=0;p<j;p++){for(d=3;0<d;d--)for(l=0;4>l;l++)r[4*d+l]+=r[4*(d-1)+l];w[p]=new c.Atom("",r[12]/ +r[15],r[13]/r[15],r[14]/r[15])}m[u]=w}if(h&&this.arrow)for(d=0;d<j;d++){h=1.5-1.3*d/j;t=b.floor(this.horizontalResolution/2);e=m[t];l=0;for(o=m.length;l<o;l++)l!==t&&(n=e[d],u=m[l][d],q=[u.x-n.x,u.y-n.y,u.z-n.z],g.scale(q,h),u.x=n.x+q[0],u.y=n.y+q[1],u.z=n.z+q[2])}return m}})(ChemDoodle.structures,Math,mat4,vec3); +(function(c,b,a,g,f){b.Spectrum=function(){this.data=[];this.metadata=[];this.dataDisplay=[];this.memory={offsetTop:0,offsetLeft:0,offsetBottom:0,flipXAxis:!1,scale:1,width:0,height:0}};g=b.Spectrum.prototype;g.title=void 0;g.xUnit=void 0;g.yUnit=void 0;g.continuous=!0;g.integrationSensitivity=0.01;g.draw=function(a,g,d,b){this.specs&&(g=this.specs);var v=5,l=0,h=0;a.fillStyle=g.text_color;a.textAlign="center";a.textBaseline="alphabetic";a.font=g.getFontString(g.text_font_size,g.text_font_families); +this.xUnit&&(h+=g.text_font_size,a.fillText(this.xUnit,d/2,b-2));this.yUnit&&g.plots_showYAxis&&(l+=g.text_font_size,a.save(),a.translate(g.text_font_size,b/2),a.rotate(-f.PI/2),a.fillText(this.yUnit,0,0),a.restore());this.title&&(v+=g.text_font_size,a.fillText(this.title,d/2,g.text_font_size));h+=5+g.text_font_size;g.plots_showYAxis&&(l+=5+a.measureText("1000").width);g.plots_showGrid&&(a.strokeStyle=g.plots_gridColor,a.lineWidth=g.plots_gridLineWidth,a.strokeRect(l,v,d-l,b-h-v));a.textAlign="center"; +a.textBaseline="top";for(var j=this.maxX-this.minX,m=j/100,t=0.001;t<m||25<j/t;)t*=10;for(var n=0,u=g.plots_flipXAxis?d:0,j=f.round(this.minX/t)*t;j<=this.maxX;j+=t/2){var q=this.getTransformedX(j,g,d,l);if(q>l)if(a.strokeStyle="black",a.lineWidth=1,0===n%2){a.beginPath();a.moveTo(q,b-h);a.lineTo(q,b-h+2);a.stroke();for(m=j.toFixed(5);"0"===m.charAt(m.length-1);)m=m.substring(0,m.length-1);"."===m.charAt(m.length-1)&&(m=m.substring(0,m.length-1));var r=a.measureText(m).width;g.plots_flipXAxis&&(r*= +-1);var w=q-r/2;if(g.plots_flipXAxis?w<u:w>u)a.fillText(m,q,b-h+2),u=q+r/2;g.plots_showGrid&&(a.strokeStyle=g.plots_gridColor,a.lineWidth=g.plots_gridLineWidth,a.beginPath(),a.moveTo(q,b-h),a.lineTo(q,v),a.stroke())}else a.beginPath(),a.moveTo(q,b-h),a.lineTo(q,b-h+2),a.stroke();n++}if(g.plots_showYAxis||g.plots_showGrid){t=1/g.scale;a.textAlign="right";a.textBaseline="middle";for(j=0;10>=j;j++)if(m=t/10*j,n=v+(b-h-v)*(1-m*g.scale),g.plots_showGrid&&(a.strokeStyle=g.plots_gridColor,a.lineWidth=g.plots_gridLineWidth, +a.beginPath(),a.moveTo(l,n),a.lineTo(d,n),a.stroke()),g.plots_showYAxis){a.strokeStyle="black";a.lineWidth=1;a.beginPath();a.moveTo(l,n);a.lineTo(l-3,n);a.stroke();m*=100;u=f.max(0,3-f.floor(m).toString().length);m=m.toFixed(u);if(0<u)for(;"0"===m.charAt(m.length-1);)m=m.substring(0,m.length-1);"."===m.charAt(m.length-1)&&(m=m.substring(0,m.length-1));a.fillText(m,l-3,n)}}a.strokeStyle="black";a.lineWidth=1;a.beginPath();a.moveTo(d,b-h);a.lineTo(l,b-h);g.plots_showYAxis&&a.lineTo(l,v);a.stroke(); +if(0<this.dataDisplay.length){a.textAlign="left";a.textBaseline="top";j=m=0;for(t=this.dataDisplay.length;j<t;j++)if(this.dataDisplay[j].value)a.fillText([this.dataDisplay[j].display,": ",this.dataDisplay[j].value].join(""),l+10,v+10+m*(g.text_font_size+5)),m++;else if(this.dataDisplay[j].tag){n=0;for(u=this.metadata.length;n<u;n++)if(c.stringStartsWith(this.metadata[n],this.dataDisplay[j].tag)){u=this.metadata[n];this.dataDisplay[j].display&&(u=this.metadata[n].indexOf("\x3d"),u=[this.dataDisplay[j].display, +": ",-1<u?this.metadata[n].substring(u+2):this.metadata[n]].join(""));a.fillText(u,l+10,v+10+m*(g.text_font_size+5));m++;break}}}this.drawPlot(a,g,d,b,v,l,h);this.memory.offsetTop=v;this.memory.offsetLeft=l;this.memory.offsetBottom=h;this.memory.flipXAxis=g.plots_flipXAxis;this.memory.scale=g.scale;this.memory.width=d;this.memory.height=b};g.drawPlot=function(a,g,d,c,v,l,h){this.specs&&(g=this.specs);a.strokeStyle=g.plots_color;a.lineWidth=g.plots_width;var j=[];a.beginPath();if(this.continuous)for(var m= +!1,t=0,n=0,u=this.data.length;n<u;n++){var q=this.getTransformedX(this.data[n].x,g,d,l);if(q>=l&&q<d){var r=this.getTransformedY(this.data[n].y,g,c,h,v);g.plots_showIntegration&&f.abs(this.data[n].y)>this.integrationSensitivity&&j.push(new b.Point(this.data[n].x,this.data[n].y));m||(a.moveTo(q,r),m=!0);a.lineTo(q,r);t++;0===t%1E3&&(a.stroke(),a.beginPath(),a.moveTo(q,r))}else if(m)break}else{n=0;for(u=this.data.length;n<u;n++)q=this.getTransformedX(this.data[n].x,g,d,l),q>=l&&q<d&&(a.moveTo(q,c-h), +a.lineTo(q,this.getTransformedY(this.data[n].y,g,c,h,v)))}a.stroke();if(g.plots_showIntegration&&1<j.length){a.strokeStyle=g.plots_integrationColor;a.lineWidth=g.plots_integrationLineWidth;a.beginPath();n=j[1].x>j[0].x;if(this.flipXAxis&&!n||!this.flipXAxis&&n){for(n=j.length-2;0<=n;n--)j[n].y+=j[n+1].y;m=j[0].y}else{n=1;for(u=j.length;n<u;n++)j[n].y+=j[n-1].y;m=j[j.length-1].y}n=0;for(u=j.length;n<u;n++)q=this.getTransformedX(j[n].x,g,d,l),r=this.getTransformedY(j[n].y/g.scale/m,g,c,h,v),0===n?a.moveTo(q, +r):a.lineTo(q,r);a.stroke()}};g.getTransformedY=function(a,f,d,g,b){return b+(d-g-b)*(1-a*f.scale)};g.getInverseTransformedY=function(a){return 100*((1-(a-this.memory.offsetTop)/(this.memory.height-this.memory.offsetBottom-this.memory.offsetTop))/this.memory.scale)};g.getTransformedX=function(a,f,d,g){a=g+(a-this.minX)/(this.maxX-this.minX)*(d-g);f.plots_flipXAxis&&(a=d+g-a);return a};g.getInverseTransformedX=function(a){this.memory.flipXAxis&&(a=this.memory.width+this.memory.offsetLeft-a);return(a- +this.memory.offsetLeft)*(this.maxX-this.minX)/(this.memory.width-this.memory.offsetLeft)+this.minX};g.setup=function(){for(var a=Number.MAX_VALUE,g=Number.MIN_VALUE,d=Number.MIN_VALUE,b=0,c=this.data.length;b<c;b++)a=f.min(a,this.data[b].x),g=f.max(g,this.data[b].x),d=f.max(d,this.data[b].y);this.continuous?(this.minX=a,this.maxX=g):(this.minX=a-1,this.maxX=g+1);b=0;for(c=this.data.length;b<c;b++)this.data[b].y/=d};g.zoom=function(e,g,d,b){e=this.getInverseTransformedX(e);g=this.getInverseTransformedX(g); +this.minX=f.min(e,g);this.maxX=f.max(e,g);if(b){b=Number.MIN_VALUE;g=0;for(e=this.data.length;g<e;g++)a.isBetween(this.data[g].x,this.minX,this.maxX)&&(b=f.max(b,this.data[g].y));return 1/b}};g.translate=function(a,f){var d=a/(f-this.memory.offsetLeft)*(this.maxX-this.minX)*(this.memory.flipXAxis?1:-1);this.minX+=d;this.maxX+=d};g.alertMetadata=function(){alert(this.metadata.join("\n"))};g.getInternalCoordinates=function(a,f){return new ChemDoodle.structures.Point(this.getInverseTransformedX(a),this.getInverseTransformedY(f))}; +g.getClosestPlotInternalCoordinates=function(e){var f=this.getInverseTransformedX(e-1);e=this.getInverseTransformedX(e+1);if(f>e){var d=f,f=e;e=d}for(var d=-1,g=-Infinity,b=!1,c=0,h=this.data.length;c<h;c++){var j=this.data[c];if(a.isBetween(j.x,f,e))j.y>g&&(b=!0,g=j.y,d=c);else if(b)break}if(-1!==d)return j=this.data[d],new ChemDoodle.structures.Point(j.x,100*j.y)};g.getClosestPeakInternalCoordinates=function(a){var g=this.getInverseTransformedX(a);a=0;for(var d=Infinity,b=0,c=this.data.length;b< +c;b++){var l=f.abs(this.data[b].x-g);if(l<=d)d=l,a=b;else break}g=highestRight=a;d=maxRight=this.data[a].y;b=a+1;for(c=this.data.length;b<c;b++)if(this.data[b].y+0.05>maxRight)maxRight=this.data[b].y,highestRight=b;else break;for(b=a-1;0<=b;b--)if(this.data[b].y+0.05>d)d=this.data[b].y,g=b;else break;a=this.data[g-a>highestRight-a?highestRight:g];return new ChemDoodle.structures.Point(a.x,100*a.y)}})(ChemDoodle.extensions,ChemDoodle.structures,ChemDoodle.math,jQuery,Math); +(function(c,b,a){b._Shape=function(){};b=b._Shape.prototype;b.drawDecorations=function(a,f){if(this.isHover)for(var e=this.getPoints(),b=0,d=e.length;b<d;b++){var c=e[b];this.drawAnchor(a,f,c,c===this.hoverPoint)}};b.getBounds=function(){for(var a=new c.Bounds,f=this.getPoints(),e=0,b=f.length;e<b;e++){var d=f[e];a.expand(d.x,d.y)}return a};b.drawAnchor=function(g,f,e,b){g.save();g.translate(e.x,e.y);g.rotate(a.PI/4);g.scale(1/f.scale,1/f.scale);g.beginPath();g.moveTo(-4,-4);g.lineTo(4,-4);g.lineTo(4, +4);g.lineTo(-4,4);g.closePath();g.fillStyle=b?"#885110":"white";g.fill();g.beginPath();g.moveTo(-4,-2);g.lineTo(-4,-4);g.lineTo(-2,-4);g.moveTo(2,-4);g.lineTo(4,-4);g.lineTo(4,-2);g.moveTo(4,2);g.lineTo(4,4);g.lineTo(2,4);g.moveTo(-2,4);g.lineTo(-4,4);g.lineTo(-4,2);g.moveTo(-4,-2);g.strokeStyle="rgba(0,0,0,.2)";g.lineWidth=5;g.stroke();g.strokeStyle="blue";g.lineWidth=1;g.stroke();g.restore()}})(ChemDoodle.math,ChemDoodle.structures.d2,Math); +(function(c,b,a,g,f){g.Bracket=function(e,f){this.p1=e?e:new a.Point;this.p2=f?f:new a.Point};g=g.Bracket.prototype=new g._Shape;g.charge=0;g.mult=0;g.repeat=0;g.draw=function(a,g){var d=f.min(this.p1.x,this.p2.x),b=f.max(this.p1.x,this.p2.x),v=f.min(this.p1.y,this.p2.y),l=f.max(this.p1.y,this.p2.y),h=l-v,j=h/10;a.beginPath();a.moveTo(d+j,v);a.lineTo(d,v);a.lineTo(d,l);a.lineTo(d+j,l);a.moveTo(b-j,l);a.lineTo(b,l);a.lineTo(b,v);a.lineTo(b-j,v);this.isLassoed&&(j=a.createLinearGradient(this.p1.x,this.p1.y, +this.p2.x,this.p2.y),j.addColorStop(0,"rgba(212, 99, 0, 0)"),j.addColorStop(0.5,"rgba(212, 99, 0, 0.8)"),j.addColorStop(1,"rgba(212, 99, 0, 0)"),a.lineWidth=g.shapes_lineWidth_2D+5,a.strokeStyle=j,a.lineJoin="miter",a.lineCap="square",a.stroke());a.strokeStyle=g.shapes_color;a.lineWidth=g.shapes_lineWidth_2D;a.lineJoin="miter";a.lineCap="butt";a.stroke();0!==this.charge&&(a.fillStyle=g.text_color,a.textAlign="left",a.textBaseline="alphabetic",a.font=g.getFontString(g.text_font_size,g.text_font_families), +j=this.charge.toFixed(0),j="1"===j?"+":"-1"===j?"\u2013":c.stringStartsWith(j,"-")?j.substring(1)+"\u2013":j+"+",a.fillText(j,b+5,v+5));0!==this.mult&&(a.fillStyle=g.text_color,a.textAlign="right",a.textBaseline="middle",a.font=g.getFontString(g.text_font_size,g.text_font_families),a.fillText(this.mult.toFixed(0),d-5,v+h/2));0!==this.repeat&&(a.fillStyle=g.text_color,a.textAlign="left",a.textBaseline="top",a.font=g.getFontString(g.text_font_size,g.text_font_families),j=this.repeat.toFixed(0),a.fillText(j, +b+5,l-5))};g.getPoints=function(){return[this.p1,this.p2]};g.isOver=function(a){return b.isBetween(a.x,this.p1.x,this.p2.x)&&b.isBetween(a.y,this.p1.y,this.p2.y)}})(ChemDoodle.extensions,ChemDoodle.math,ChemDoodle.structures,ChemDoodle.structures.d2,Math); +(function(c,b,a,g){a.Line=function(a,g){this.p1=a?a:new b.Point;this.p2=g?g:new b.Point};a.Line.ARROW_SYNTHETIC="synthetic";a.Line.ARROW_RETROSYNTHETIC="retrosynthetic";a.Line.ARROW_RESONANCE="resonance";a.Line.ARROW_EQUILIBRIUM="equilibrium";var f=a.Line.prototype=new a._Shape;f.arrowType=void 0;f.topText=void 0;f.bottomText=void 0;f.draw=function(e,f){if(this.isLassoed){var d=e.createLinearGradient(this.p1.x,this.p1.y,this.p2.x,this.p2.y);d.addColorStop(0,"rgba(212, 99, 0, 0)");d.addColorStop(0.5, +"rgba(212, 99, 0, 0.8)");d.addColorStop(1,"rgba(212, 99, 0, 0)");var b=2.5,c=this.p1.angle(this.p2)+g.PI/2,l=g.cos(c),c=g.sin(c),h=this.p1.x-l*b,j=this.p1.y+c*b,m=this.p1.x+l*b,t=this.p1.y-c*b,n=this.p2.x+l*b,u=this.p2.y-c*b,q=this.p2.x-l*b,r=this.p2.y+c*b;e.fillStyle=d;e.beginPath();e.moveTo(h,j);e.lineTo(m,t);e.lineTo(n,u);e.lineTo(q,r);e.closePath();e.fill()}e.strokeStyle=f.shapes_color;e.fillStyle=f.shapes_color;e.lineWidth=f.shapes_lineWidth_2D;e.lineJoin="miter";e.lineCap="butt";if(this.p1.x!== +this.p2.x||this.p1.y!==this.p2.y){if(this.arrowType===a.Line.ARROW_RETROSYNTHETIC){var d=2*g.sqrt(2),b=f.shapes_arrowLength_2D/d,l=this.p1.angle(this.p2),c=l+g.PI/2,d=f.shapes_arrowLength_2D/d,w=g.cos(l),p=g.sin(l),l=g.cos(c),c=g.sin(c),h=this.p1.x-l*b,j=this.p1.y+c*b,m=this.p1.x+l*b,t=this.p1.y-c*b,n=this.p2.x+l*b-w*d,u=this.p2.y-c*b+p*d,q=this.p2.x-l*b-w*d,r=this.p2.y+c*b+p*d,y=this.p2.x+2*l*b-2*w*d,z=this.p2.y-2*c*b+2*p*d,x=this.p2.x-2*l*b-2*w*d,b=this.p2.y+2*c*b+2*p*d;e.beginPath();e.moveTo(m, +t);e.lineTo(n,u);e.moveTo(y,z);e.lineTo(this.p2.x,this.p2.y);e.lineTo(x,b);e.moveTo(q,r);e.lineTo(h,j)}else this.arrowType===a.Line.ARROW_EQUILIBRIUM?(d=2*g.sqrt(2),b=f.shapes_arrowLength_2D/d/2,l=this.p1.angle(this.p2),c=l+g.PI/2,d=2*f.shapes_arrowLength_2D/g.sqrt(3),w=g.cos(l),p=g.sin(l),l=g.cos(c),c=g.sin(c),h=this.p1.x-l*b,j=this.p1.y+c*b,m=this.p1.x+l*b,t=this.p1.y-c*b,n=this.p2.x+l*b,u=this.p2.y-c*b,q=this.p2.x-l*b,r=this.p2.y+c*b,e.beginPath(),e.moveTo(m,t),e.lineTo(n,u),e.moveTo(q,r),e.lineTo(h, +j),e.stroke(),m=n-0.8*w*d,t=u+0.8*p*d,y=n+l*f.shapes_arrowLength_2D/3-w*d,z=u-c*f.shapes_arrowLength_2D/3+p*d,e.beginPath(),e.moveTo(n,u),e.lineTo(y,z),e.lineTo(m,t),e.closePath(),e.fill(),e.stroke(),m=h+0.8*w*d,t=j-0.8*p*d,y=h-l*f.shapes_arrowLength_2D/3+w*d,z=j+c*f.shapes_arrowLength_2D/3-p*d,e.beginPath(),e.moveTo(h,j),e.lineTo(y,z),e.lineTo(m,t),e.closePath(),e.fill()):this.arrowType===a.Line.ARROW_SYNTHETIC?(l=this.p1.angle(this.p2),c=l+g.PI/2,d=2*f.shapes_arrowLength_2D/g.sqrt(3),w=g.cos(l), +p=g.sin(l),l=g.cos(c),c=g.sin(c),e.beginPath(),e.moveTo(this.p1.x,this.p1.y),e.lineTo(this.p2.x-w*d/2,this.p2.y+p*d/2),e.stroke(),m=this.p2.x-0.8*w*d,t=this.p2.y+0.8*p*d,y=this.p2.x+l*f.shapes_arrowLength_2D/3-w*d,z=this.p2.y-c*f.shapes_arrowLength_2D/3+p*d,x=this.p2.x-l*f.shapes_arrowLength_2D/3-w*d,b=this.p2.y+c*f.shapes_arrowLength_2D/3+p*d,e.beginPath(),e.moveTo(this.p2.x,this.p2.y),e.lineTo(x,b),e.lineTo(m,t),e.lineTo(y,z),e.closePath(),e.fill()):this.arrowType===a.Line.ARROW_RESONANCE?(l=this.p1.angle(this.p2), +c=l+g.PI/2,d=2*f.shapes_arrowLength_2D/g.sqrt(3),w=g.cos(l),p=g.sin(l),l=g.cos(c),c=g.sin(c),e.beginPath(),e.moveTo(this.p1.x+w*d/2,this.p1.y-p*d/2),e.lineTo(this.p2.x-w*d/2,this.p2.y+p*d/2),e.stroke(),m=this.p2.x-0.8*w*d,t=this.p2.y+0.8*p*d,y=this.p2.x+l*f.shapes_arrowLength_2D/3-w*d,z=this.p2.y-c*f.shapes_arrowLength_2D/3+p*d,x=this.p2.x-l*f.shapes_arrowLength_2D/3-w*d,b=this.p2.y+c*f.shapes_arrowLength_2D/3+p*d,e.beginPath(),e.moveTo(this.p2.x,this.p2.y),e.lineTo(x,b),e.lineTo(m,t),e.lineTo(y, +z),e.closePath(),e.fill(),e.stroke(),m=this.p1.x+0.8*w*d,t=this.p1.y-0.8*p*d,y=this.p1.x-l*f.shapes_arrowLength_2D/3+w*d,z=this.p1.y+c*f.shapes_arrowLength_2D/3-p*d,x=this.p1.x+l*f.shapes_arrowLength_2D/3+w*d,b=this.p1.y-c*f.shapes_arrowLength_2D/3-p*d,e.beginPath(),e.moveTo(this.p1.x,this.p1.y),e.lineTo(x,b),e.lineTo(m,t),e.lineTo(y,z),e.closePath(),e.fill()):(e.beginPath(),e.moveTo(this.p1.x,this.p1.y),e.lineTo(this.p2.x,this.p2.y));e.stroke();this.topText&&(e.textAlign="center",e.textBaseline= +"bottom",e.fillText(this.topText,(this.p1.x+this.p2.x)/2,this.p1.y-5));this.bottomText&&(e.textAlign="center",e.textBaseline="top",e.fillText(this.bottomText,(this.p1.x+this.p2.x)/2,this.p1.y+5))}};f.getPoints=function(){return[this.p1,this.p2]};f.isOver=function(a,f){var d=c.distanceFromPointToLineInclusive(a,this.p1,this.p2);return-1!==d&&d<f}})(ChemDoodle.math,ChemDoodle.structures,ChemDoodle.structures.d2,Math); +(function(c,b,a,g,f){var e=function(e,d,g){if(d.molCenter){if(d instanceof a.Atom){var b=d.molCenter.angle(e);0===d.bondNumber&&(b+=f.PI);if(d.angles)for(var c=0,h=d.angles.length;c<h;c++)if(f.abs(d.angles[c]-b)<f.PI/6){b=d.angleOfLeastInterference;break}if(d.bonds){c=0;for(h=d.bonds.length;c<h;c++){var j=d.bonds[c];if(2===j.bondOrder&&(j=j.getNeighbor(d),"O"===j.label)){b=j.angle(d);break}}}return new a.Point(e.x+g*f.cos(b),e.y-g*f.sin(b))}b=d.a1.angle(d.a2);c=b+f.PI/2;b=c+f.PI;c=new a.Point(e.x+ +g*f.cos(c),e.y-g*f.sin(c));e=new a.Point(e.x+g*f.cos(b),e.y-g*f.sin(b));return c.distance(d.molCenter)>e.distance(d.molCenter)?c:e}return e};g.Pusher=function(a,d,e){this.o1=a;this.o2=d;this.numElectron=e?e:1};c=g.Pusher.prototype=new g._Shape;c.drawDecorations=function(e,d){if(this.isHover)for(var f=this.o1 instanceof a.Atom?new a.Point(this.o1.x,this.o1.y):this.o1.getCenter(),g=this.o2 instanceof a.Atom?new a.Point(this.o2.x,this.o2.y):this.o2.getCenter(),f=[f,g],g=0,b=f.length;g<b;g++){var c=f[g]; +this.drawAnchor(e,d,c,c===this.hoverPoint)}};c.draw=function(g,d){if(this.o1&&this.o2){g.strokeStyle=d.shapes_color;g.fillStyle=d.shapes_color;g.lineWidth=d.shapes_lineWidth_2D;g.lineJoin="miter";g.lineCap="butt";for(var b=this.o1 instanceof a.Atom?new a.Point(this.o1.x,this.o1.y):this.o1.getCenter(),c=this.o2 instanceof a.Atom?new a.Point(this.o2.x,this.o2.y):this.o2.getCenter(),l=f.max(50,b.distance(c)),h=e(b,this.o1,l),j=e(c,this.o2,l),m=h.angle(b),t=j.angle(c),n=f.max(m,t)-f.min(m,t);n+0.001>= +f.PI;)n-=f.PI;0.001>n&&(m+=f.PI/6,t+=f.PI/6,h.x=b.x+l*f.cos(m+f.PI),h.y=b.y-l*f.sin(m+f.PI),j.x=c.x+l*f.cos(t+f.PI),j.y=c.y-l*f.sin(t+f.PI));n=m+f.PI/2;l=f.cos(m);m=f.sin(m);if(d.pusher_showElectron_2D&&this.o1 instanceof a.Atom){var u=5;if(this.o1.isLabelVisible(d)||1<this.o1.bondOrder)u=8;b.x-=l*u;b.y+=m*u;2===this.numElectron?(u=Math.cos(n)*d.atoms_lonePairSpread_2D/2,n=-Math.sin(n)*d.atoms_lonePairSpread_2D/2,g.beginPath(),g.arc(b.x+u,b.y+n,d.atoms_lonePairDiameter_2D,0,2*f.PI,!1),g.fill(),g.beginPath(), +g.arc(b.x-u,b.y-n,d.atoms_lonePairDiameter_2D,0,2*f.PI,!1)):(g.beginPath(),g.arc(b.x,b.y,d.atoms_lonePairDiameter_2D,0,2*f.PI,!1));g.fill()}b.x-=5*l;b.y+=5*m;var n=t+f.PI/2,q=2*d.shapes_arrowLength_2D/f.sqrt(3),l=f.cos(t),m=f.sin(t),r=f.cos(n),w=f.sin(n);c.x-=5*l;c.y+=5*m;t=new a.Point(c.x,c.y);c.x-=0.8*l*q;c.y+=0.8*m*q;var n=t.x-0.8*l*q,u=t.y+0.8*m*q,p=new a.Point(t.x+r*d.shapes_arrowLength_2D/3-l*q,t.y-w*d.shapes_arrowLength_2D/3+m*q),l=new a.Point(t.x-r*d.shapes_arrowLength_2D/3-l*q,t.y+w*d.shapes_arrowLength_2D/ +3+m*q),q=m=!0;1===this.numElectron&&(p.distance(h)>l.distance(h)?q=!1:m=!1);g.beginPath();g.moveTo(t.x,t.y);q&&g.lineTo(l.x,l.y);g.lineTo(n,u);m&&g.lineTo(p.x,p.y);g.closePath();g.fill();g.stroke();g.beginPath();g.moveTo(b.x,b.y);g.bezierCurveTo(h.x,h.y,j.x,j.y,c.x,c.y);g.stroke();this.cache=[b,h,j,c]}};c.getPoints=function(){return[]};c.isOver=function(a,d){return b.distanceFromCurve(a,this.cache).distance<d}})(ChemDoodle.math,ChemDoodle.math.jsBezier,ChemDoodle.structures,ChemDoodle.structures.d2, +Math); +(function(c){c._Mesh=function(){};c=c._Mesh.prototype;c.storeData=function(b,a,g){this.positionData=b;this.normalData=a;this.indexData=g};c.setupBuffers=function(b){this.vertexPositionBuffer=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,this.vertexPositionBuffer);b.bufferData(b.ARRAY_BUFFER,new Float32Array(this.positionData),b.STATIC_DRAW);this.vertexPositionBuffer.itemSize=3;this.vertexPositionBuffer.numItems=this.positionData.length/3;this.vertexNormalBuffer=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,this.vertexNormalBuffer); +b.bufferData(b.ARRAY_BUFFER,new Float32Array(this.normalData),b.STATIC_DRAW);this.vertexNormalBuffer.itemSize=3;this.vertexNormalBuffer.numItems=this.normalData.length/3;this.indexData&&(this.vertexIndexBuffer=b.createBuffer(),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.vertexIndexBuffer),b.bufferData(b.ELEMENT_ARRAY_BUFFER,new Uint16Array(this.indexData),b.STATIC_DRAW),this.vertexIndexBuffer.itemSize=1,this.vertexIndexBuffer.numItems=this.indexData.length);if(this.partitions)for(var a=0,g=this.partitions.length;a< +g;a++){var f=this.partitions[a],e=this.generateBuffers(b,f.positionData,f.normalData,f.indexData);f.vertexPositionBuffer=e[0];f.vertexNormalBuffer=e[1];f.vertexIndexBuffer=e[2]}};c.generateBuffers=function(b,a,g,f){var e=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,e);b.bufferData(b.ARRAY_BUFFER,new Float32Array(a),b.STATIC_DRAW);e.itemSize=3;e.numItems=a.length/3;a=b.createBuffer();b.bindBuffer(b.ARRAY_BUFFER,a);b.bufferData(b.ARRAY_BUFFER,new Float32Array(g),b.STATIC_DRAW);a.itemSize=3;a.numItems= +g.length/3;var c;f&&(c=b.createBuffer(),b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,c),b.bufferData(b.ELEMENT_ARRAY_BUFFER,new Uint16Array(f),b.STATIC_DRAW),c.itemSize=1,c.numItems=f.length);return[e,a,c]};c.bindBuffers=function(b){this.vertexPositionBuffer||this.setupBuffers(b);b.bindBuffer(b.ARRAY_BUFFER,this.vertexPositionBuffer);b.vertexAttribPointer(b.shader.vertexPositionAttribute,this.vertexPositionBuffer.itemSize,b.FLOAT,!1,0,0);b.bindBuffer(b.ARRAY_BUFFER,this.vertexNormalBuffer);b.vertexAttribPointer(b.shader.vertexNormalAttribute, +this.vertexNormalBuffer.itemSize,b.FLOAT,!1,0,0);this.vertexIndexBuffer&&b.bindBuffer(b.ELEMENT_ARRAY_BUFFER,this.vertexIndexBuffer)}})(ChemDoodle.structures.d3,Math);(function(c,b){c.Cylinder=function(a,g,f){for(var e=[],c=[],d=0;d<f;d++){var k=2*d*b.PI/f,v=b.cos(k),k=b.sin(k);c.push(v,0,k);e.push(a*v,0,a*k);c.push(v,0,k);e.push(a*v,g,a*k)}c.push(1,0,0);e.push(a,0,0);c.push(1,0,0);e.push(a,g,0);this.storeData(e,c)};c.Cylinder.prototype=new c._Mesh})(ChemDoodle.structures.d3,Math); +(function(c,b){b.Label=function(){this.textImage=new b.TextImage};var a=b.Label.prototype;a.initialize=function(a){a.blendFuncSeparate(a.SRC_ALPHA,a.ONE_MINUS_SRC_ALPHA,a.ONE,a.ONE_MINUS_SRC_ALPHA);this.initGLTexture(a);this.initGLProgram(a,"attribute vec3 a_vertex_position;\nattribute vec2 a_vertex_texcoord;\nattribute vec2 a_translation;\nattribute float a_z_depth;\nuniform mat4 u_model_view_matrix;\nuniform mat4 u_projection_matrix;\nuniform vec2 u_dimension;\nvarying vec2 v_texcoord;\nvoid main() {\ngl_Position \x3d u_model_view_matrix * vec4(a_vertex_position, 1.0);\nvec4 depth_pos \x3d vec4(gl_Position);\ndepth_pos.z +\x3d a_z_depth;\ngl_Position \x3d u_projection_matrix * gl_Position;\ndepth_pos \x3d u_projection_matrix * depth_pos;\ngl_Position /\x3d gl_Position.w;\ngl_Position.xy +\x3d a_translation / u_dimension * 2.0;\ngl_Position.z \x3d depth_pos.z / depth_pos.w;\nv_texcoord \x3d a_vertex_texcoord;\n}", +"precision mediump float;\nuniform sampler2D u_image;\nvarying vec2 v_texcoord;\nvoid main() {\ngl_FragColor \x3d texture2D(u_image, v_texcoord);\n}")};a.loadShader=function(a,f,e){switch(e){case "x-shader/x-vertex":e=a.createShader(a.VERTEX_SHADER);break;case "x-shader/x-fragment":e=a.createShader(a.FRAGMENT_SHADER);break;default:return}a.shaderSource(e,f);a.compileShader(e);if(a.getShaderParameter(e,a.COMPILE_STATUS))return e};a.initGLProgram=function(a,f,e){f=this.loadShader(a,f,"x-shader/x-vertex"); +e=this.loadShader(a,e,"x-shader/x-fragment");var b=a.createProgram();a.attachShader(b,f);a.attachShader(b,e);a.linkProgram(b);a.getProgramParameter(b,a.LINK_STATUS)&&(b.vertexPositionAttribute=a.getAttribLocation(b,"a_vertex_position"),b.vertexTexCoordAttribute=a.getAttribLocation(b,"a_vertex_texcoord"),b.vertexTranslationAttribute=a.getAttribLocation(b,"a_translation"),b.vertexZDepthAttribute=a.getAttribLocation(b,"a_z_depth"),this.modelViewMatrixUniform=a.getUniformLocation(b,"u_model_view_matrix"), +this.projectionMatrixUniform=a.getUniformLocation(b,"u_projection_matrix"),this.dimensionUniform=a.getUniformLocation(b,"u_dimension"),a.programLabel=b)};a.initGLTexture=function(a){this.textureImage=a.createTexture();a.bindTexture(a.TEXTURE_2D,this.textureImage);a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_S,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_WRAP_T,a.CLAMP_TO_EDGE);a.texParameteri(a.TEXTURE_2D,a.TEXTURE_MIN_FILTER,a.NEAREST);a.texParameteri(a.TEXTURE_2D, +a.TEXTURE_MAG_FILTER,a.NEAREST);a.bindTexture(a.TEXTURE_2D,null)};a.changeFontTexture=function(a,f){this.textImage.updateFont(f);a.bindTexture(a.TEXTURE_2D,this.textureImage);a.texImage2D(a.TEXTURE_2D,0,a.RGBA,a.RGBA,a.UNSIGNED_BYTE,this.textImage.getCanvas())};a.setUniforms=function(a){a.uniformMatrix4fv(this.modelViewMatrixUniform,!1,a.modelViewMatrix);a.uniformMatrix4fv(this.projectionMatrixUniform,!1,a.projectionMatrix);a.uniform2f(this.dimensionUniform,a.canvas.clientWidth,a.canvas.clientHeight)}; +a.updateVerticesBuffer=function(a,f,e){for(var b=0,d=f.length;b<d;b++){for(var k=f[b],v=k.labelMesh,l=k.atoms,h=this.textImage,j={position:[],texCoord:[],translation:[],zDepth:[]},m=0<l.length&&void 0!=l[0].hetatm,t=0,n=l.length;t<n;t++){var u=l[t],q=u.label,r=0.05;e.atoms_useVDWDiameters_3D?r+=c[q].vdWRadius*e.atoms_vdwMultiplier_3D:e.atoms_sphereDiameter_3D&&(r+=1.5*(e.atoms_sphereDiameter_3D/2));if(m)if(u.hetatm){if(u.isWater&&!e.macro_showWaters)continue}else if(!e.macro_displayAtoms)continue; +h.pushVertexData(q,[u.x,u.y,u.z],r,j)}if((k=k.chains)&&(e.proteins_displayRibbon||e.proteins_displayBackbone)){t=0;for(n=k.length;t<n;t++){l=k[t];m=0;for(q=l.length;m<q;m++){var w=l[m];w.name&&(u=w.cp1,r=0,e.atoms_useVDWDiameters_3D?r+=c[u.label].vdWRadius*e.atoms_vdwMultiplier_3D:e.atoms_sphereDiameter_3D&&(r+=1.5*(e.atoms_sphereDiameter_3D/2)),h.pushVertexData(w.name,[u.x,u.y,u.z],r,j))}}}v.storeData(a,j.position,j.texCoord,j.translation,j.zDepth)}};a.render=function(a,f,e){var b=a.programLabel, +d=a.program;a.useProgram(b);a.enable(a.BLEND);a.depthMask(!1);this.setUniforms(a);a.enableVertexAttribArray(b.vertexPositionAttribute);a.enableVertexAttribArray(b.vertexTexCoordAttribute);a.enableVertexAttribArray(b.vertexTranslationAttribute);a.enableVertexAttribArray(b.vertexZDepthAttribute);for(var c=0,v=e.length;c<v;c++)e[c].labelMesh&&e[c].labelMesh.render(a,f);a.disableVertexAttribArray(b.vertexPositionAttribute);a.disableVertexAttribArray(b.vertexTexCoordAttribute);a.disableVertexAttribArray(b.vertexTranslationAttribute); +a.disableVertexAttribArray(b.vertexZDepthAttribute);a.disable(a.BLEND);a.depthMask(!0);a.useProgram(d);a.enableVertexAttribArray(a.shader.vertexPositionAttribute);a.enableVertexAttribArray(a.shader.vertexNormalAttribute)};a.bindMoleculeLabel=function(a,f){for(var e=0,c=f.length;e<c;e++){var d=f[e];d.labelMesh instanceof b.TextMesh||(d.labelMesh=new b.TextMesh,d.labelMesh.initialize(a))}}})(ChemDoodle.ELEMENT,ChemDoodle.structures.d3); +(function(c,b){c.Sphere=function(a,g,f){for(var e=[],c=[],d=0;d<=g;d++)for(var k=d*b.PI/g,v=b.sin(k),l=b.cos(k),k=0;k<=f;k++){var h=2*k*b.PI/f,j=b.sin(h),h=b.cos(h)*v,m=l,j=j*v;c.push(h,m,j);e.push(a*h,a*m,a*j)}a=[];f+=1;for(d=0;d<g;d++)for(k=0;k<f;k++)v=d*f+k%f,l=v+f,a.push(v),a.push(l),a.push(v+1),k<f-1&&(a.push(l),a.push(l+1),a.push(v+1));this.storeData(e,c,a)};c.Sphere.prototype=new c._Mesh})(ChemDoodle.structures.d3,Math); +(function(c,b,a,g){function f(a,e,b,f){this.entire=a;this.name=e;this.indexes=b;this.pi=f}var e=function(a,e){a.bindBuffer(a.ARRAY_BUFFER,e.vertexPositionBuffer);a.vertexAttribPointer(a.shader.vertexPositionAttribute,e.vertexPositionBuffer.itemSize,a.FLOAT,!1,0,0);a.bindBuffer(a.ARRAY_BUFFER,e.vertexNormalBuffer);a.vertexAttribPointer(a.shader.vertexNormalAttribute,e.vertexNormalBuffer.itemSize,a.FLOAT,!1,0,0);a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,e.vertexIndexBuffer)},o=f.prototype;o.getColor=function(a){return a.macro_colorByChain? +this.chainColor:this.name?this.getResidueColor(c[this.name]?this.name:"*",a):this.helix?this.entire.front?a.proteins_ribbonCartoonHelixPrimaryColor:a.proteins_ribbonCartoonHelixSecondaryColor:this.sheet?a.proteins_ribbonCartoonSheetColor:this.entire.front?a.proteins_primaryColor:a.proteins_secondaryColor};o.getResidueColor=function(a,e){var b=c[a];return e.proteins_useShapelyColors?b.shapelyColor:e.proteins_useAminoColors?b.aminoColor:e.proteins_usePolarityColors&&b.polar?"#C10000":"#FFFFFF"};o.render= +function(a,b){this.entire.partitions&&this.pi!==this.entire.partitions.lastRender&&(e(a,this.entire.partitions[this.pi]),this.entire.partitions.lastRender=this.pi);this.vertexIndexBuffer||(this.vertexIndexBuffer=a.createBuffer(),a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.vertexIndexBuffer),a.bufferData(a.ELEMENT_ARRAY_BUFFER,new Uint16Array(this.indexes),a.STATIC_DRAW),this.vertexIndexBuffer.itemSize=1,this.vertexIndexBuffer.numItems=this.indexes.length);a.bindBuffer(a.ELEMENT_ARRAY_BUFFER,this.vertexIndexBuffer); +a.material.setDiffuseColor(this.getColor(b));a.drawElements(a.TRIANGLES,this.vertexIndexBuffer.numItems,a.UNSIGNED_SHORT,0)};b.Ribbon=function(d,e,b){var c=d[0].lineSegments.length,h=d[0].lineSegments[0].length;this.partitions=[];this.partitions.lastRender=0;var j;this.front=0<e;for(var o=0,t=d.length-1;o<t;o++){if(!j||65E3<j.positionData.length)0<this.partitions.length&&o--,j={count:0,positionData:[],normalData:[],indexData:[]},this.partitions.push(j);var n=d[o];j.count++;for(var u=0;u<c;u++)for(var q= +b?n.lineSegmentsCartoon[u]:n.lineSegments[u],r=0===u,w=!1,p=0;p<h;p++){var y=q[p],z=o,x=p+1;o===d.length-2&&p===h-1?x--:p===h-1&&(z++,x=0);var x=b?d[z].lineSegmentsCartoon[u][x]:d[z].lineSegments[u][x],z=!1,A=u+1;u===c-1&&(A-=2,z=!0);var A=b?n.lineSegmentsCartoon[A][p]:n.lineSegments[A][p],x=[x.x-y.x,x.y-y.y,x.z-y.z],A=[A.x-y.x,A.y-y.y,A.z-y.z],C=g.cross(x,A,[]);0===p&&(g.normalize(x),g.scale(x,-1),j.normalData.push(x[0],x[1],x[2]),j.positionData.push(y.x,y.y,y.z));r||w?(g.normalize(A),g.scale(A, +-1),j.normalData.push(A[0],A[1],A[2]),j.positionData.push(y.x,y.y,y.z),r&&p===h-1&&(r=!1,p=-1)):(g.normalize(C),(z&&!this.front||!z&&this.front)&&g.scale(C,-1),j.normalData.push(C[0],C[1],C[2]),g.scale(C,a.abs(e)),j.positionData.push(y.x+C[0],y.y+C[1],y.z+C[2]),u===c-1&&p===h-1&&(w=!0,p=-1));if(-1===p||p===h-1)g.normalize(x),j.normalData.push(x[0],x[1],x[2]),j.positionData.push(y.x,y.y,y.z)}}c+=2;h+=2;b&&(this.cartoonSegments=[]);this.segments=[];e=0;for(n=this.partitions.length;e<n;e++){j=this.partitions[e]; +var F;b&&(F=[]);o=0;for(t=j.count-1;o<t;o++){q=o;for(u=0;u<e;u++)q+=this.partitions[u].count-1;u=d[q];0<o&&(b&&u.split)&&(p=new f(this,void 0,F,e),u.helix&&(p.helix=!0),u.sheet&&(p.sheet=!0),this.cartoonSegments.push(p),F=[]);r=o*c*h;w=[];u=0;for(y=c-1;u<y;u++){z=r+u*h;for(p=0;p<h;p++){x=1;o===j.count-1?x=0:p===h-1&&(x=c*h-p);x=[z+p,z+h+p,z+h+p+x,z+p,z+p+x,z+h+p+x];if(p!==h-1)for(A=0;6>A;A++)w.push(x[A]);p===h-2&&o<j.count-1&&(A=c*h-p,x[2]+=A,x[4]+=A,x[5]+=A);for(A=0;6>A;A++)j.indexData.push(x[A]); +if(b)for(A=0;6>A;A++)F.push(x[A])}}this.segments.push(new f(this,d[q+1].name,w,e))}if(b){p=new f(this,void 0,F,e);q=j.count-1;for(u=0;u<e;u++)q+=this.partitions[u].count-1;u=d[q];u.helix&&(p.helix=!0);u.sheet&&(p.sheet=!0);this.cartoonSegments.push(p)}}this.storeData(this.partitions[0].positionData,this.partitions[0].normalData,this.partitions[0].indexData);1===this.partitions.length&&(this.partitions=void 0)};(b.Ribbon.prototype=new b._Mesh).render=function(a,b){this.bindBuffers(a);var f=b.macro_colorByChain? +this.chainColor:void 0;f||(f=this.front?b.proteins_primaryColor:b.proteins_secondaryColor);a.material.setDiffuseColor(f);a.drawElements(a.TRIANGLES,this.vertexIndexBuffer.numItems,a.UNSIGNED_SHORT,0);if(this.partitions)for(var f=1,g=this.partitions.length;f<g;f++){var c=this.partitions[f];e(a,c);a.drawElements(a.TRIANGLES,c.vertexIndexBuffer.numItems,a.UNSIGNED_SHORT,0)}}})(ChemDoodle.RESIDUE,ChemDoodle.structures.d3,Math,vec3); +(function(c,b,a){b.Light=function(a,b,e){this.diffuseRGB=c.getRGB(a,1);this.specularRGB=c.getRGB(b,1);this.direction=e};b.Light.prototype.lightScene=function(b){b.uniform3f(b.getUniformLocation(b.program,"u_light.diffuse_color"),this.diffuseRGB[0],this.diffuseRGB[1],this.diffuseRGB[2]);b.uniform3f(b.getUniformLocation(b.program,"u_light.specular_color"),this.specularRGB[0],this.specularRGB[1],this.specularRGB[2]);var f=a.create(this.direction);a.normalize(f);a.negate(f);b.uniform3f(b.getUniformLocation(b.program, +"u_light.direction"),f[0],f[1],f[2]);var e=[0,0,0],f=[e[0]+f[0],e[1]+f[1],e[2]+f[2]],e=a.length(f);0===e?f=[0,0,1]:a.scale(1/e);b.uniform3f(b.getUniformLocation(b.program,"u_light.half_vector"),f[0],f[1],f[2])}})(ChemDoodle.math,ChemDoodle.structures.d3,vec3);(function(c){c.Line=function(){this.storeData([0,0,0,0,1,0],[0,0,0,0,0,0])};c.Line.prototype=new c._Mesh})(ChemDoodle.structures.d3); +(function(c,b){b.Material=function(a){this.gl=a;this.aUL=a.getUniformLocation(a.program,"u_material.ambient_color");this.dUL=a.getUniformLocation(a.program,"u_material.diffuse_color");this.sUL=a.getUniformLocation(a.program,"u_material.specular_color");this.snUL=a.getUniformLocation(a.program,"u_material.shininess");this.alUL=a.getUniformLocation(a.program,"u_material.alpha")};var a=b.Material.prototype;a.setTempColors=function(a,b,e,o){if(!this.aCache||this.aCache!==a)this.aCache=a,a=c.getRGB(a, +1),this.gl.uniform3f(this.aUL,a[0],a[1],a[2]);if(b&&(!this.dCache||this.dCache!==b))this.dCache=b,a=c.getRGB(b,1),this.gl.uniform3f(this.dUL,a[0],a[1],a[2]);if(!this.sCache||this.sCache!==e)this.sCache=e,a=c.getRGB(e,1),this.gl.uniform3f(this.sUL,a[0],a[1],a[2]);if(!this.snCache||this.snCache!==o)this.snCache=o,this.gl.uniform1f(this.snUL,o);this.alCache=1;this.gl.uniform1f(this.alUL,1)};a.setDiffuseColor=function(a){if(!this.dCache||this.dCache!==a)this.dCache=a,a=c.getRGB(a,1),this.gl.uniform3f(this.dUL, +a[0],a[1],a[2])};a.setAlpha=function(a){if(!this.alCache||this.alCache!==a)this.alCache=a,this.gl.uniform1f(this.alUL,a)}})(ChemDoodle.math,ChemDoodle.structures.d3); +(function(c,b,a,g){b.MolecularSurface=function(b,e,o,d,k){function v(a,d,b,e){var f=a.index;if(a.contained)for(var f=-1,g=Infinity,c=0,h=d.length;c<h;c++)for(var j=d[c],k=0,o=j.length;k<o;k++){var l=j[k];if(!l.contained&&l.index!==b&&l.index!==e){var m=l.distance3D(a);m<g&&(f=l.index,g=m)}}return f}for(var l=[],h=[],j=[],m=[],t=0;t<=e;t++)for(var n=t*g.PI/e,u=g.sin(n),q=g.cos(n),n=0;n<=o;n++){var r=2*n*g.PI/o;m.push(g.cos(r)*u,q,g.sin(r)*u)}u=[];t=0;for(n=b.atoms.length;t<n;t++){for(var q=[],w=b.atoms[t], +p=a[w.label][k]+d,y=[],r=0,z=b.atoms.length;r<z;r++)if(r!==t){var x=b.atoms[r];x.index=r;w.distance3D(x)<p+a[x.label][k]+d&&y.push(x)}r=0;for(z=m.length;r<z;r+=3){for(var A=new c.Atom("C",w.x+p*m[r],w.y+p*m[r+1],w.z+p*m[r+2]),C=0,F=y.length;C<F;C++)if(x=y[C],A.distance3D(x)<a[x.label][k]+d){A.contained=!0;break}q.push(A)}u.push(q)}b=[];o++;for(t=0;t<e;t++)for(n=0;n<o;n++)k=t*o+n%o,d=k+o,b.push(k),b.push(d),b.push(k+1),n<o-1&&(b.push(d),b.push(d+1),b.push(k+1));t=C=0;for(n=u.length;t<n;t++){q=u[t]; +r=0;for(z=q.length;r<z;r++)A=q[r],A.contained||(A.index=C,C++,l.push(A.x,A.y,A.z),h.push(m[3*r],m[3*r+1],m[3*r+2]));r=0;for(z=b.length;r<z;r+=3)k=q[b[r]],d=q[b[r+1]],A=q[b[r+2]],!k.contained&&(!d.contained&&!A.contained)&&j.push(k.index,d.index,A.index)}m=[];t=0;for(n=u.length;t<n;t++){q=u[t];r=0;for(z=b.length;r<z;r+=3){k=q[b[r]];d=q[b[r+1]];A=q[b[r+2]];y=[];C=0;for(F=u.length;C<F;C++)C!==t&&y.push(u[C]);if((!k.contained||!d.contained||!A.contained)&&(k.contained||d.contained||A.contained))if(e= +v(k,y,-1,-1),o=v(d,y,e,-1),y=v(A,y,e,o),-1!==e&&-1!==o&&-1!==y){d=!1;C=0;for(F=m.length;C<F;C+=3)if(k=m[C],A=m[C+1],w=m[C+2],p=o===k||o===A||o===w,x=y===k||y===A||y===w,(e===k||e===A||e===w)&&p&&x){d=!0;break}d||m.push(e,o,y)}}}j=j.concat(m);this.storeData(l,h,j)};b.MolecularSurface.prototype=new b._Mesh})(ChemDoodle.structures,ChemDoodle.structures.d3,ChemDoodle.ELEMENT,Math); +(function(c,b){c.Shader=function(){};var a=c.Shader.prototype;a.init=function(a){var b=this.getShader(a,"vertex-shader");b||(b=this.loadDefaultVertexShader(a));var e=this.getShader(a,"fragment-shader");e||(e=this.loadDefaultFragmentShader(a));a.attachShader(a.program,b);a.attachShader(a.program,e);a.linkProgram(a.program);a.getProgramParameter(a.program,a.LINK_STATUS)||alert("Could not initialize shaders: "+a.getProgramInfoLog(program));a.useProgram(a.program);this.vertexPositionAttribute=a.getAttribLocation(a.program, +"a_vertex_position");a.enableVertexAttribArray(this.vertexPositionAttribute);this.vertexNormalAttribute=a.getAttribLocation(a.program,"a_vertex_normal");a.enableVertexAttribArray(this.vertexNormalAttribute)};a.getShader=function(a,f){var e=b.getElementById(f);if(e){for(var c=[],d=e.firstChild;d;)3===d.nodeType&&c.push(d.textContent),d=d.nextSibling;if("x-shader/x-fragment"===e.type)d=a.createShader(a.FRAGMENT_SHADER);else if("x-shader/x-vertex"===e.type)d=a.createShader(a.VERTEX_SHADER);else return; +a.shaderSource(d,c.join(""));a.compileShader(d);if(a.getShaderParameter(d,a.COMPILE_STATUS))return d;alert(e.type+" "+a.getShaderInfoLog(d))}};a.loadDefaultVertexShader=function(a){var b=[];b.push("struct Light");b.push("{");b.push("vec3 diffuse_color;");b.push("vec3 specular_color;");b.push("vec3 direction;");b.push("vec3 half_vector;");b.push("};");b.push("struct Material");b.push("{");b.push("vec3 ambient_color;");b.push("vec3 diffuse_color;");b.push("vec3 specular_color;");b.push("float shininess;"); +b.push("float alpha;");b.push("};");b.push("attribute vec3 a_vertex_position;");b.push("attribute vec3 a_vertex_normal;");b.push("uniform Light u_light;");b.push("uniform Material u_material;");b.push("uniform mat4 u_model_view_matrix;");b.push("uniform mat4 u_projection_matrix;");b.push("uniform mat3 u_normal_matrix;");b.push("varying vec4 v_diffuse;");b.push("varying vec4 v_ambient;");b.push("varying vec3 v_normal;");b.push("varying vec3 v_light_direction;");b.push("void main(void)");b.push("{"); +b.push("if(length(a_vertex_normal)\x3d\x3d0.0){");b.push("v_normal \x3d a_vertex_normal;");b.push("}else{");b.push("v_normal \x3d normalize(u_normal_matrix * a_vertex_normal);");b.push("}");b.push("vec4 diffuse \x3d vec4(u_light.diffuse_color, 1.0);");b.push("v_light_direction \x3d u_light.direction;");b.push("v_ambient \x3d vec4(u_material.ambient_color, 1.0);");b.push("v_diffuse \x3d vec4(u_material.diffuse_color, 1.0) * diffuse;");b.push("gl_Position \x3d u_projection_matrix * u_model_view_matrix * vec4(a_vertex_position, 1.0);"); +b.push("}");var e=a.createShader(a.VERTEX_SHADER);a.shaderSource(e,b.join(""));a.compileShader(e);if(a.getShaderParameter(e,a.COMPILE_STATUS))return e;alert("Vertex shader failed to compile: "+a.getShaderInfoLog(e))};a.loadDefaultFragmentShader=function(a){var b=[];b.push("precision mediump float;\n");b.push("struct Light");b.push("{");b.push("vec3 diffuse_color;");b.push("vec3 specular_color;");b.push("vec3 direction;");b.push("vec3 half_vector;");b.push("};");b.push("struct Material");b.push("{"); +b.push("vec3 ambient_color;");b.push("vec3 diffuse_color;");b.push("vec3 specular_color;");b.push("float shininess;");b.push("float alpha;");b.push("};");b.push("uniform Light u_light;");b.push("uniform Material u_material;");b.push("varying vec4 v_diffuse;");b.push("varying vec4 v_ambient;");b.push("varying vec3 v_normal;");b.push("varying vec3 v_light_direction;");b.push("void main(void)");b.push("{");b.push("if(length(v_normal)\x3d\x3d0.0){");b.push("gl_FragColor \x3d vec4(v_diffuse.rgba);");b.push("}else{"); +b.push("float nDotL \x3d max(dot(v_normal, v_light_direction), 0.0);");b.push("vec4 color \x3d vec4(v_diffuse.rgb*nDotL, v_diffuse.a);");b.push("float nDotHV \x3d max(dot(v_normal, u_light.half_vector), 0.0);");b.push("vec4 specular \x3d vec4(u_material.specular_color * u_light.specular_color, 1.0);");b.push("color+\x3dvec4(specular.rgb * pow(nDotHV, u_material.shininess), specular.a);");b.push("gl_FragColor \x3d color+v_ambient;");b.push("gl_FragColor.a*\x3du_material.alpha;");b.push("}");b.push("}"); +var e=a.createShader(a.FRAGMENT_SHADER);a.shaderSource(e,b.join(""));a.compileShader(e);if(a.getShaderParameter(e,a.COMPILE_STATUS))return e;alert("Fragment shader failed to compile: "+a.getShaderInfoLog(e))}})(ChemDoodle.structures.d3,document); +(function(c,b,a){b.Shape=function(b,f){for(var e=b.length,o=[],d=[],k=new c.Point,v=0,l=e;v<l;v++){var h=v+1;v===l-1&&(h=0);for(var j=b[v],h=b[h],m=a.cross([0,0,1],[h.x-j.x,h.y-j.y,0]),t=0;2>t;t++)o.push(j.x,j.y,f/2),o.push(j.x,j.y,-f/2),o.push(h.x,h.y,f/2),o.push(h.x,h.y,-f/2);for(t=0;4>t;t++)d.push(m[0],m[1],m[2]);d.push(0,0,1);d.push(0,0,-1);d.push(0,0,1);d.push(0,0,-1);k.add(j)}k.x/=e;k.y/=e;d.push(0,0,1);o.push(k.x,k.y,f/2);d.push(0,0,-1);o.push(k.x,k.y,-f/2);k=[];j=8*e;v=0;for(l=e;v<l;v++)e= +8*v,k.push(e),k.push(e+1),k.push(e+3),k.push(e),k.push(e+2),k.push(e+3),k.push(e+4),k.push(e+6),k.push(j),k.push(e+5),k.push(e+7),k.push(j+1);this.storeData(o,d,k)};b.Shape.prototype=new b._Mesh})(ChemDoodle.structures,ChemDoodle.structures.d3,vec3); +(function(c,b,a){c.Star=function(){for(var b=[0.8944,0.4472,0,0.2764,0.4472,0.8506,0.2764,0.4472,-0.8506,-0.7236,0.4472,0.5257,-0.7236,0.4472,-0.5257,-0.3416,0.4472,0,-0.1056,0.4472,0.3249,-0.1056,0.4472,-0.3249,0.2764,0.4472,0.2008,0.2764,0.4472,-0.2008,-0.8944,-0.4472,0,-0.2764,-0.4472,0.8506,-0.2764,-0.4472,-0.8506,0.7236,-0.4472,0.5257,0.7236,-0.4472,-0.5257,0.3416,-0.4472,0,0.1056,-0.4472,0.3249,0.1056,-0.4472,-0.3249,-0.2764,-0.4472,0.2008,-0.2764,-0.4472,-0.2008,-0.5527,0.1058,0,-0.1708,0.1058, +0.5527,-0.1708,0.1058,-0.5527,0.4471,0.1058,0.3249,0.4471,0.1058,-0.3249,0.5527,-0.1058,0,0.1708,-0.1058,0.5527,0.1708,-0.1058,-0.5527,-0.4471,-0.1058,0.3249,-0.4471,-0.1058,-0.3249,0,1,0,0,-1,0],f=[0,9,8,2,7,9,4,5,7,3,6,5,1,8,6,0,8,23,30,6,8,3,21,6,11,26,21,13,23,26,2,9,24,30,8,9,1,23,8,13,25,23,14,24,25,4,7,22,30,9,7,0,24,9,14,27,24,12,22,27,3,5,20,30,7,5,2,22,7,12,29,22,10,20,29,1,6,21,30,5,6,4,20,5,10,28,20,11,21,28,10,19,18,12,17,19,14,15,17,13,16,15,11,18,16,31,19,17,14,17,27,2,27,22,4,22,29, +10,29,19,31,18,19,12,19,29,4,29,20,3,20,28,11,28,18,31,16,18,10,18,28,3,28,21,1,21,26,13,26,16,31,15,16,11,16,26,1,26,23,0,23,25,14,25,15,31,17,15,13,15,25,0,25,24,2,24,27,12,27,17],e=[],c=[],d=[],k=0,v=f.length;k<v;k+=3){var l=3*f[k],h=3*f[k+1],j=3*f[k+2],l=[b[l],b[l+1],b[l+2]],h=[b[h],b[h+1],b[h+2]],j=[b[j],b[j+1],b[j+2]],m=a.cross([j[0]-h[0],j[1]-h[1],j[2]-h[2]],[l[0]-h[0],l[1]-h[1],l[2]-h[2]],[]);a.normalize(m);e.push(l[0],l[1],l[2],h[0],h[1],h[2],j[0],j[1],j[2]);c.push(m[0],m[1],m[2],m[0],m[1], +m[2],m[0],m[1],m[2]);d.push(k,k+1,k+2)}this.storeData(e,c,d)};c.Star.prototype=new c._Mesh})(ChemDoodle.structures.d3,Math,vec3); +(function(c,b){c.TextImage=function(){this.ctx=b.createElement("canvas").getContext("2d");this.data=[];this.text="";this.charHeight=0};var a=c.TextImage.prototype;a.charData=function(a){a=this.text.indexOf(a);return 0<=a?this.data[a]:null};a.updateFont=function(a){var b=this.ctx,e=this.ctx.canvas,c=[],d="",k=a.getFontString(a.atoms_font_size_2D,a.atoms_font_families_2D,a.atoms_font_bold_2D,a.atoms_font_italic_2D);b.font=k;b.save();for(var v=0,l=1.5*a.atoms_font_size_2D,h=32,j=127;h<j;h++){var m=String.fromCharCode(h), +t=b.measureText(m).width;c.push({text:m,width:t,height:l});v+=2*t}h=Math.sqrt(v*l);h=Math.ceil(h/l);v=Math.ceil(v/(h-1));e.width=v;e.height=h*l;b.font=k;b.textAlign="left";b.textBaseline="middle";b.strokeStyle="#000";b.lineWidth=1.4;b.fillStyle="#fff";h=k=e=0;for(j=c.length;h<j;h++){var m=c[h],t=2*m.width,l=m.height,n=m.text;k+t>v&&(e++,k=0);var u=e*l;a.labels_font_stroke_3D&&b.strokeText(n,k,u+l/2);b.fillText(n,k,u+l/2);m.x=k;m.y=u;d+=n;k+=t}this.text=d;this.data=c;this.charHeight=l;return this}; +a.pushVertexData=function(a,b,e,c){var d=a.toString().split(""),k=this.getHeight(),v=this.getWidth();a=-this.textWidth(a)/2;for(var l=-this.charHeight/2,h=0,j=d.length;h<j;h++){var m=this.charData(d[h]),t=m.width,n=m.x/v,u=n+1.8*m.width/v,q=m.y/k,m=q+m.height/k,r=a+1.8*t,w=this.charHeight/2;c.position.push(b[0],b[1],b[2],b[0],b[1],b[2],b[0],b[1],b[2],b[0],b[1],b[2],b[0],b[1],b[2],b[0],b[1],b[2]);c.texCoord.push(n,q,u,q,u,m,n,q,n,m,u,m);c.translation.push(a,w,r,w,r,l,a,w,a,l,r,l);c.zDepth.push(e,e, +e,e,e,e);a=r+t-1.8*t}};a.getCanvas=function(){return this.ctx.canvas};a.getHeight=function(){return this.getCanvas().height};a.getWidth=function(){return this.getCanvas().width};a.textWidth=function(a){return this.ctx.measureText(a).width};a.test=function(){b.body.appendChild(this.getCanvas())}})(ChemDoodle.structures.d3,document); +(function(c){c.TextMesh=function(){};c=c.TextMesh.prototype;c.initialize=function(b){this.vertexPositionBuffer=b.createBuffer();this.vertexTexCoordBuffer=b.createBuffer();this.vertexTranslationBuffer=b.createBuffer();this.vertexZDepthBuffer=b.createBuffer()};c.setVertexData=function(b,a,c,f){b.bindBuffer(b.ARRAY_BUFFER,a);b.bufferData(b.ARRAY_BUFFER,new Float32Array(c),b.STATIC_DRAW);a.itemSize=f;a.numItems=c.length/f};c.storeData=function(b,a,c,f,e){this.setVertexData(b,this.vertexPositionBuffer, +a,3);this.setVertexData(b,this.vertexTexCoordBuffer,c,2);this.setVertexData(b,this.vertexTranslationBuffer,f,2);this.setVertexData(b,this.vertexZDepthBuffer,e,1)};c.bindBuffers=function(b){var a=b.programLabel;b.bindBuffer(b.ARRAY_BUFFER,this.vertexPositionBuffer);b.vertexAttribPointer(a.vertexPositionAttribute,this.vertexPositionBuffer.itemSize,b.FLOAT,!1,0,0);b.bindBuffer(b.ARRAY_BUFFER,this.vertexTexCoordBuffer);b.vertexAttribPointer(a.vertexTexCoordAttribute,this.vertexTexCoordBuffer.itemSize, +b.FLOAT,!1,0,0);b.bindBuffer(b.ARRAY_BUFFER,this.vertexTranslationBuffer);b.vertexAttribPointer(a.vertexTranslationAttribute,this.vertexTranslationBuffer.itemSize,b.FLOAT,!1,0,0);b.bindBuffer(b.ARRAY_BUFFER,this.vertexZDepthBuffer);b.vertexAttribPointer(a.vertexZDepthAttribute,this.vertexZDepthBuffer.itemSize,b.FLOAT,!1,0,0)};c.render=function(b){var a=this.vertexPositionBuffer.numItems;a&&(this.bindBuffers(b),b.drawArrays(b.TRIANGLES,0,a))}})(ChemDoodle.structures.d3,Math); +(function(c,b,a,g,f,e,o){var d=function(a,b,d){var c=f.sqrt(b[1]*b[1]+b[2]*b[2]),g=[1,0,0,0,0,b[2]/c,-b[1]/c,0,0,b[1]/c,b[2]/c,0,0,0,0,1],o=[1,0,0,0,0,b[2]/c,b[1]/c,0,0,-b[1]/c,b[2]/c,0,0,0,0,1],t=[c,0,-b[0],0,0,1,0,0,b[0],0,c,0,0,0,0,1];b=[c,0,b[0],0,0,1,0,0,-b[0],0,c,0,0,0,0,1];d=[f.cos(d),-f.sin(d),0,0,f.sin(d),f.cos(d),0,0,0,0,1,0,0,0,0,1];var n=e.multiply(g,e.multiply(t,e.multiply(d,e.multiply(b,o,[]))));this.rotate=function(){return e.multiplyVec3(n,a)}};g.Tube=function(g,v,l){var h=g[0].lineSegments[0].length; +this.partitions=[];var j;this.ends=[];this.ends.push(g[0].lineSegments[0][0]);this.ends.push(g[g.length-2].lineSegments[0][0]);for(var m=[1,0,0],t=0,n=g.length-1;t<n;t++){if(!j||65E3<j.positionData.length)0<this.partitions.length&&t--,j={count:0,positionData:[],normalData:[],indexData:[]},this.partitions.push(j);var u=g[t];j.count++;for(var q=Infinity,r=new a.Atom("",g[t+1].cp1.x,g[t+1].cp1.y,g[t+1].cp1.z),w=0;w<h;w++){var p=u.lineSegments[0][w],y;y=w===h-1?t===g.length-2?u.lineSegments[0][w-1]:g[t+ +1].lineSegments[0][0]:u.lineSegments[0][w+1];y=[y.x-p.x,y.y-p.y,y.z-p.z];o.normalize(y);t===g.length-2&&w===h-1&&o.scale(y,-1);var z=vec3.cross(y,m,[]);o.normalize(z);o.scale(z,v/2);z=new d(z,y,2*Math.PI/l);y=0;for(var x=l;y<x;y++){var A=z.rotate();y===f.floor(l/4)&&(m=[A[0],A[1],A[2]]);j.normalData.push(A[0],A[1],A[2]);j.positionData.push(p.x+A[0],p.y+A[1],p.z+A[2])}r&&(y=p.distance3D(r),y<q&&(q=y,g[t+1].pPoint=p))}}m=0;for(u=this.partitions.length;m<u;m++){j=this.partitions[m];t=0;for(n=j.count- +1;t<n;t++){q=t*h*l;w=0;for(r=h;w<r;w++){p=q+w*l;for(y=0;y<l;y++)z=p+y,j.indexData.push(z),j.indexData.push(z+l),j.indexData.push(z+l+1),j.indexData.push(z),j.indexData.push(z+1),j.indexData.push(z+l+1)}}}this.storeData(this.partitions[0].positionData,this.partitions[0].normalData,this.partitions[0].indexData);l=[new a.Point(2,0)];for(t=0;60>t;t++)h=t/60*f.PI,l.push(new a.Point(2*f.cos(h),-2*f.sin(h)));l.push(new a.Point(-2,0),new a.Point(-2,4),new a.Point(2,4));var C=new a.d3.Shape(l,1);this.render= +function(d,h){this.bindBuffers(d);d.material.setDiffuseColor(h.macro_colorByChain?this.chainColor:h.nucleics_tubeColor);d.drawElements(d.TRIANGLES,this.vertexIndexBuffer.numItems,d.UNSIGNED_SHORT,0);if(this.partitions)for(var j=1,l=this.partitions.length;j<l;j++){var m=this.partitions[j],n=d,u=m;n.bindBuffer(n.ARRAY_BUFFER,u.vertexPositionBuffer);n.vertexAttribPointer(n.shader.vertexPositionAttribute,u.vertexPositionBuffer.itemSize,n.FLOAT,!1,0,0);n.bindBuffer(n.ARRAY_BUFFER,u.vertexNormalBuffer); +n.vertexAttribPointer(n.shader.vertexNormalAttribute,u.vertexNormalBuffer.itemSize,n.FLOAT,!1,0,0);n.bindBuffer(n.ELEMENT_ARRAY_BUFFER,u.vertexIndexBuffer);d.drawElements(d.TRIANGLES,m.vertexIndexBuffer.numItems,d.UNSIGNED_SHORT,0)}d.sphereBuffer.bindBuffers(d);for(j=0;2>j;j++)m=this.ends[j],m=e.translate(d.modelViewMatrix,[m.x,m.y,m.z],[]),l=v/2,e.scale(m,[l,l,l]),d.setMatrixUniforms(m),d.drawElements(d.TRIANGLES,d.sphereBuffer.vertexIndexBuffer.numItems,d.UNSIGNED_SHORT,0);d.cylinderBuffer.bindBuffers(d); +j=1;for(l=g.length-1;j<l;j++){var u=g[j],q=u.pPoint,r=new a.Atom("",u.cp2.x,u.cp2.y,u.cp2.z),m=1.001*q.distance3D(r),u=[v/4,m,v/4],m=e.translate(d.modelViewMatrix,[q.x,q.y,q.z],[]),t=[0,1,0],p=0,n=[r.x-q.x,r.y-q.y,r.z-q.z];q.x===r.x&&q.z===r.z?(t=[0,0,1],q.y<q.y&&(p=f.PI)):(p=c.vec3AngleFrom(t,n),t=o.cross(t,n,[]));0!==p&&e.rotate(m,p,t);e.scale(m,u);d.setMatrixUniforms(m);d.drawArrays(d.TRIANGLE_STRIP,0,d.cylinderBuffer.vertexPositionBuffer.numItems)}C.bindBuffers(d);!h.nucleics_useShapelyColors&& +!h.macro_colorByChain&&d.material.setDiffuseColor(h.nucleics_baseColor);j=1;for(l=g.length-1;j<l;j++)u=g[j],r=u.cp2,m=e.translate(d.modelViewMatrix,[r.x,r.y,r.z],[]),t=[0,1,0],p=0,q=u.cp3,n=[q.x-r.x,q.y-r.y,q.z-r.z],r.x===q.x&&r.z===q.z?(t=[0,0,1],r.y<r.y&&(p=f.PI)):(p=c.vec3AngleFrom(t,n),t=o.cross(t,n,[])),0!==p&&e.rotate(m,p,t),r=[1,0,0],p=e.rotate(e.identity([]),p,t),e.multiplyVec3(p,r),p=u.cp4,q=u.cp5,p.y===q.y&&p.z===q.z||(p=[q.x-p.x,q.y-p.y,q.z-p.z],q=c.vec3AngleFrom(r,p),0>o.dot(n,o.cross(r, +p))&&(q*=-1),e.rotateY(m,q)),h.nucleics_useShapelyColors&&!h.macro_colorByChain&&(b[u.name]?d.material.setDiffuseColor(b[u.name].shapelyColor):d.material.setDiffuseColor(b["*"].shapelyColor)),d.setMatrixUniforms(m),d.drawElements(d.TRIANGLES,C.vertexIndexBuffer.numItems,d.UNSIGNED_SHORT,0)}};g.Tube.prototype=new g._Mesh})(ChemDoodle.extensions,ChemDoodle.RESIDUE,ChemDoodle.structures,ChemDoodle.structures.d3,Math,mat4,vec3); +(function(c){c.UnitCell=function(b){var a=[],c=[],f=function(b,d,e,f){a.push(b[0],b[1],b[2]);a.push(d[0],d[1],d[2]);a.push(e[0],e[1],e[2]);a.push(f[0],f[1],f[2]);for(b=0;4>b;b++)c.push(0,0,0)};f(b.o,b.x,b.xy,b.y);f(b.o,b.y,b.yz,b.z);f(b.o,b.z,b.xz,b.x);f(b.yz,b.y,b.xy,b.xyz);f(b.xyz,b.xz,b.z,b.yz);f(b.xy,b.x,b.xz,b.xyz);b=[];for(f=0;6>f;f++){var e=4*f;b.push(e,e+1,e+1,e+2,e+2,e+3,e+3,e)}this.storeData(a,c,b)};c.UnitCell.prototype=new c._Mesh})(ChemDoodle.structures.d3,vec3); +(function(c,b,a){c.Plate=function(a){this.lanes=Array(a);i=0;for(ii=a;i<ii;i++)this.lanes[i]=[]};var g=c.Plate.prototype;g.sort=function(){i=0;for(ii=this.lanes.length;i<ii;i++)this.lanes[i].sort(function(a,b){return a-b})};g.draw=function(f){var e=f.canvas.width,c=f.canvas.height;this.origin=9*c/10;this.front=c/10;this.laneLength=this.origin-this.front;f.strokeStyle="#000000";f.beginPath();f.moveTo(0,this.front);b.contextHashTo(f,0,this.front,e,this.front,3,3);f.closePath();f.stroke();f.beginPath(); +f.moveTo(0,this.origin);f.lineTo(e,this.origin);f.closePath();f.stroke();i=0;for(ii=this.lanes.length;i<ii;i++){c=(i+1)*e/(ii+1);f.beginPath();f.moveTo(c,this.origin);f.lineTo(c,this.origin+3);f.closePath();f.stroke();s=0;for(ss=this.lanes[i].length;s<ss;s++){var d=this.origin-this.laneLength*this.lanes[i][s].rf;switch(this.lanes[i][s].type){case "compact":f.beginPath();f.arc(c,d,3,0,2*a.PI,!1);f.closePath();break;case "expanded":f.beginPath();f.arc(c,d,7,0,2*a.PI,!1);f.closePath();break;case "widened":b.contextOval(f, +c-18,d-10,36,10);break;case "cresent":f.beginPath(),f.arc(c,d,9,0,a.PI,!0),f.closePath()}switch(this.lanes[i][s].style){case "solid":f.fillStyle="#000000";f.fill();break;case "transparent":f.stroke()}}}};c.Plate.Spot=function(a,b,c){this.type=a;this.rf=b;this.style=c?c:"solid"}})(ChemDoodle.structures,ChemDoodle.extensions,Math); +(function(c,b,a){c.default_backgroundColor="#FFFFFF";c.default_scale=1;c.default_rotateAngle=0;c.default_bondLength_2D=20;c.default_angstromsPerBondLength=1.25;c.default_lightDirection_3D=[-0.1,-0.1,-1];c.default_lightDiffuseColor_3D="#FFFFFF";c.default_lightSpecularColor_3D="#FFFFFF";c.default_projectionPerspective_3D=!0;c.default_projectionPerspectiveVerticalFieldOfView_3D=45;c.default_projectionOrthoWidth_3D=40;c.default_projectionWidthHeightRatio_3D=void 0;c.default_projectionFrontCulling_3D= +0.1;c.default_projectionBackCulling_3D=1E4;c.default_atoms_display=!0;c.default_atoms_color="#000000";c.default_atoms_font_size_2D=12;c.default_atoms_font_families_2D=["Helvetica","Arial","Dialog"];c.default_atoms_font_bold_2D=!1;c.default_atoms_font_italic_2D=!1;c.default_atoms_circles_2D=!1;c.default_atoms_circleDiameter_2D=10;c.default_atoms_circleBorderWidth_2D=1;c.default_atoms_lonePairDistance_2D=8;c.default_atoms_lonePairSpread_2D=4;c.default_atoms_lonePairDiameter_2D=1;c.default_atoms_useJMOLColors= +!1;c.default_atoms_usePYMOLColors=!1;c.default_atoms_resolution_3D=60;c.default_atoms_sphereDiameter_3D=0.8;c.default_atoms_useVDWDiameters_3D=!1;c.default_atoms_vdwMultiplier_3D=1;c.default_atoms_materialAmbientColor_3D="#000000";c.default_atoms_materialSpecularColor_3D="#555555";c.default_atoms_materialShininess_3D=32;c.default_atoms_implicitHydrogens_2D=!0;c.default_atoms_displayTerminalCarbonLabels_2D=!1;c.default_atoms_showHiddenCarbons_2D=!0;c.default_atoms_displayAllCarbonLabels_2D=!1;c.default_atoms_nonBondedAsStars_3D= +!1;c.default_atoms_displayLabels_3D=!1;c.default_bonds_display=!0;c.default_bonds_color="#000000";c.default_bonds_width_2D=1;c.default_bonds_saturationWidth_2D=0.2;c.default_bonds_ends_2D="round";c.default_bonds_useJMOLColors=!1;c.default_bonds_usePYMOLColors=!1;c.default_bonds_colorGradient=!1;c.default_bonds_saturationAngle_2D=a.PI/3;c.default_bonds_symmetrical_2D=!1;c.default_bonds_clearOverlaps_2D=!1;c.default_bonds_overlapClearWidth_2D=0.5;c.default_bonds_atomLabelBuffer_2D=1;c.default_bonds_wedgeThickness_2D= +0.22;c.default_bonds_hashWidth_2D=1;c.default_bonds_hashSpacing_2D=2.5;c.default_bonds_dotSize_2D=2;c.default_bonds_showBondOrders_3D=!1;c.default_bonds_resolution_3D=60;c.default_bonds_renderAsLines_3D=!1;c.default_bonds_cylinderDiameter_3D=0.3;c.default_bonds_materialAmbientColor_3D="#222222";c.default_bonds_materialSpecularColor_3D="#555555";c.default_bonds_materialShininess_3D=32;c.default_proteins_displayRibbon=!0;c.default_proteins_displayBackbone=!1;c.default_proteins_backboneThickness=1.5; +c.default_proteins_backboneColor="#CCCCCC";c.default_proteins_ribbonCartoonize=!1;c.default_proteins_useShapelyColors=!1;c.default_proteins_useAminoColors=!1;c.default_proteins_usePolarityColors=!1;c.default_proteins_primaryColor="#FF0D0D";c.default_proteins_secondaryColor="#FFFF30";c.default_proteins_ribbonCartoonHelixPrimaryColor="#00E740";c.default_proteins_ribbonCartoonHelixSecondaryColor="#9905FF";c.default_proteins_ribbonCartoonSheetColor="#E8BB99";c.default_proteins_ribbonThickness=0.2;c.default_proteins_verticalResolution= +10;c.default_proteins_horizontalResolution=9;c.default_proteins_materialAmbientColor_3D="#222222";c.default_proteins_materialSpecularColor_3D="#555555";c.default_proteins_materialShininess_3D=32;c.default_nucleics_display=!0;c.default_nucleics_tubeColor="#CCCCCC";c.default_nucleics_baseColor="#C10000";c.default_nucleics_useShapelyColors=!0;c.default_nucleics_tubeThickness=1.5;c.default_nucleics_tubeResolution_3D=60;c.default_nucleics_verticalResolution=10;c.default_nucleics_materialAmbientColor_3D= +"#222222";c.default_nucleics_materialSpecularColor_3D="#555555";c.default_nucleics_materialShininess_3D=32;c.default_macro_displayAtoms=!1;c.default_macro_displayBonds=!1;c.default_macro_atomToLigandDistance=-1;c.default_macro_showWater=!1;c.default_macro_colorByChain=!1;c.default_surfaces_display=!0;c.default_surfaces_style="Dot";c.default_surfaces_color="#E9B862";c.default_surfaces_materialAmbientColor_3D="#000000";c.default_surfaces_materialSpecularColor_3D="#000000";c.default_surfaces_materialShininess_3D= +32;c.default_crystals_displayUnitCell=!0;c.default_crystals_unitCellColor="green";c.default_crystals_unitCellLineWidth=1;c.default_plots_color="#000000";c.default_plots_width=1;c.default_plots_showIntegration=!1;c.default_plots_integrationColor="#c10000";c.default_plots_integrationLineWidth=1;c.default_plots_showGrid=!1;c.default_plots_gridColor="gray";c.default_plots_gridLineWidth=0.5;c.default_plots_showYAxis=!0;c.default_plots_flipXAxis=!1;c.default_text_font_size=12;c.default_text_font_families= +["Helvetica","Arial","Dialog"];c.default_text_color="#000000";c.default_shapes_color="#000000";c.default_shapes_lineWidth_2D=1;c.default_shapes_arrowLength_2D=8;c.default_pusher_showElectron_2D=!0;c.default_labels_font_stroke_3D=!0;b.VisualSpecifications=function(){this.backgroundColor=c.default_backgroundColor;this.scale=c.default_scale;this.rotateAngle=c.default_rotateAngle;this.bondLength=c.default_bondLength_2D;this.angstromsPerBondLength=c.default_angstromsPerBondLength;this.lightDirection_3D= +c.default_lightDirection_3D;this.lightDiffuseColor_3D=c.default_lightDiffuseColor_3D;this.lightSpecularColor_3D=c.default_lightSpecularColor_3D;this.projectionPerspective_3D=c.default_projectionPerspective_3D;this.projectionPerspectiveVerticalFieldOfView_3D=c.default_projectionPerspectiveVerticalFieldOfView_3D;this.projectionOrthoWidth_3D=c.default_projectionOrthoWidth_3D;this.projectionWidthHeightRatio_3D=c.default_projectionWidthHeightRatio_3D;this.projectionFrontCulling_3D=c.default_projectionFrontCulling_3D; +this.projectionBackCulling_3D=c.default_projectionBackCulling_3D;this.atoms_display=c.default_atoms_display;this.atoms_color=c.default_atoms_color;this.atoms_font_size_2D=c.default_atoms_font_size_2D;this.atoms_font_families_2D=[];for(var a=0,b=c.default_atoms_font_families_2D.length;a<b;a++)this.atoms_font_families_2D[a]=c.default_atoms_font_families_2D[a];this.atoms_font_bold_2D=c.default_atoms_font_bold_2D;this.atoms_font_italic_2D=c.default_atoms_font_italic_2D;this.atoms_circles_2D=c.default_atoms_circles_2D; +this.atoms_circleDiameter_2D=c.default_atoms_circleDiameter_2D;this.atoms_circleBorderWidth_2D=c.default_atoms_circleBorderWidth_2D;this.atoms_lonePairDistance_2D=c.default_atoms_lonePairDistance_2D;this.atoms_lonePairSpread_2D=c.default_atoms_lonePairSpread_2D;this.atoms_lonePairDiameter_2D=c.default_atoms_lonePairDiameter_2D;this.atoms_useJMOLColors=c.default_atoms_useJMOLColors;this.atoms_usePYMOLColors=c.default_atoms_usePYMOLColors;this.atoms_resolution_3D=c.default_atoms_resolution_3D;this.atoms_sphereDiameter_3D= +c.default_atoms_sphereDiameter_3D;this.atoms_useVDWDiameters_3D=c.default_atoms_useVDWDiameters_3D;this.atoms_vdwMultiplier_3D=c.default_atoms_vdwMultiplier_3D;this.atoms_materialAmbientColor_3D=c.default_atoms_materialAmbientColor_3D;this.atoms_materialSpecularColor_3D=c.default_atoms_materialSpecularColor_3D;this.atoms_materialShininess_3D=c.default_atoms_materialShininess_3D;this.atoms_implicitHydrogens_2D=c.default_atoms_implicitHydrogens_2D;this.atoms_displayTerminalCarbonLabels_2D=c.default_atoms_displayTerminalCarbonLabels_2D; +this.atoms_showHiddenCarbons_2D=c.default_atoms_showHiddenCarbons_2D;this.atoms_displayAllCarbonLabels_2D=c.default_atoms_displayAllCarbonLabels_2D;this.atoms_nonBondedAsStars_3D=c.default_atoms_nonBondedAsStars_3D;this.atoms_displayLabels_3D=c.default_atoms_displayLabels_3D;this.bonds_display=c.default_bonds_display;this.bonds_color=c.default_bonds_color;this.bonds_width_2D=c.default_bonds_width_2D;this.bonds_saturationWidth_2D=c.default_bonds_saturationWidth_2D;this.bonds_ends_2D=c.default_bonds_ends_2D; +this.bonds_useJMOLColors=c.default_bonds_useJMOLColors;this.bonds_usePYMOLColors=c.default_bonds_usePYMOLColors;this.bonds_colorGradient=c.default_bonds_colorGradient;this.bonds_saturationAngle_2D=c.default_bonds_saturationAngle_2D;this.bonds_symmetrical_2D=c.default_bonds_symmetrical_2D;this.bonds_clearOverlaps_2D=c.default_bonds_clearOverlaps_2D;this.bonds_overlapClearWidth_2D=c.default_bonds_overlapClearWidth_2D;this.bonds_atomLabelBuffer_2D=c.default_bonds_atomLabelBuffer_2D;this.bonds_wedgeThickness_2D= +c.default_bonds_wedgeThickness_2D;this.bonds_hashWidth_2D=c.default_bonds_hashWidth_2D;this.bonds_hashSpacing_2D=c.default_bonds_hashSpacing_2D;this.bonds_dotSize_2D=c.default_bonds_dotSize_2D;this.bonds_showBondOrders_3D=c.default_bonds_showBondOrders_3D;this.bonds_resolution_3D=c.default_bonds_resolution_3D;this.bonds_renderAsLines_3D=c.default_bonds_renderAsLines_3D;this.bonds_cylinderDiameter_3D=c.default_bonds_cylinderDiameter_3D;this.bonds_materialAmbientColor_3D=c.default_bonds_materialAmbientColor_3D; +this.bonds_materialSpecularColor_3D=c.default_bonds_materialSpecularColor_3D;this.bonds_materialShininess_3D=c.default_bonds_materialShininess_3D;this.proteins_displayRibbon=c.default_proteins_displayRibbon;this.proteins_displayBackbone=c.default_proteins_displayBackbone;this.proteins_backboneThickness=c.default_proteins_backboneThickness;this.proteins_backboneColor=c.default_proteins_backboneColor;this.proteins_ribbonCartoonize=c.default_proteins_ribbonCartoonize;this.proteins_useShapelyColors=c.default_proteins_useShapelyColors; +this.proteins_useAminoColors=c.default_proteins_useAminoColors;this.proteins_usePolarityColors=c.default_proteins_usePolarityColors;this.proteins_primaryColor=c.default_proteins_primaryColor;this.proteins_secondaryColor=c.default_proteins_secondaryColor;this.proteins_ribbonCartoonHelixPrimaryColor=c.default_proteins_ribbonCartoonHelixPrimaryColor;this.proteins_ribbonCartoonHelixSecondaryColor=c.default_proteins_ribbonCartoonHelixSecondaryColor;this.proteins_ribbonCartoonSheetColor=c.default_proteins_ribbonCartoonSheetColor; +this.proteins_ribbonThickness=c.default_proteins_ribbonThickness;this.proteins_verticalResolution=c.default_proteins_verticalResolution;this.proteins_horizontalResolution=c.default_proteins_horizontalResolution;this.proteins_materialAmbientColor_3D=c.default_proteins_materialAmbientColor_3D;this.proteins_materialSpecularColor_3D=c.default_proteins_materialSpecularColor_3D;this.proteins_materialShininess_3D=c.default_proteins_materialShininess_3D;this.macro_displayAtoms=c.default_macro_displayAtoms; +this.macro_displayBonds=c.default_macro_displayBonds;this.macro_atomToLigandDistance=c.default_macro_atomToLigandDistance;this.nucleics_display=c.default_nucleics_display;this.nucleics_tubeColor=c.default_nucleics_tubeColor;this.nucleics_baseColor=c.default_nucleics_baseColor;this.nucleics_useShapelyColors=c.default_nucleics_useShapelyColors;this.nucleics_tubeThickness=c.default_nucleics_tubeThickness;this.nucleics_tubeResolution_3D=c.default_nucleics_tubeResolution_3D;this.nucleics_verticalResolution= +c.default_nucleics_verticalResolution;this.nucleics_materialAmbientColor_3D=c.default_nucleics_materialAmbientColor_3D;this.nucleics_materialSpecularColor_3D=c.default_nucleics_materialSpecularColor_3D;this.nucleics_materialShininess_3D=c.default_nucleics_materialShininess_3D;this.macro_showWater=c.default_macro_showWater;this.macro_colorByChain=c.default_macro_colorByChain;this.surfaces_display=c.default_surfaces_display;this.surfaces_style=c.default_surfaces_style;this.surfaces_color=c.default_surfaces_color; +this.surfaces_materialAmbientColor_3D=c.default_surfaces_materialAmbientColor_3D;this.surfaces_materialSpecularColor_3D=c.default_surfaces_materialSpecularColor_3D;this.surfaces_materialShininess_3D=c.default_surfaces_materialShininess_3D;this.crystals_displayUnitCell=c.default_crystals_displayUnitCell;this.crystals_unitCellColor=c.default_crystals_unitCellColor;this.crystals_unitCellLineWidth=c.default_crystals_unitCellLineWidth;this.plots_color=c.default_plots_color;this.plots_width=c.default_plots_width; +this.plots_showIntegration=c.default_plots_showIntegration;this.plots_integrationColor=c.default_plots_integrationColor;this.plots_integrationLineWidth=c.default_plots_integrationLineWidth;this.plots_showGrid=c.default_plots_showGrid;this.plots_gridColor=c.default_plots_gridColor;this.plots_gridLineWidth=c.default_plots_gridLineWidth;this.plots_showYAxis=c.default_plots_showYAxis;this.plots_flipXAxis=c.default_plots_flipXAxis;this.text_font_size=c.default_text_font_size;this.text_font_families=[]; +a=0;for(b=c.default_text_font_families.length;a<b;a++)this.text_font_families[a]=c.default_text_font_families[a];this.text_color=c.default_text_color;this.shapes_color=c.default_shapes_color;this.shapes_lineWidth_2D=c.default_shapes_lineWidth_2D;this.shapes_arrowLength_2D=c.default_shapes_arrowLength_2D;this.pusher_showElectron_2D=c.default_pusher_showElectron_2D;this.labels_font_stroke_3D=c.default_labels_font_stroke_3D};b=b.VisualSpecifications.prototype;b.set3DRepresentation=function(a){this.bonds_display= +this.atoms_display=!0;this.bonds_color="#777777";this.bonds_showBondOrders_3D=this.bonds_useJMOLColors=this.atoms_useJMOLColors=this.atoms_useVDWDiameters_3D=!0;this.bonds_renderAsLines_3D=!1;"Ball and Stick"===a?(this.atoms_vdwMultiplier_3D=0.3,this.bonds_useJMOLColors=!1,this.bonds_cylinderDiameter_3D=0.3,this.bonds_materialAmbientColor_3D=c.default_atoms_materialAmbientColor_3D):"van der Waals Spheres"===a?(this.bonds_display=!1,this.atoms_vdwMultiplier_3D=1):"Stick"===a?(this.bonds_showBondOrders_3D= +this.atoms_useVDWDiameters_3D=!1,this.bonds_cylinderDiameter_3D=this.atoms_sphereDiameter_3D=0.8,this.bonds_materialAmbientColor_3D=this.atoms_materialAmbientColor_3D):"Wireframe"===a?(this.atoms_useVDWDiameters_3D=!1,this.bonds_cylinderDiameter_3D=0.05,this.atoms_sphereDiameter_3D=0.15,this.bonds_materialAmbientColor_3D=c.default_atoms_materialAmbientColor_3D):"Line"===a?(this.atoms_display=!1,this.bonds_renderAsLines_3D=!0,this.bonds_width_2D=1,this.bonds_cylinderDiameter_3D=0.05):alert('"'+a+'" is not recognized. Use one of the following strings:\n\n1. Ball and Stick\n2. van der Waals Spheres\n3. Stick\n4. Wireframe\n5. Line\n')}; +b.getFontString=function(a,b,e,c){var d=[];e&&d.push("bold ");c&&d.push("italic ");d.push(a+"px ");a=0;for(e=b.length;a<e;a++)c=b[a],-1!==c.indexOf(" ")&&(c='"'+c+'"'),d.push((0!==a?",":"")+c);return d.join("")}})(ChemDoodle,ChemDoodle.structures,Math); +(function(c,b,a,g){a.getPointsPerAngstrom=function(){return c.default_bondLength_2D/c.default_angstromsPerBondLength};a.BondDeducer=function(){};var f=a.BondDeducer.prototype;f.margin=1.1;f.deduceCovalentBonds=function(e,c){var d=a.getPointsPerAngstrom();c&&(d=c);for(var f=0,v=e.atoms.length;f<v;f++)for(var l=f+1;l<v;l++){var h=e.atoms[f],j=e.atoms[l];h.distance3D(j)<(b[h.label].covalentRadius+b[j.label].covalentRadius)*d*this.margin&&e.bonds.push(new g.Bond(h,j,1))}}})(ChemDoodle,ChemDoodle.ELEMENT, +ChemDoodle.informatics,ChemDoodle.structures);(function(c){c.HydrogenDeducer=function(){};c.HydrogenDeducer.prototype.removeHydrogens=function(b){for(var a=[],c=[],f=0,e=b.bonds.length;f<e;f++)"H"!==b.bonds[f].a1.label&&"H"!==b.bonds[f].a2.label&&c.push(b.bonds[f]);f=0;for(e=b.atoms.length;f<e;f++)"H"!==b.atoms[f].label&&a.push(b.atoms[f]);b.atoms=a;b.bonds=c}})(ChemDoodle.informatics); +(function(c,b,a){b.MolecularSurfaceGenerator=function(){};b.MolecularSurfaceGenerator.prototype.generateSurface=function(b,c,e,o,d){return new a.MolecularSurface(b,c,e,o,d)}})(ChemDoodle,ChemDoodle.informatics,ChemDoodle.structures.d3); +(function(c,b){c.Splitter=function(){};c.Splitter.prototype.split=function(a){for(var c=[],f=0,e=a.atoms.length;f<e;f++)a.atoms[f].visited=!1;f=0;for(e=a.bonds.length;f<e;f++)a.bonds[f].visited=!1;f=0;for(e=a.atoms.length;f<e;f++){var o=a.atoms[f];if(!o.visited){var d=new b.Molecule;d.atoms.push(o);o.visited=!0;var k=new b.Queue;for(k.enqueue(o);!k.isEmpty();)for(var o=k.dequeue(),v=0,l=a.bonds.length;v<l;v++){var h=a.bonds[v];h.contains(o)&&!h.visited&&(h.visited=!0,d.bonds.push(h),h=h.getNeighbor(o), +h.visited||(h.visited=!0,d.atoms.push(h),k.enqueue(h)))}c.push(d)}}return c}})(ChemDoodle.informatics,ChemDoodle.structures); +(function(c,b){c.StructureBuilder=function(){};c.StructureBuilder.prototype.copy=function(a){for(var c=0,f=a.atoms.length;c<f;c++)a.atoms[c].metaID=c;for(var e=new b.Molecule,c=0,f=a.atoms.length;c<f;c++)e.atoms[c]=new b.Atom(a.atoms[c].label,a.atoms[c].x,a.atoms[c].y,a.atoms[c].z);c=0;for(f=a.bonds.length;c<f;c++)e.bonds[c]=new b.Bond(e.atoms[a.bonds[c].a1.metaID],e.atoms[a.bonds[c].a2.metaID],a.bonds[c].bondOrder);return e}})(ChemDoodle.informatics,ChemDoodle.structures); +(function(c){c._Counter=function(){};c=c._Counter.prototype;c.value=0;c.molecule=void 0;c.setMolecule=function(b){this.value=0;this.molecule=b;this.innerCalculate&&this.innerCalculate()}})(ChemDoodle.informatics);(function(c){c.FrerejacqueNumberCounter=function(b){this.setMolecule(b)};(c.FrerejacqueNumberCounter.prototype=new c._Counter).innerCalculate=function(){this.value=this.molecule.bonds.length-this.molecule.atoms.length+(new c.NumberOfMoleculesCounter(this.molecule)).value}})(ChemDoodle.informatics); +(function(c,b){b.NumberOfMoleculesCounter=function(a){this.setMolecule(a)};(b.NumberOfMoleculesCounter.prototype=new b._Counter).innerCalculate=function(){for(var a=0,b=this.molecule.atoms.length;a<b;a++)this.molecule.atoms[a].visited=!1;a=0;for(b=this.molecule.atoms.length;a<b;a++)if(!this.molecule.atoms[a].visited){this.value++;var f=new c.Queue;this.molecule.atoms[a].visited=!0;for(f.enqueue(this.molecule.atoms[a]);!f.isEmpty();)for(var e=f.dequeue(),o=0,d=this.molecule.bonds.length;o<d;o++){var k= +this.molecule.bonds[o];k.contains(e)&&(k=k.getNeighbor(e),k.visited||(k.visited=!0,f.enqueue(k)))}}}})(ChemDoodle.structures,ChemDoodle.informatics); +(function(c){c._RingFinder=function(){};c=c._RingFinder.prototype;c.atoms=void 0;c.bonds=void 0;c.rings=void 0;c.reduce=function(b){for(var a=0,c=b.atoms.length;a<c;a++)b.atoms[a].visited=!1;a=0;for(c=b.bonds.length;a<c;a++)b.bonds[a].visited=!1;for(var f=!0;f;){f=!1;a=0;for(c=b.atoms.length;a<c;a++){for(var e=0,o,d=0,k=b.bonds.length;d<k;d++)if(b.bonds[d].contains(b.atoms[a])&&!b.bonds[d].visited){e++;if(2===e)break;o=b.bonds[d]}1===e&&(f=!0,o.visited=!0,b.atoms[a].visited=!0)}}a=0;for(c=b.atoms.length;a< +c;a++)b.atoms[a].visited||this.atoms.push(b.atoms[a]);a=0;for(c=b.bonds.length;a<c;a++)b.bonds[a].visited||this.bonds.push(b.bonds[a]);0===this.bonds.length&&0!==this.atoms.length&&(this.atoms=[])};c.setMolecule=function(b){this.atoms=[];this.bonds=[];this.rings=[];this.reduce(b);2<this.atoms.length&&this.innerGetRings&&this.innerGetRings()};c.fuse=function(){for(var b=0,a=this.rings.length;b<a;b++)for(var c=0,f=this.bonds.length;c<f;c++)-1!==this.rings[b].atoms.indexOf(this.bonds[c].a1)&&-1!==this.rings[b].atoms.indexOf(this.bonds[c].a2)&& +this.rings[b].bonds.push(this.bonds[c])}})(ChemDoodle.informatics); +(function(c,b){function a(a,b){this.atoms=[];if(b)for(var c=0,d=b.atoms.length;c<d;c++)this.atoms[c]=b.atoms[c];this.atoms.push(a)}var g=a.prototype;g.grow=function(b,e){for(var c=this.atoms[this.atoms.length-1],d=[],g=0,v=b.length;g<v;g++)if(b[g].contains(c)){var l=b[g].getNeighbor(c);-1===e.indexOf(l)&&d.push(l)}c=[];g=0;for(v=d.length;g<v;g++)c.push(new a(d[g],this));return c};g.check=function(a,e,c){for(var d=0,g=e.atoms.length-1;d<g;d++)if(-1!==this.atoms.indexOf(e.atoms[d]))return;var v;if(e.atoms[e.atoms.length- +1]===this.atoms[this.atoms.length-1]){v=new b.Ring;v.atoms[0]=c;d=0;for(g=this.atoms.length;d<g;d++)v.atoms.push(this.atoms[d]);for(d=e.atoms.length-2;0<=d;d--)v.atoms.push(e.atoms[d])}else{for(var l=[],d=0,g=a.length;d<g;d++)a[d].contains(e.atoms[e.atoms.length-1])&&l.push(a[d]);d=0;for(g=l.length;d<g;d++)if((1===e.atoms.length||!l[d].contains(e.atoms[e.atoms.length-2]))&&l[d].contains(this.atoms[this.atoms.length-1])){v=new b.Ring;v.atoms[0]=c;a=0;for(c=this.atoms.length;a<c;a++)v.atoms.push(this.atoms[a]); +for(a=e.atoms.length-1;0<=a;a--)v.atoms.push(e.atoms[a]);break}}return v};c.EulerFacetRingFinder=function(a){this.setMolecule(a)};g=c.EulerFacetRingFinder.prototype=new c._RingFinder;g.fingerBreak=5;g.innerGetRings=function(){for(var b=0,e=this.atoms.length;b<e;b++){for(var c=[],d=0,g=this.bonds.length;d<g;d++)this.bonds[d].contains(this.atoms[b])&&c.push(this.bonds[d].getNeighbor(this.atoms[b]));d=0;for(g=c.length;d<g;d++)for(var v=d+1;v<c.length;v++){var l=[];l[0]=new a(c[d]);l[1]=new a(c[v]);var h= +[];h[0]=this.atoms[b];for(var j=0,m=c.length;j<m;j++)j!==d&&j!==v&&h.push(c[j]);var t=[];for((j=l[0].check(this.bonds,l[1],this.atoms[b]))&&(t[0]=j);0===t.length&&0<l.length&&l[0].atoms.length<this.fingerBreak;){for(var n=[],j=0,m=l.length;j<m;j++)for(var u=l[j].grow(this.bonds,h),q=0,r=u.length;q<r;q++)n.push(u[q]);l=n;j=0;for(m=l.length;j<m;j++)for(q=j+1;q<m;q++)(r=l[j].check(this.bonds,l[q],this.atoms[b]))&&t.push(r);if(0===t.length){n=[];j=0;for(m=h.length;j<m;j++){q=0;for(r=this.bonds.length;q< +r;q++)this.bonds[q].contains(h[j])&&(c=this.bonds[q].getNeighbor(h[j]),-1===h.indexOf(c)&&-1===n.indexOf(c)&&n.push(c))}j=0;for(m=n.length;j<m;j++)h.push(n[j])}}if(0<t.length){l=void 0;j=0;for(m=t.length;j<m;j++)if(!l||l.atoms.length>t[j].atoms.length)l=t[j];t=!1;j=0;for(m=this.rings.length;j<m;j++){h=!0;q=0;for(r=l.atoms.length;q<r;q++)if(-1===this.rings[j].atoms.indexOf(l.atoms[q])){h=!1;break}if(h){t=!0;break}}t||this.rings.push(l)}}}this.fuse()}})(ChemDoodle.informatics,ChemDoodle.structures); +(function(c){c.SSSRFinder=function(b){this.rings=[];if(0<b.atoms.length){var a=(new c.FrerejacqueNumberCounter(b)).value,g=(new c.EulerFacetRingFinder(b)).rings;g.sort(function(a,b){return a.atoms.length-b.atoms.length});for(var f=0,e=b.bonds.length;f<e;f++)b.bonds[f].visited=!1;f=0;for(e=g.length;f<e;f++){b=!1;for(var o=0,d=g[f].bonds.length;o<d;o++)if(!g[f].bonds[o].visited){b=!0;break}if(b){o=0;for(d=g[f].bonds.length;o<d;o++)g[f].bonds[o].visited=!0;this.rings.push(g[f])}if(this.rings.length=== +a)break}}}})(ChemDoodle.informatics);(function(c){c._Interpreter=function(){};c._Interpreter.prototype.fit=function(b,a,c){for(var f=b.length,e=[],o=0;o<a-f;o++)e.push(" ");return c?b+e.join(""):e.join("")+b}})(ChemDoodle.io); +(function(c,b,a,g,f,e){var o=/\s+/g,d=/\(|\)|\s+/g,k=/\'|\s+/g,v=/,|\'|\s+/g,l=/^\s+/,h=/[0-9]/g,j=/[0-9]|\+|\-/g,m=function(a){return 0!==a.length},t={P:[],A:[[0,0.5,0.5]],B:[[0.5,0,0.5]],C:[[0.5,0.5,0]],I:[[0.5,0.5,0.5]],R:[[2/3,1/3,1/3],[1/3,2/3,2/3]],S:[[1/3,1/3,2/3],[2/3,2/3,1/3]],T:[[1/3,2/3,1/3],[2/3,1/3,2/3]],F:[[0,0.5,0.5],[0.5,0,0.5],[0.5,0.5,0]]},n=function(a){var b=0,d=0,e=0,c=0,f=a.indexOf("x"),g=a.indexOf("y"),j=a.indexOf("z");-1!==f&&(d++,0<f&&"+"!==a.charAt(f-1)&&(d*=-1));-1!==g&& +(e++,0<g&&"+"!==a.charAt(g-1)&&(e*=-1));-1!==j&&(c++,0<j&&"+"!==a.charAt(j-1)&&(c*=-1));if(2<a.length){f="+";g=0;for(j=a.length;g<j;g++){var k=a.charAt(g);if(("-"===k||"/"===k)&&(g===a.length-1||a.charAt(g+1).match(h)))f=k;k.match(h)&&("+"===f?b+=parseInt(k):"-"===f?b-=parseInt(k):"/"===f&&(b/=parseInt(k)))}}return[b,d,e,c]};a.CIFInterpreter=function(){};(a.CIFInterpreter.prototype=new a._Interpreter).read=function(a,h,u,p){h=h?h:1;u=u?u:1;p=p?p:1;var y=new g.Molecule;if(!a)return y;for(var z=a.split("\n"), +x=0,A=0,C=0,F=a=0,D=0,E="P",I,G,L,B,H=!0;0<z.length;)if(H?B=z.shift():H=!0,0<B.length)if(b.stringStartsWith(B,"_cell_length_a"))x=parseFloat(B.split(d)[1]);else if(b.stringStartsWith(B,"_cell_length_b"))A=parseFloat(B.split(d)[1]);else if(b.stringStartsWith(B,"_cell_length_c"))C=parseFloat(B.split(d)[1]);else if(b.stringStartsWith(B,"_cell_angle_alpha"))a=f.PI*parseFloat(B.split(d)[1])/180;else if(b.stringStartsWith(B,"_cell_angle_beta"))F=f.PI*parseFloat(B.split(d)[1])/180;else if(b.stringStartsWith(B, +"_cell_angle_gamma"))D=f.PI*parseFloat(B.split(d)[1])/180;else if(b.stringStartsWith(B,"_symmetry_space_group_name_H-M"))E=B.split(k)[1];else if(b.stringStartsWith(B,"loop_")){for(var J={fields:[],lines:[]},M=!1;void 0!==(B=z.shift())&&!b.stringStartsWith(B=B.replace(l,""),"loop_")&&0<B.length;)if(b.stringStartsWith(B,"_")){if(M)break;J.fields=J.fields.concat(B.split(o).filter(m))}else M=!0,J.lines.push(B);if(0!==z.length&&(b.stringStartsWith(B,"loop_")||b.stringStartsWith(B,"_")))H=!1;-1!==J.fields.indexOf("_symmetry_equiv_pos_as_xyz")|| +-1!==J.fields.indexOf("_space_group_symop_operation_xyz")?I=J:-1!==J.fields.indexOf("_atom_site_label")?G=J:-1!==J.fields.indexOf("_geom_bond_atom_site_label_1")&&(L=J)}B=x;a=(f.cos(a)-f.cos(D)*f.cos(F))/f.sin(D);a=[B,0,0,0,A*f.cos(D),A*f.sin(D),0,0,C*f.cos(F),C*a,C*f.sqrt(1-f.pow(f.cos(F),2)-a*a),0,0,0,0,1];if(G){J=H=x=z=C=-1;D=0;for(F=G.fields.length;D<F;D++)B=G.fields[D],"_atom_site_type_symbol"===B?C=D:"_atom_site_label"===B?z=D:"_atom_site_fract_x"===B?x=D:"_atom_site_fract_y"===B?H=D:"_atom_site_fract_z"=== +B&&(J=D);D=0;for(F=G.lines.length;D<F;D++)B=G.lines[D],A=B.split(o).filter(m),B=new g.Atom(A[-1===C?z:C].split(j)[0],parseFloat(A[x]),parseFloat(A[H]),parseFloat(A[J])),y.atoms.push(B),-1!==z&&(B.cifId=A[z],B.cifPart=0)}if(I&&!L){D=A=0;for(F=I.fields.length;D<F;D++)if(B=I.fields[D],"_symmetry_equiv_pos_as_xyz"===B||"_space_group_symop_operation_xyz"===B)A=D;H=t[E];z=[];D=0;for(F=I.lines.length;D<F;D++){B=I.lines[D].split(v).filter(m);for(var J=n(B[A]),M=n(B[A+1]),N=n(B[A+2]),E=0,x=y.atoms.length;E< +x;E++){B=y.atoms[E];var Q=B.x*J[1]+B.y*J[2]+B.z*J[3]+J[0],K=B.x*M[1]+B.y*M[2]+B.z*M[3]+M[0],P=B.x*N[1]+B.y*N[2]+B.z*N[3]+N[0];G=new g.Atom(B.label,Q,K,P);z.push(G);void 0!==B.cifId&&(G.cifId=B.cifId,G.cifPart=D+1);if(H){G=0;for(C=H.length;G<C;G++){var O=H[G],O=new g.Atom(B.label,Q+O[0],K+O[1],P+O[2]);z.push(O);void 0!==B.cifId&&(O.cifId=B.cifId,O.cifPart=D+1)}}}}D=0;for(F=z.length;D<F;D++){for(B=z[D];1<=B.x;)B.x--;for(;0>B.x;)B.x++;for(;1<=B.y;)B.y--;for(;0>B.y;)B.y++;for(;1<=B.z;)B.z--;for(;0>B.z;)B.z++}G= +[];D=0;for(F=z.length;D<F;D++){C=!1;B=z[D];E=0;for(x=y.atoms.length;E<x;E++)if(1E-4>y.atoms[E].distance3D(B)){C=!0;break}if(!C){E=0;for(x=G.length;E<x;E++)if(1E-4>G[E].distance3D(B)){C=!0;break}C||G.push(B)}}y.atoms=y.atoms.concat(G)}F=[];for(D=0;D<h;D++)for(E=0;E<u;E++)for(G=0;G<p;G++)if(!(0===D&&0===E&&0===G)){C=0;for(A=y.atoms.length;C<A;C++)B=y.atoms[C],z=new g.Atom(B.label,B.x+D,B.y+E,B.z+G),F.push(z),void 0!==B.cifId&&(z.cifId=B.cifId,z.cifPart=B.cifPart+(I?I.lines.length:0)+D+10*E+100*G)}y.atoms= +y.atoms.concat(F);D=0;for(F=y.atoms.length;D<F;D++)B=y.atoms[D],I=e.multiplyVec3(a,[B.x,B.y,B.z]),B.x=I[0],B.y=I[1],B.z=I[2];if(L){z=I=-1;D=0;for(F=L.fields.length;D<F;D++)B=L.fields[D],"_geom_bond_atom_site_label_1"===B?I=D:"_geom_bond_atom_site_label_2"===B&&(z=D);G=0;for(C=L.lines.length;G<C;G++){A=L.lines[G].split(o).filter(m);B=A[I];A=A[z];D=0;for(F=y.atoms.length;D<F;D++)for(E=D+1;E<F;E++){x=y.atoms[D];H=y.atoms[E];if(x.cifPart!==H.cifPart)break;(x.cifId===B&&H.cifId===A||x.cifId===A&&H.cifId=== +B)&&y.bonds.push(new g.Bond(x,H))}}}else(new c.informatics.BondDeducer).deduceCovalentBonds(y,1);h=[-h/2,-u/2,-p/2];y.unitCellVectors={o:e.multiplyVec3(a,h,[]),x:e.multiplyVec3(a,[h[0]+1,h[1],h[2]]),y:e.multiplyVec3(a,[h[0],h[1]+1,h[2]]),z:e.multiplyVec3(a,[h[0],h[1],h[2]+1]),xy:e.multiplyVec3(a,[h[0]+1,h[1]+1,h[2]]),xz:e.multiplyVec3(a,[h[0]+1,h[1],h[2]+1]),yz:e.multiplyVec3(a,[h[0],h[1]+1,h[2]+1]),xyz:e.multiplyVec3(a,[h[0]+1,h[1]+1,h[2]+1])};return y};var u=new a.CIFInterpreter;c.readCIF=function(a, +b,d,e){return u.read(a,b,d,e)}})(ChemDoodle,ChemDoodle.extensions,ChemDoodle.io,ChemDoodle.structures,Math,mat4,vec3); +(function(c,b,a,g){a.MOLInterpreter=function(){};var f=a.MOLInterpreter.prototype=new a._Interpreter;f.read=function(a,d){d||(d=c.default_bondLength_2D);var e=new g.Molecule;if(!a)return e;for(var f=a.split("\n"),l=f[3],h=parseInt(l.substring(0,3)),l=parseInt(l.substring(3,6)),j=0;j<h;j++){var m=f[4+j];e.atoms[j]=new g.Atom(m.substring(31,34),parseFloat(m.substring(0,10))*d,(1===d?1:-1)*parseFloat(m.substring(10,20))*d,parseFloat(m.substring(20,30))*d);var t=parseInt(m.substring(34,36));0!==t&&b[e.atoms[j].label]&& +(e.atoms[j].mass=b[e.atoms[j].label].mass+t);switch(parseInt(m.substring(36,39))){case 1:e.atoms[j].charge=3;break;case 2:e.atoms[j].charge=2;break;case 3:e.atoms[j].charge=1;break;case 5:e.atoms[j].charge=-1;break;case 6:e.atoms[j].charge=-2;break;case 7:e.atoms[j].charge=-3}}for(j=0;j<l;j++){var m=f[4+h+j],n=parseInt(m.substring(6,9)),t=parseInt(m.substring(9,12));if(3<n)switch(n){case 4:n=1.5;break;default:n=1}m=new g.Bond(e.atoms[parseInt(m.substring(0,3))-1],e.atoms[parseInt(m.substring(3,6))- +1],n);switch(t){case 3:m.stereo=g.Bond.STEREO_AMBIGUOUS;break;case 1:m.stereo=g.Bond.STEREO_PROTRUDING;break;case 6:m.stereo=g.Bond.STEREO_RECESSED}e.bonds[j]=m}return e};f.write=function(a){var d=[];d.push("Molecule from ChemDoodle Web Components\n\nhttp://www.ichemlabs.com\n");d.push(this.fit(a.atoms.length.toString(),3));d.push(this.fit(a.bonds.length.toString(),3));d.push(" 0 0 0 0 999 v2000\n");for(var e=a.getCenter(),f=0,l=a.atoms.length;f<l;f++){var h=a.atoms[f],j=" 0";if(-1!== +h.mass&&b[h.label]){var m=h.mass-b[h.label].mass;5>m&&-4<m&&(j=(-1<m?" ":"")+m)}m=" 0";if(0!==h.charge)switch(h.charge){case 3:m=" 1";break;case 2:m=" 2";break;case 1:m=" 3";break;case -1:m=" 5";break;case -2:m=" 6";break;case -3:m=" 7"}d.push(this.fit(((h.x-e.x)/c.default_bondLength_2D).toFixed(4),10));d.push(this.fit((-(h.y-e.y)/c.default_bondLength_2D).toFixed(4),10));d.push(this.fit((h.z/c.default_bondLength_2D).toFixed(4),10));d.push(" ");d.push(this.fit(h.label,3,!0));d.push(j);d.push(m); +d.push(" 0 0 0 0\n")}f=0;for(l=a.bonds.length;f<l;f++)e=a.bonds[f],h=0,e.stereo===g.Bond.STEREO_AMBIGUOUS?h=3:e.stereo===g.Bond.STEREO_PROTRUDING?h=1:e.stereo===g.Bond.STEREO_RECESSED&&(h=6),d.push(this.fit((a.atoms.indexOf(e.a1)+1).toString(),3)),d.push(this.fit((a.atoms.indexOf(e.a2)+1).toString(),3)),d.push(this.fit(e.bondOrder.toString(),3)),d.push(" "),d.push(h),d.push(" 0 0\n");d.push("M END");return d.join("")};var e=new a.MOLInterpreter;c.readMOL=function(a,b){return e.read(a,b)}; +c.writeMOL=function(a){return e.write(a)}})(ChemDoodle,ChemDoodle.ELEMENT,ChemDoodle.io,ChemDoodle.structures); +(function(c,b,a,g,f,e,o){function d(a,b,d,e,c){for(var f=0,g=b.length;f<g;f++){var k=b[f];if(k.id===d&&e>=k.start&&e<=k.end){c?a.helix=!0:a.sheet=!0;e+1===k.end&&(a.arrow=!0);break}}}a.PDBInterpreter=function(){};var k=a.PDBInterpreter.prototype=new a._Interpreter;k.calculateRibbonDistances=!1;k.deduceResidueBonds=!1;k.read=function(a,h){var j=new g.Molecule;j.chains=[];if(!a)return j;var k=a.split("\n");h||(h=1);for(var t=[],n=[],u,q=[],r=[],v=[],p=0,y=k.length;p<y;p++){var z=k[p];if(b.stringStartsWith(z, +"HELIX"))t.push({id:z.substring(19,20),start:parseInt(z.substring(21,25)),end:parseInt(z.substring(33,37))});else if(b.stringStartsWith(z,"SHEET"))n.push({id:z.substring(21,22),start:parseInt(z.substring(22,26)),end:parseInt(z.substring(33,37))});else if(b.stringStartsWith(z,"ATOM")){var x=z.substring(16,17);if(" "===x||"A"===x){x=e(z.substring(76,78));if(0===x.length){var A=e(z.substring(12,14));"HD"===A?x="H":0<A.length&&(x=1<A.length?A.charAt(0)+A.substring(1).toLowerCase():A)}A=new g.Atom(x,parseFloat(z.substring(30, +38))*h,parseFloat(z.substring(38,46))*h,parseFloat(z.substring(46,54))*h);A.hetatm=!1;r.push(A);var C=parseInt(z.substring(22,26));if(0===q.length)for(x=0;2>x;x++){var F=new g.Residue(-1);F.cp1=A;F.cp2=A;q.push(F)}C!==Number.NaN&&q[q.length-1].resSeq!==C&&(x=new g.Residue(C),x.name=e(z.substring(17,20)),3===x.name.length?x.name=x.name.substring(0,1)+x.name.substring(1).toLowerCase():2===x.name.length&&"D"===x.name.charAt(0)&&(x.name=x.name.substring(1)),q.push(x),F=z.substring(21,22),d(x,t,F,C,!0), +d(x,n,F,C,!1));z=e(z.substring(12,16));x=q[q.length-1];if("CA"===z||"P"===z||"O5'"===z)x.cp1||(x.cp1=A);else if("N3"===z&&("C"===x.name||"U"===x.name||"T"===x.name)||"N1"===z&&("A"===x.name||"G"===x.name))x.cp3=A;else if("C2"===z)x.cp4=A;else if("C4"===z&&("C"===x.name||"U"===x.name||"T"===x.name)||"C6"===z&&("A"===x.name||"G"===x.name))x.cp5=A;else if("O"===z||"C6"===z&&("C"===x.name||"U"===x.name||"T"===x.name)||"N9"===z){if(!q[q.length-1].cp2){if("C6"===z||"N9"===z)u=A;x.cp2=A}}else"C"===z&&(u= +A)}}else if(b.stringStartsWith(z,"HETATM"))x=e(z.substring(76,78)),0===x.length&&(x=e(z.substring(12,16))),1<x.length&&(x=x.substring(0,1)+x.substring(1).toLowerCase()),x=new g.Atom(x,parseFloat(z.substring(30,38))*h,parseFloat(z.substring(38,46))*h,parseFloat(z.substring(46,54))*h),x.hetatm=!0,"HOH"===e(z.substring(17,20))&&(x.isWater=!0),j.atoms.push(x),v[parseInt(e(z.substring(6,11)))]=x;else if(b.stringStartsWith(z,"CONECT")){if(x=parseInt(e(z.substring(6,11))),v[x]){A=v[x];for(C=0;4>C;C++)if(x= +e(z.substring(11+5*C,16+5*C)),0!==x.length&&(x=parseInt(x),v[x])){for(var F=v[x],D=!1,x=0,E=j.bonds.length;x<E;x++){var I=j.bonds[x];if(I.a1===A&&I.a2===F||I.a1===F&&I.a2===A){D=!0;break}}D||j.bonds.push(new g.Bond(A,F))}}}else if(b.stringStartsWith(z,"TER"))this.endChain(j,q,u,r),q=[];else if(b.stringStartsWith(z,"ENDMDL"))break}this.endChain(j,q,u,r);0===j.bonds.size&&(new c.informatics.BondDeducer).deduceCovalentBonds(j,h);if(this.deduceResidueBonds){p=0;for(y=r.length;p<y;p++){k=o.min(y,p+20); +for(x=p+1;x<k;x++)t=r[p],n=r[x],t.distance3D(n)<1.1*(f[t.label].covalentRadius+f[n.label].covalentRadius)&&j.bonds.push(new g.Bond(t,n,1))}}j.atoms=j.atoms.concat(r);this.calculateRibbonDistances&&this.calculateDistances(j,r);return j};k.endChain=function(a,b,d,e){if(0<b.length){var c=b[b.length-1];c.cp1||(c.cp1=e[e.length-2]);c.cp2||(c.cp2=e[e.length-1]);for(e=0;4>e;e++)c=new g.Residue(-1),c.cp1=d,c.cp2=b[b.length-1].cp2,b.push(c);a.chains.push(b)}};k.calculateDistances=function(a,b){for(var d=[], +e=0,c=a.atoms.length;e<c;e++){var f=a.atoms[e];f.hetatm&&(f.isWater||d.push(f))}e=0;for(c=b.length;e<c;e++)if(f=b[e],f.closestDistance=Number.POSITIVE_INFINITY,0===d.length)f.closestDistance=0;else for(var g=0,k=d.length;g<k;g++)f.closestDistance=Math.min(f.closestDistance,f.distance3D(d[g]))};var v=new a.PDBInterpreter;c.readPDB=function(a,b){return v.read(a,b)}})(ChemDoodle,ChemDoodle.extensions,ChemDoodle.io,ChemDoodle.structures,ChemDoodle.ELEMENT,jQuery.trim,Math); +(function(c,b,a,g,f,e){var o={"@":0,A:1,B:2,C:3,D:4,E:5,F:6,G:7,H:8,I:9,a:-1,b:-2,c:-3,d:-4,e:-5,f:-6,g:-7,h:-8,i:-9},d={"%":0,J:1,K:2,L:3,M:4,N:5,O:6,P:7,Q:8,R:9,j:-1,k:-2,l:-3,m:-4,n:-5,o:-6,p:-7,q:-8,r:-9},k={S:1,T:2,U:3,V:4,W:5,X:6,Y:7,Z:8,s:9};a.JCAMPInterpreter=function(){};f=a.JCAMPInterpreter.prototype=new a._Interpreter;f.convertHZ2PPM=!1;f.read=function(a){this.isBreak=function(a){return void 0!==o[a]||void 0!==d[a]||void 0!==k[a]||" "===a||"-"===a||"+"===a};this.getValue=function(a,b){var e= +a.charAt(0),c=a.substring(1);return void 0!==o[e]?parseFloat(o[e]+c):void 0!==d[e]?parseFloat(d[e]+c)+b:parseFloat(c)};var c=new g.Spectrum;if(void 0===a||0===a.length)return c;a=a.split("\n");for(var f=[],m,t,n,u,q=1,r=1,v=1,p=-1,y=-1,z=-1,x=!0,A=!1,C=0,F=a.length;C<F;C++){var D=e(a[C]),E=D.indexOf("$$");-1!==E&&(D=D.substring(0,E));if(0===f.length||!b.stringStartsWith(a[C],"##"))0!==f.length&&f.push("\n"),f.push(e(D));else if(E=f.join(""),x&&100>E.length&&c.metadata.push(E),f=[D],b.stringStartsWith(E, +"##TITLE\x3d"))c.title=e(E.substring(8));else if(b.stringStartsWith(E,"##XUNITS\x3d"))c.xUnit=e(E.substring(9)),this.convertHZ2PPM&&"HZ"===c.xUnit.toUpperCase()&&(c.xUnit="PPM",A=!0);else if(b.stringStartsWith(E,"##YUNITS\x3d"))c.yUnit=e(E.substring(9));else if(!b.stringStartsWith(E,"##XYPAIRS\x3d"))if(b.stringStartsWith(E,"##FIRSTX\x3d"))t=parseFloat(e(E.substring(9)));else if(b.stringStartsWith(E,"##LASTX\x3d"))m=parseFloat(e(E.substring(8)));else if(b.stringStartsWith(E,"##FIRSTY\x3d"))n=parseFloat(e(E.substring(9))); +else if(b.stringStartsWith(E,"##NPOINTS\x3d"))u=parseFloat(e(E.substring(10)));else if(b.stringStartsWith(E,"##XFACTOR\x3d"))q=parseFloat(e(E.substring(10)));else if(b.stringStartsWith(E,"##YFACTOR\x3d"))r=parseFloat(e(E.substring(10)));else if(b.stringStartsWith(E,"##DELTAX\x3d"))p=parseFloat(e(E.substring(9)));else if(b.stringStartsWith(E,"##.OBSERVE FREQUENCY\x3d"))this.convertHZ2PPM&&(v=parseFloat(e(E.substring(21))));else if(b.stringStartsWith(E,"##.SHIFT REFERENCE\x3d"))this.convertHZ2PPM&& +(z=E.substring(19).split(","),y=parseInt(e(z[2])),z=parseFloat(e(z[3])));else if(b.stringStartsWith(E,"##XYDATA\x3d")){A||(v=1);var D=x=!1,E=E.split("\n"),I=(m-t)/(u-1);if(-1!==p)for(var G=1,L=E.length;G<L;G++)if("|"===E[G].charAt(0)){I=p;break}for(var B=t-I,H=n,J=0,M,G=1,L=E.length;G<L;G++){for(var N=[],B=e(E[G]),f=[],Q=!1,K=0,P=B.length;K<P;K++)this.isBreak(B.charAt(K))?(0<f.length&&!(1===f.length&&" "===f[0])&&N.push(f.join("")),f=[B.charAt(K)]):"|"===B.charAt(K)?Q=!0:f.push(B.charAt(K));N.push(f.join("")); +B=parseFloat(N[0])*q-I;K=1;for(P=N.length;K<P;K++)if(H=N[K],void 0!==k[H.charAt(0)])for(var O=parseInt(k[H.charAt(0)]+H.substring(1))-1,S=0;S<O;S++)B+=I,J=this.getValue(M,J),H=J*r,R++,c.data[c.data.length-1]=new g.Point(B/v,H);else void 0!==o[H.charAt(0)]&&D?(H=this.getValue(H,J)*r,Q&&(B+=I,c.data.push(new g.Point(B/v,H)))):(D=void 0!==d[H.charAt(0)],M=H,B+=I,J=this.getValue(H,J),H=J*r,R++,c.data.push(new g.Point(B/v,H)))}if(-1!==y){D=z-c.data[y-1].x;C=0;for(F=c.data.length;C<F;C++)c.data[C].x+=D}}else if(b.stringStartsWith(E, +"##PEAK TABLE\x3d")){x=!1;c.continuous=!1;for(var E=E.split("\n"),R=0,G=1,L=E.length;G<L;G++){D=E[G].split(/[\s,]+/);R+=D.length/2;K=0;for(P=D.length;K+1<P;K+=2)c.data.push(new g.Point(parseFloat(e(D[K])),parseFloat(e(D[K+1]))))}}}c.setup();return c};var v=new a.JCAMPInterpreter;v.convertHZ2PPM=!0;c.readJCAMP=function(a){return v.read(a)}})(ChemDoodle,ChemDoodle.extensions,ChemDoodle.io,ChemDoodle.structures,jQuery,jQuery.trim); +(function(c,b,a){c.JSONInterpreter=function(){};c=c.JSONInterpreter.prototype;c.contentTo=function(a,b){for(var e=0,c=0,d=0,k=a.length;d<k;d++){for(var v=a[d],l=0,h=v.atoms.length;l<h;l++)v.atoms[l].tmpid="a"+e++;l=0;for(h=v.bonds.length;l<h;l++)v.bonds[l].tmpid="b"+c++}d=e=0;for(k=b.length;d<k;d++)b[d].tmpid="s"+e++;e={};if(a&&0<a.length){e.m=[];d=0;for(k=a.length;d<k;d++)e.m.push(this.molTo(a[d]))}if(b&&0<b.length){e.s=[];d=0;for(k=b.length;d<k;d++)e.s.push(this.shapeTo(b[d]))}d=0;for(k=a.length;d< +k;d++){v=a[d];l=0;for(h=v.atoms.length;l<h;l++)v.atoms[l].tmpid=void 0;l=0;for(h=v.bonds.length;l<h;l++)v.bonds[l].tmpid=void 0}d=0;for(k=b.length;d<k;d++)b[d].tmpid=void 0;return e};c.contentFrom=function(a){var b={molecules:[],shapes:[]};if(a.m)for(var e=0,c=a.m.length;e<c;e++)b.molecules.push(this.molFrom(a.m[e]));if(a.s){e=0;for(c=a.s.length;e<c;e++)b.shapes.push(this.shapeFrom(a.s[e],b.molecules))}e=0;for(c=b.molecules.length;e<c;e++){a=b.molecules[e];for(var d=0,k=a.atoms.length;d<k;d++)a.atoms[d].tmpid= +void 0;d=0;for(k=a.bonds.length;d<k;d++)a.bonds[d].tmpid=void 0}e=0;for(c=b.shapes.length;e<c;e++)b.shapes[e].tmpid=void 0;return b};c.molTo=function(a){for(var c={a:[],b:[]},e=0,o=a.atoms.length;e<o;e++){var d=a.atoms[e],k={x:d.x,y:d.y};d.tmpid&&(k.i=d.tmpid);"C"!==d.label&&(k.l=d.label);0!==d.z&&(k.z=d.z);0!==d.charge&&(k.c=d.charge);-1!==d.mass&&(k.m=d.mass);0!==d.numRadical&&(k.r=d.numRadical);0!==d.numLonePair&&(k.p=d.numLonePair);d.any&&(k.q=!0);-1!==d.rgroup&&(k.rg=d.rgroup);c.a.push(k)}e= +0;for(o=a.bonds.length;e<o;e++)d=a.bonds[e],k={b:a.atoms.indexOf(d.a1),e:a.atoms.indexOf(d.a2)},d.tmpid&&(k.i=d.tmpid),1!==d.bondOrder&&(k.o=d.bondOrder),d.stereo!==b.Bond.STEREO_NONE&&(k.s=d.stereo),c.b.push(k);return c};c.molFrom=function(a){for(var c=new b.Molecule,e=0,o=a.a.length;e<o;e++){var d=a.a[e],k=new b.Atom(d.l?d.l:"C",d.x,d.y);d.i&&(k.tmpid=d.i);d.z&&(k.z=d.z);d.c&&(k.charge=d.c);d.m&&(k.mass=d.m);d.r&&(k.numRadical=d.r);d.p&&(k.numLonePair=d.p);d.q&&(k.any=!0);d.rg&&(k.rgroup=d.rg); +void 0!==d.p_h&&(k.hetatm=d.p_h);void 0!==d.p_w&&(k.isWater=d.p_w);void 0!==d.p_d&&(k.closestDistance=d.p_d);c.atoms.push(k)}e=0;for(o=a.b.length;e<o;e++)d=a.b[e],k=new b.Bond(c.atoms[d.b],c.atoms[d.e],d.o?d.o:1),d.i&&(k.tmpid=d.i),d.s&&(k.stereo=d.s),c.bonds.push(k);return c};c.shapeTo=function(b){var c={};b.tmpid&&(c.i=b.tmpid);b instanceof a.Line?(c.t="Line",c.x1=b.p1.x,c.y1=b.p1.y,c.x2=b.p2.x,c.y2=b.p2.y,c.a=b.arrowType):b instanceof a.Pusher?(c.t="Pusher",c.o1=b.o1.tmpid,c.o2=b.o2.tmpid,1!== +b.numElectron&&(c.e=b.numElectron)):b instanceof a.Bracket&&(c.t="Bracket",c.x1=b.p1.x,c.y1=b.p1.y,c.x2=b.p2.x,c.y2=b.p2.y,0!==b.charge&&(c.c=b.charge),0!==b.mult&&(c.m=b.mult),0!==b.repeat&&(c.r=b.repeat));return c};c.shapeFrom=function(c,f){var e;if("Line"===c.t)e=new a.Line(new b.Point(c.x1,c.y1),new b.Point(c.x2,c.y2)),e.arrowType=c.a;else if("Pusher"===c.t){var o,d;e=0;for(var k=f.length;e<k;e++){for(var v=f[e],l=0,h=v.atoms.length;l<h;l++){var j=v.atoms[l];j.tmpid===c.o1?o=j:j.tmpid===c.o2&& +(d=j)}l=0;for(h=v.bonds.length;l<h;l++)j=v.bonds[l],j.tmpid===c.o1?o=j:j.tmpid===c.o2&&(d=j)}e=new a.Pusher(o,d);c.e&&(e.numElectron=c.e)}else"Bracket"===c.t&&(e=new a.Bracket(new b.Point(c.x1,c.y1),new b.Point(c.x2,c.y2)),void 0!==c.c&&(e.charge=c.c),void 0!==c.m&&(e.mult=c.m),void 0!==c.r&&(e.repeat=c.r));return e};c.pdbFrom=function(a){var b=this.molFrom(a.mol);b.findRings=!1;b.fromJSON=!0;b.chains=this.chainsFrom(a.ribbons);return b};c.chainsFrom=function(a){for(var c=[],e=0,o=a.cs.length;e<o;e++){for(var d= +a.cs[e],k=[],v=0,l=d.length;v<l;v++){var h=d[v],j=new b.Residue;j.name=h.n;j.cp1=new b.Atom("",h.x1,h.y1,h.z1);j.cp2=new b.Atom("",h.x2,h.y2,h.z2);h.x3&&(j.cp3=new b.Atom("",h.x3,h.y3,h.z3),j.cp4=new b.Atom("",h.x4,h.y4,h.z4),j.cp5=new b.Atom("",h.x5,h.y5,h.z5));j.helix=h.h;j.sheet=h.s;j.arrow=h.a;k.push(j)}c.push(k)}return c}})(ChemDoodle.io,ChemDoodle.structures,ChemDoodle.structures.d2); +(function(c,b,a){b.RXNInterpreter=function(){};var g=b.RXNInterpreter.prototype=new b._Interpreter;g.read=function(b,f){f||(f=c.default_bondLength_2D);var d=[],g;if(b){g=b.split("$MOL\n");for(var v=g[0].split("\n")[4],l=parseInt(v.substring(0,3)),v=parseInt(v.substring(3,6)),h=1,j=0,m=0,t=l+v;m<t;m++){d[m]=c.readMOL(g[h],f);var n=d[m].getBounds(),n=n.maxX-n.minX,j=j-(n+40);h++}m=0;for(t=l;m<t;m++){var n=d[m].getBounds(),n=n.maxX-n.minX,h=d[m].getCenter(),u=0;for(g=d[m].atoms.length;u<g;u++){var q= +d[m].atoms[u];q.x+=j+n/2-h.x;q.y-=h.y}j+=n+40}g=new a.d2.Line(new a.Point(j,0),new a.Point(j+40,0));j+=80;m=l;for(t=l+v;m<t;m++){n=d[m].getBounds();n=n.maxX-n.minX;h=d[m].getCenter();for(u=0;u<d[m].atoms.length;u++)q=d[m].atoms[u],q.x+=j+n/2-h.x,q.y-=h.y;j+=n+40}}else d.push(new a.Molecule),g=new a.d2.Line(new a.Point(-20,0),new a.Point(20,0));g.arrowType=a.d2.Line.ARROW_SYNTHETIC;return{molecules:d,shapes:[g]}};g.write=function(b,f){var d=[[],[]],g=void 0;if(b&&f){v=0;for(l=f.length;v<l;v++)if(f[v]instanceof +a.d2.Line){g=f[v].getPoints();break}if(!g)return"";for(var v=0,l=b.length;v<l;v++)b[v].getCenter().x<g[0].x?d[0].push(b[v]):d[1].push(b[v]);g=[];g.push("$RXN\nReaction from ChemDoodle Web Components\n\nhttp://www.ichemlabs.com\n");g.push(this.fit(d[0].length.toString(),3));g.push(this.fit(d[1].length.toString(),3));g.push("\n");for(v=0;2>v;v++)for(var l=0,h=d[v].length;l<h;l++)g.push("$MOL\n"),g.push(c.writeMOL(d[v][l])),g.push("\n");return g.join("")}};var f=new b.RXNInterpreter;c.readRXN=function(a, +b){return f.read(a,b)};c.writeRXN=function(a,b){return f.write(a,b)}})(ChemDoodle,ChemDoodle.io,ChemDoodle.structures); +(function(c,b,a,g,f,e){g.XYZInterpreter=function(){};b=g.XYZInterpreter.prototype=new g._Interpreter;b.deduceCovalentBonds=!0;b.read=function(b){var g=new f.Molecule;if(!b)return g;b=b.split("\n");for(var o=parseInt(e(b[0])),l=0;l<o;l++){var h=b[l+2].split(/\s+/g);g.atoms[l]=new f.Atom(isNaN(h[0])?h[0]:a[parseInt(h[0])-1],parseFloat(h[1]),parseFloat(h[2]),parseFloat(h[3]))}this.deduceCovalentBonds&&(new c.informatics.BondDeducer).deduceCovalentBonds(g,1);return g};var o=new g.XYZInterpreter;c.readXYZ= +function(a){return o.read(a)}})(ChemDoodle,ChemDoodle.ELEMENT,ChemDoodle.SYMBOLS,ChemDoodle.io,ChemDoodle.structures,jQuery.trim); +ChemDoodle.monitor=function(c,b,a){var g={CANVAS_DRAGGING:void 0,CANVAS_OVER:void 0,ALT:!1,SHIFT:!1,META:!1};c.supports_touch()||b(a).ready(function(){b(a).mousemove(function(a){g.CANVAS_DRAGGING&&g.CANVAS_DRAGGING.drag&&(g.CANVAS_DRAGGING.prehandleEvent(a),g.CANVAS_DRAGGING.drag(a))});b(a).mouseup(function(a){g.CANVAS_DRAGGING&&g.CANVAS_DRAGGING!==g.CANVAS_OVER&&g.CANVAS_DRAGGING.mouseup&&(g.CANVAS_DRAGGING.prehandleEvent(a),g.CANVAS_DRAGGING.mouseup(a));g.CANVAS_DRAGGING=void 0});b(a).keydown(function(a){g.SHIFT= +a.shiftKey;g.ALT=a.altKey;g.META=a.metaKey||a.ctrlKey;var b=g.CANVAS_OVER;g.CANVAS_DRAGGING&&(b=g.CANVAS_DRAGGING);b&&b.keydown&&(b.prehandleEvent(a),b.keydown(a))});b(a).keypress(function(a){var b=g.CANVAS_OVER;g.CANVAS_DRAGGING&&(b=g.CANVAS_DRAGGING);b&&b.keypress&&(b.prehandleEvent(a),b.keypress(a))});b(a).keyup(function(a){g.SHIFT=a.shiftKey;g.ALT=a.altKey;g.META=a.metaKey||a.ctrlKey;var b=g.CANVAS_OVER;g.CANVAS_DRAGGING&&(b=g.CANVAS_DRAGGING);b&&b.keyup&&(b.prehandleEvent(a),b.keyup(a))})}); +return g}(ChemDoodle.featureDetection,jQuery,document); +(function(c,b,a,g,f,e,o,d,k,v){c._Canvas=function(){};var l=c._Canvas.prototype;l.molecules=void 0;l.shapes=void 0;l.emptyMessage=void 0;l.image=void 0;l.repaint=function(){if(!this.test){var a=k.getElementById(this.id);if(a.getContext){var b=a.getContext("2d");1!==this.pixelRatio&&a.width===this.width&&(a.width=this.width*this.pixelRatio,a.height=this.height*this.pixelRatio,b.scale(this.pixelRatio,this.pixelRatio));this.image?b.drawImage(this.image,0,0):(this.specs.backgroundColor&&this.bgCache!== +a.style.backgroundColor&&(a.style.backgroundColor=this.specs.backgroundColor,this.bgCache=a.style.backgroundColor),b.fillStyle=this.specs.backgroundColor,b.fillRect(0,0,this.width,this.height));if(this.innerRepaint)this.innerRepaint(b);else if(0!==this.molecules.length||0!==this.shapes.length){b.save();b.translate(this.width/2,this.height/2);b.rotate(this.specs.rotateAngle);b.scale(this.specs.scale,this.specs.scale);b.translate(-this.width/2,-this.height/2);for(var a=0,d=this.molecules.length;a<d;a++)this.molecules[a].check(!0), +this.molecules[a].draw(b,this.specs);a=0;for(d=this.shapes.length;a<d;a++)this.shapes[a].draw(b,this.specs);b.restore()}else this.emptyMessage&&(b.fillStyle="#737683",b.textAlign="center",b.textBaseline="middle",b.font="18px Helvetica, Verdana, Arial, Sans-serif",b.fillText(this.emptyMessage,this.width/2,this.height/2));this.drawChildExtras&&this.drawChildExtras(b)}}};l.resize=function(a,b){var d=e("#"+this.id);d.attr({width:a,height:b});d.css("width",a);d.css("height",b);this.width=a;this.height= +b;if(c._Canvas3D&&this instanceof c._Canvas3D)this.gl.viewport(0,0,a,b),this.setupScene();else if(0<this.molecules.length){this.center();for(var d=0,f=this.molecules.length;d<f;d++)this.molecules[d].check()}this.repaint()};l.setBackgroundImage=function(a){this.image=new Image;var b=this;this.image.onload=function(){b.repaint()};this.image.src=a};l.loadMolecule=function(a){this.clear();this.molecules.push(a);this.center();c._Canvas3D&&this instanceof c._Canvas3D||a.check();this.afterLoadContent&&this.afterLoadContent(); +this.repaint()};l.loadContent=function(a,b){this.molecules=a;this.shapes=b;this.center();if(!(c._Canvas3D&&this instanceof c._Canvas3D))for(var d=0,e=this.molecules.length;d<e;d++)this.molecules[d].check();this.afterLoadContent&&this.afterLoadContent();this.repaint()};l.addMolecule=function(a){this.molecules.push(a);c._Canvas3D&&this instanceof c._Canvas3D||a.check();this.repaint()};l.removeMolecule=function(a){this.molecules=e.grep(this.molecules,function(b){return b!==a});this.repaint()};l.getMolecule= +function(){return 0<this.molecules.length?this.molecules[0]:void 0};l.getMolecules=function(){return this.molecules};l.addShape=function(a){this.shapes.push(a);this.repaint()};l.removeShape=function(a){this.shapes=e.grep(this.shapes,function(b){return b!==a});this.repaint()};l.getShapes=function(){return this.shapes};l.clear=function(){this.molecules=[];this.shapes=[];this.specs.scale=1;this.repaint()};l.center=function(){for(var a=this.getContentBounds(),b=new f.Point((this.width-a.minX-a.maxX)/ +2,(this.height-a.minY-a.maxY)/2),e=0,c=this.molecules.length;e<c;e++)for(var g=this.molecules[e],k=0,l=g.atoms.length;k<l;k++)g.atoms[k].add(b);e=0;for(c=this.shapes.length;e<c;e++){g=this.shapes[e].getPoints();k=0;for(l=g.length;k<l;k++)g[k].add(b)}this.specs.scale=1;b=a.maxX-a.minX;a=a.maxY-a.minY;if(b>this.width||a>this.height)this.specs.scale=0.85*d.min(this.width/b,this.height/a)};l.bondExists=function(a,b){for(var d=0,e=this.molecules.length;d<e;d++)for(var c=this.molecules[d],f=0,g=c.bonds.length;f< +g;f++){var k=c.bonds[f];if(k.contains(a)&&k.contains(b))return!0}return!1};l.getBond=function(a,b){for(var d=0,e=this.molecules.length;d<e;d++)for(var c=this.molecules[d],f=0,g=c.bonds.length;f<g;f++){var k=c.bonds[f];if(k.contains(a)&&k.contains(b))return k}};l.getMoleculeByAtom=function(a){for(var b=0,d=this.molecules.length;b<d;b++){var e=this.molecules[b];if(-1!==e.atoms.indexOf(a))return e}};l.getAllAtoms=function(){for(var a=[],b=0,d=this.molecules.length;b<d;b++)a=a.concat(this.molecules[b].atoms); +return a};l.getAllPoints=function(){for(var a=[],b=0,d=this.molecules.length;b<d;b++)a=a.concat(this.molecules[b].atoms);b=0;for(d=this.shapes.length;b<d;b++)a=a.concat(this.shapes[b].getPoints());return a};l.getContentBounds=function(){for(var b=new a.Bounds,d=0,e=this.molecules.length;d<e;d++)b.expand(this.molecules[d].getBounds());d=0;for(e=this.shapes.length;d<e;d++)b.expand(this.shapes[d].getBounds());return b};l.create=function(a,j,l){this.id=a;this.width=j;this.height=l;this.molecules=[];this.shapes= +[];if(k.getElementById(a)){var t=e("#"+a);j?t.attr("width",j):this.width=t.attr("width");l?t.attr("height",l):this.height=t.attr("height");t.attr("class","ChemDoodleWebComponent")}else{if(!c.featureDetection.supports_canvas_text()&&o.msie&&"6"<=o.version){k.writeln('\x3cdiv style\x3d"border: 1px solid black;" width\x3d"'+j+'" height\x3d"'+l+'"\x3ePlease install \x3ca href\x3d"http://code.google.com/chrome/chromeframe/"\x3eGoogle Chrome Frame\x3c/a\x3e, then restart Internet Explorer.\x3c/div\x3e'); +return}k.writeln('\x3ccanvas class\x3d"ChemDoodleWebComponent" id\x3d"'+a+'" width\x3d"'+j+'" height\x3d"'+l+'" alt\x3d"ChemDoodle Web Component"\x3eThis browser does not support HTML5/Canvas.\x3c/canvas\x3e')}a=e("#"+a);a.css("width",this.width);a.css("height",this.height);this.pixelRatio=v.devicePixelRatio?v.devicePixelRatio:1;this.specs=new f.VisualSpecifications;var n=this;b.supports_touch()?(a.bind("touchstart",function(a){var d=(new Date).getTime();if(!b.supports_gesture()&&2===a.originalEvent.touches.length){var e= +a.originalEvent.touches,c=new f.Point(e[0].pageX,e[0].pageY),e=new f.Point(e[1].pageX,e[1].pageY);n.implementedGestureDist=c.distance(e);n.implementedGestureAngle=c.angle(e);n.gesturestart&&(n.prehandleEvent(a),n.gesturestart(a))}n.lastTouch&&1===a.originalEvent.touches.length&&500>d-n.lastTouch?n.dbltap?(n.prehandleEvent(a),n.dbltap(a)):n.dblclick?(n.prehandleEvent(a),n.dblclick(a)):n.touchstart?(n.prehandleEvent(a),n.touchstart(a)):n.mousedown&&(n.prehandleEvent(a),n.mousedown(a)):n.touchstart? +(n.prehandleEvent(a),n.touchstart(a),this.hold&&clearTimeout(this.hold),this.touchhold&&(this.hold=setTimeout(function(){n.touchhold(a)},1E3))):n.mousedown&&(n.prehandleEvent(a),n.mousedown(a));n.lastTouch=d}),a.bind("touchmove",function(a){this.hold&&(clearTimeout(this.hold),this.hold=void 0);if(!b.supports_gesture()&&2===a.originalEvent.touches.length&&n.gesturechange){var e=a.originalEvent.touches,c=new f.Point(e[0].pageX,e[0].pageY),g=new f.Point(e[1].pageX,e[1].pageY),e=c.distance(g),c=c.angle(g); +a.originalEvent.scale=e/n.implementedGestureDist;a.originalEvent.rotation=180*(n.implementedGestureAngle-c)/d.PI;n.prehandleEvent(a);n.gesturechange(a)}if(1<a.originalEvent.touches.length&&n.multitouchmove){c=a.originalEvent.touches.length;n.prehandleEvent(a);e=new f.Point(-a.offset.left*c,-a.offset.top*c);for(g=0;g<c;g++)e.x+=a.originalEvent.changedTouches[g].pageX,e.y+=a.originalEvent.changedTouches[g].pageY;e.x/=c;e.y/=c;a.p=e;n.multitouchmove(a,c)}else n.touchmove?(n.prehandleEvent(a),n.touchmove(a)): +n.drag&&(n.prehandleEvent(a),n.drag(a))}),a.bind("touchend",function(a){this.hold&&(clearTimeout(this.hold),this.hold=void 0);!b.supports_gesture()&&n.implementedGestureDist&&(n.implementedGestureDist=void 0,n.implementedGestureAngle=void 0,n.gestureend&&(n.prehandleEvent(a),n.gestureend(a)));n.touchend?(n.prehandleEvent(a),n.touchend(a)):n.mouseup&&(n.prehandleEvent(a),n.mouseup(a));250>(new Date).getTime()-n.lastTouch&&(n.tap?(n.prehandleEvent(a),n.tap(a)):n.click&&(n.prehandleEvent(a),n.click(a)))}), +a.bind("gesturestart",function(a){n.gesturestart&&(n.prehandleEvent(a),n.gesturestart(a))}),a.bind("gesturechange",function(a){n.gesturechange&&(n.prehandleEvent(a),n.gesturechange(a))}),a.bind("gestureend",function(a){n.gestureend&&(n.prehandleEvent(a),n.gestureend(a))})):(a.click(function(a){switch(a.which){case 1:n.click&&(n.prehandleEvent(a),n.click(a));break;case 2:n.middleclick&&(n.prehandleEvent(a),n.middleclick(a));break;case 3:n.rightclick&&(n.prehandleEvent(a),n.rightclick(a))}}),a.dblclick(function(a){n.dblclick&& +(n.prehandleEvent(a),n.dblclick(a))}),a.mousedown(function(a){switch(a.which){case 1:g.CANVAS_DRAGGING=n;n.mousedown&&(n.prehandleEvent(a),n.mousedown(a));break;case 2:n.middlemousedown&&(n.prehandleEvent(a),n.middlemousedown(a));break;case 3:n.rightmousedown&&(n.prehandleEvent(a),n.rightmousedown(a))}}),a.mousemove(function(a){!g.CANVAS_DRAGGING&&n.mousemove&&(n.prehandleEvent(a),n.mousemove(a))}),a.mouseout(function(a){g.CANVAS_OVER=void 0;n.mouseout&&(n.prehandleEvent(a),n.mouseout(a))}),a.mouseover(function(a){g.CANVAS_OVER= +n;n.mouseover&&(n.prehandleEvent(a),n.mouseover(a))}),a.mouseup(function(a){switch(a.which){case 1:n.mouseup&&(n.prehandleEvent(a),n.mouseup(a));break;case 2:n.middlemouseup&&(n.prehandleEvent(a),n.middlemouseup(a));break;case 3:n.rightmouseup&&(n.prehandleEvent(a),n.rightmouseup(a))}}),a.mousewheel(function(a,b){n.mousewheel&&(n.prehandleEvent(a),n.mousewheel(a,b))}));this.subCreate&&this.subCreate()};l.prehandleEvent=function(a){a.originalEvent.changedTouches&&(a.pageX=a.originalEvent.changedTouches[0].pageX, +a.pageY=a.originalEvent.changedTouches[0].pageY);a.preventDefault();a.offset=e("#"+this.id).offset();a.p=new f.Point(a.pageX-a.offset.left,a.pageY-a.offset.top)}})(ChemDoodle,ChemDoodle.featureDetection,ChemDoodle.math,ChemDoodle.monitor,ChemDoodle.structures,jQuery,jQuery.browser,Math,document,window); +(function(c){c._AnimatorCanvas=function(b,a,c){b&&this.create(b,a,c)};c=c._AnimatorCanvas.prototype=new c._Canvas;c.timeout=33;c.startAnimation=function(){this.stopAnimation();this.lastTime=(new Date).getTime();var b=this;this.nextFrame&&(this.handle=setInterval(function(){var a=(new Date).getTime();b.nextFrame(a-b.lastTime);b.repaint();b.lastTime=a},this.timeout))};c.stopAnimation=function(){this.handle&&(clearInterval(this.handle),this.handle=void 0)};c.isRunning=function(){return void 0!==this.handle}})(ChemDoodle); +(function(c,b){c.FileCanvas=function(a,c,f,e){a&&this.create(a,c,f);b.writeln('\x3cbr\x3e\x3cform name\x3d"FileForm" enctype\x3d"multipart/form-data" method\x3d"POST" action\x3d"'+e+'" target\x3d"HiddenFileFrame"\x3e\x3cinput type\x3d"file" name\x3d"f" /\x3e\x3cinput type\x3d"submit" name\x3d"submitbutton" value\x3d"Show File" /\x3e\x3c/form\x3e\x3ciframe id\x3d"HFF-'+a+'" name\x3d"HiddenFileFrame" height\x3d"0" width\x3d"0" style\x3d"display:none;" onLoad\x3d"GetMolFromFrame(\'HFF-'+a+"', "+a+')"\x3e\x3c/iframe\x3e'); +this.emptyMessage="Click below to load file";this.repaint()};c.FileCanvas.prototype=new c._Canvas})(ChemDoodle,document); +(function(c){c.HyperlinkCanvas=function(b,a,c,f,e,o){b&&this.create(b,a,c);this.urlOrFunction=f;this.color=e?e:"blue";this.size=o?o:2};c=c.HyperlinkCanvas.prototype=new c._Canvas;c.openInNewWindow=!0;c.hoverImage=void 0;c.drawChildExtras=function(b){this.e&&(this.hoverImage?b.drawImage(this.hoverImage,0,0):(b.strokeStyle=this.color,b.lineWidth=2*this.size,b.strokeRect(0,0,this.width,this.height)))};c.setHoverImage=function(b){this.hoverImage=new Image;this.hoverImage.src=b};c.click=function(){this.e= +void 0;this.repaint();this.urlOrFunction instanceof Function?this.urlOrFunction():this.openInNewWindow?window.open(this.urlOrFunction):location.href=this.urlOrFunction};c.mouseout=function(){this.e=void 0;this.repaint()};c.mouseover=function(b){this.e=b;this.repaint()}})(ChemDoodle); +(function(c,b,a,g){c.MolGrabberCanvas=function(b,e,c){b&&this.create(b,e,c);e=[];e.push('\x3cbr\x3e\x3cinput type\x3d"text" id\x3d"');e.push(b);e.push('_query" size\x3d"32" value\x3d"" /\x3e');e.push("\x3cbr\x3e\x3cnobr\x3e");e.push('\x3cselect id\x3d"');e.push(b);e.push('_select"\x3e');e.push('\x3coption value\x3d"chemexper"\x3eChemExper');e.push('\x3coption value\x3d"chemspider"\x3eChemSpider');e.push('\x3coption value\x3d"pubchem" selected\x3ePubChem');e.push("\x3c/select\x3e");e.push('\x3cbutton id\x3d"'); +e.push(b);e.push('_submit"\x3eShow Molecule\x3c/button\x3e');e.push("\x3c/nobr\x3e");g.getElementById(b);a("#"+b).after(e.join(""));var d=this;a("#"+b+"_submit").click(function(){d.search()});a("#"+b+"_query").keypress(function(a){13===a.which&&d.search()});this.emptyMessage="Enter search term below";this.repaint()};c=c.MolGrabberCanvas.prototype=new c._Canvas;c.setSearchTerm=function(b){a("#"+this.id+"_query").val(b);this.search()};c.search=function(){this.emptyMessage="Searching...";this.clear(); +var c=this;b.getMoleculeFromDatabase(a("#"+this.id+"_query").val(),{database:a("#"+this.id+"_select").val()},function(a){c.loadMolecule(a)})}})(ChemDoodle,ChemDoodle.iChemLabs,jQuery,document); +(function(c,b,a){var g=[],f=[1,0,0],e=[0,1,0],o=[0,0,1];c.RotatorCanvas=function(a,b,e,c){a&&this.create(a,b,e);this.rotate3D=c};c=c.RotatorCanvas.prototype=new c._AnimatorCanvas;b=b.PI/15;c.xIncrement=b;c.yIncrement=b;c.zIncrement=b;c.nextFrame=function(b){if(0===this.molecules.length&&0===this.shapes.length)this.stopAnimation();else if(b/=1E3,this.rotate3D){a.identity(g);a.rotate(g,this.xIncrement*b,f);a.rotate(g,this.yIncrement*b,e);a.rotate(g,this.zIncrement*b,o);b=0;for(var c=this.molecules.length;b< +c;b++){for(var v=this.molecules[b],l=0,h=v.atoms.length;l<h;l++){var j=v.atoms[l],m=[j.x-this.width/2,j.y-this.height/2,j.z];a.multiplyVec3(g,m);j.x=m[0]+this.width/2;j.y=m[1]+this.height/2;j.z=m[2]}l=0;for(h=v.rings.length;l<h;l++)v.rings[l].center=v.rings[l].getCenter();this.specs.atoms_display&&this.specs.atoms_circles_2D&&v.sortAtomsByZ();this.specs.bonds_display&&this.specs.bonds_clearOverlaps_2D&&v.sortBondsByZ()}b=0;for(c=this.shapes.length;b<c;b++){v=this.shapes[b].getPoints();l=0;for(h=v.length;l< +h;l++)j=v[l],m=[j.x-this.width/2,j.y-this.height/2,0],a.multiplyVec3(g,m),j.x=m[0]+this.width/2,j.y=m[1]+this.height/2}}else this.specs.rotateAngle+=this.zIncrement*b};c.dblclick=function(){this.isRunning()?this.stopAnimation():this.startAnimation()}})(ChemDoodle,Math,mat4); +(function(c,b){c.SlideshowCanvas=function(a,b,e){a&&this.create(a,b,e)};var a=c.SlideshowCanvas.prototype=new c._AnimatorCanvas;a.frames=[];a.curIndex=0;a.timeout=5E3;a.alpha=0;a.innerHandle=void 0;a.phase=0;a.drawChildExtras=function(a){var c=b.getRGB(this.specs.backgroundColor,255);a.fillStyle="rgba("+c[0]+", "+c[1]+", "+c[2]+", "+this.alpha+")";a.fillRect(0,0,this.width,this.height)};a.nextFrame=function(){if(0===this.frames.length)this.stopAnimation();else{this.phase=0;var a=this,b=1;this.innerHandle= +setInterval(function(){a.alpha=b/15;a.repaint();15===b&&a.breakInnerHandle();b++},33)}};a.breakInnerHandle=function(){this.innerHandle&&(clearInterval(this.innerHandle),this.innerHandle=void 0);if(0===this.phase){this.curIndex++;this.curIndex>this.frames.length-1&&(this.curIndex=0);this.alpha=1;var a=this.frames[this.curIndex];this.loadContent(a.mols,a.shapes);this.phase=1;var b=this,e=1;this.innerHandle=setInterval(function(){b.alpha=(15-e)/15;b.repaint();15===e&&b.breakInnerHandle();e++},33)}else 1=== +this.phase&&(this.alpha=0,this.repaint())};a.addFrame=function(a,b){0===this.frames.length&&this.loadContent(a,b);this.frames.push({mols:a,shapes:b})}})(ChemDoodle,ChemDoodle.math); +(function(c,b,a,g,f){c.TransformCanvas=function(a,b,d,c){a&&this.create(a,b,d);this.rotate3D=c};c=c.TransformCanvas.prototype=new c._Canvas;c.lastPoint=void 0;c.rotationMultMod=1.3;c.lastPinchScale=1;c.lastGestureRotate=0;c.mousedown=function(a){this.lastPoint=a.p};c.dblclick=function(){this.center();this.repaint()};c.drag=function(e){if(!this.lastPoint.multi){if(b.ALT){var c=new a.Point(e.p.x,e.p.y);c.sub(this.lastPoint);for(var d=0,k=this.molecules.length;d<k;d++){for(var v=this.molecules[d],l= +0,h=v.atoms.length;l<h;l++)v.atoms[l].add(c);v.check()}d=0;for(k=this.shapes.length;d<k;d++){v=this.shapes[d].getPoints();l=0;for(h=v.length;l<h;l++)v[l].add(c)}this.lastPoint=e.p}else if(!0===this.rotate3D){h=g.max(this.width/4,this.height/4);l=(e.p.x-this.lastPoint.x)/h*this.rotationMultMod;h=-(e.p.y-this.lastPoint.y)/h*this.rotationMultMod;c=[];f.identity(c);f.rotate(c,h,[1,0,0]);f.rotate(c,l,[0,1,0]);d=0;for(k=this.molecules.length;d<k;d++){v=this.molecules[d];l=0;for(h=v.atoms.length;l<h;l++)d= +v.atoms[l],k=[d.x-this.width/2,d.y-this.height/2,d.z],f.multiplyVec3(c,k),d.x=k[0]+this.width/2,d.y=k[1]+this.height/2,d.z=k[2];d=0;for(k=v.rings.length;d<k;d++)v.rings[d].center=v.rings[d].getCenter();this.lastPoint=e.p;this.specs.atoms_display&&this.specs.atoms_circles_2D&&v.sortAtomsByZ();this.specs.bonds_display&&this.specs.bonds_clearOverlaps_2D&&v.sortBondsByZ()}}else h=new a.Point(this.width/2,this.height/2),l=h.angle(this.lastPoint),h=h.angle(e.p),this.specs.rotateAngle-=h-l,this.lastPoint= +e.p;this.repaint()}};c.mousewheel=function(a,b){this.specs.scale+=b/10;0.01>this.specs.scale&&(this.specs.scale=0.01);this.repaint()};c.multitouchmove=function(b,c){if(2===c)if(this.lastPoint.multi){var d=new a.Point(b.p.x,b.p.y);d.sub(this.lastPoint);for(var f=0,g=this.molecules.length;f<g;f++){for(var l=this.molecules[f],h=0,j=l.atoms.length;h<j;h++)l.atoms[h].add(d);l.check()}f=0;for(g=this.shapes.length;f<g;f++){l=this.shapes[f].getPoints();h=0;for(j=l.length;h<j;h++)l[h].add(d)}this.lastPoint= +b.p;this.lastPoint.multi=!0;this.repaint()}else this.lastPoint=b.p,this.lastPoint.multi=!0};c.gesturechange=function(b){0!==b.originalEvent.scale-this.lastPinchScale&&(this.specs.scale*=b.originalEvent.scale/this.lastPinchScale,0.01>this.specs.scale&&(this.specs.scale=0.01),this.lastPinchScale=b.originalEvent.scale);if(0!==this.lastGestureRotate-b.originalEvent.rotation){for(var c=(this.lastGestureRotate-b.originalEvent.rotation)/180*l.PI,d=new a.Point(this.width/2,this.height/2),f=0,g=this.molecules.length;f< +g;f++){for(var l=this.molecules[f],h=0,j=l.atoms.length;h<j;h++){var m=l.atoms[h],t=d.distance(m),n=d.angle(m)+c;m.x=d.x+t*l.cos(n);m.y=d.y-t*l.sin(n)}l.check()}this.lastGestureRotate=b.originalEvent.rotation}this.repaint()};c.gestureend=function(){this.lastPinchScale=1;this.lastGestureRotate=0}})(ChemDoodle,ChemDoodle.monitor,ChemDoodle.structures,Math,mat4);(function(c){c.ViewerCanvas=function(b,a,c){b&&this.create(b,a,c)};c.ViewerCanvas.prototype=new c._Canvas})(ChemDoodle); +(function(c){c._SpectrumCanvas=function(b,a,c){b&&this.create(b,a,c)};c=c._SpectrumCanvas.prototype=new c._Canvas;c.spectrum=void 0;c.emptyMessage="No Spectrum Loaded or Recognized";c.loadMolecule=void 0;c.getMolecule=void 0;c.innerRepaint=function(b){this.spectrum&&0<this.spectrum.data.length?this.spectrum.draw(b,this.specs,this.width,this.height):this.emptyMessage&&(b.fillStyle="#737683",b.textAlign="center",b.textBaseline="middle",b.font="18px Helvetica, Verdana, Arial, Sans-serif",b.fillText(this.emptyMessage, +this.width/2,this.height/2))};c.loadSpectrum=function(b){this.spectrum=b;this.repaint()};c.getSpectrum=function(){return this.spectrum};c.getSpectrumCoordinates=function(b,a){return spectrum.getInternalCoordinates(b,a,this.width,this.height)}})(ChemDoodle,document);(function(c){c.ObserverCanvas=function(b,a,c){b&&this.create(b,a,c)};c.ObserverCanvas.prototype=new c._SpectrumCanvas})(ChemDoodle); +(function(c){c.OverlayCanvas=function(b,a,c){b&&this.create(b,a,c)};c=c.OverlayCanvas.prototype=new c._SpectrumCanvas;c.overlaySpectra=[];c.superRepaint=c.innerRepaint;c.innerRepaint=function(b){this.superRepaint(b);if(this.spectrum&&0<this.spectrum.data.length)for(var a=0,c=this.overlaySpectra.length;a<c;a++){var f=this.overlaySpectra[a];f&&0<f.data.length&&(f.minX=this.spectrum.minX,f.maxX=this.spectrum.maxX,f.drawPlot(b,this.specs,this.width,this.height,this.spectrum.memory.offsetTop,this.spectrum.memory.offsetLeft, +this.spectrum.memory.offsetBottom))}};c.addSpectrum=function(b){this.spectrum?this.overlaySpectra.push(b):this.spectrum=b}})(ChemDoodle); +(function(c,b,a){c.PerspectiveCanvas=function(a,b,c){a&&this.create(a,b,c)};var g=c.PerspectiveCanvas.prototype=new c._SpectrumCanvas;g.dragRange=void 0;g.rescaleYAxisOnZoom=!0;g.lastPinchScale=1;g.mousedown=function(a){this.dragRange=new c.structures.Point(a.p.x,a.p.x)};g.mouseup=function(a){this.dragRange&&this.dragRange.x!==this.dragRange.y&&(this.dragRange.multi||(a=this.spectrum.zoom(this.dragRange.x,a.p.x,this.width,this.rescaleYAxisOnZoom),this.rescaleYAxisOnZoom&&(this.specs.scale=a)),this.dragRange= +void 0,this.repaint())};g.drag=function(a){this.dragRange&&(this.dragRange.multi?this.dragRange=void 0:(b.SHIFT&&(this.spectrum.translate(a.p.x-this.dragRange.x,this.width),this.dragRange.x=a.p.x),this.dragRange.y=a.p.x),this.repaint())};g.drawChildExtras=function(b){if(this.dragRange){var c=a.min(this.dragRange.x,this.dragRange.y),g=a.max(this.dragRange.x,this.dragRange.y);b.strokeStyle="gray";b.lineStyle=1;b.beginPath();for(b.moveTo(c,this.height/2);c<=g;c++)5>c%10?b.lineTo(c,a.round(this.height/ +2)):b.moveTo(c,a.round(this.height/2));b.stroke()}};g.mousewheel=function(a,b){this.specs.scale+=b/10;0.01>this.specs.scale&&(this.specs.scale=0.01);this.repaint()};g.dblclick=function(){this.spectrum.setup();this.specs.scale=1;this.repaint()};g.multitouchmove=function(a,b){2===b&&(!this.dragRange||!this.dragRange.multi?(this.dragRange=new c.structures.Point(a.p.x,a.p.x),this.dragRange.multi=!0):(this.spectrum.translate(a.p.x-this.dragRange.x,this.width),this.dragRange.x=a.p.x,this.dragRange.y=a.p.x, +this.repaint()))};g.gesturechange=function(a){this.specs.scale*=a.originalEvent.scale/this.lastPinchScale;0.01>this.specs.scale&&(this.specs.scale=0.01);this.lastPinchScale=a.originalEvent.scale;this.repaint()};g.gestureend=function(){this.lastPinchScale=1}})(ChemDoodle,ChemDoodle.monitor,Math); +(function(c,b){c.SeekerCanvas=function(a,b,c,o){a&&this.create(a,b,c);this.seekType=o};var a=c.SeekerCanvas.prototype=new c._SpectrumCanvas;a.superRepaint=a.innerRepaint;a.innerRepaint=function(a){this.superRepaint(a);if(this.spectrum&&0<this.spectrum.data.length&&this.p){var f,e;if(this.seekType===c.SeekerCanvas.SEEK_POINTER)f=this.p,e=this.spectrum.getInternalCoordinates(f.x,f.y);else if(this.seekType===c.SeekerCanvas.SEEK_PLOT||this.seekType===c.SeekerCanvas.SEEK_PEAK){e=this.seekType===c.SeekerCanvas.SEEK_PLOT? +this.spectrum.getClosestPlotInternalCoordinates(this.p.x):this.spectrum.getClosestPeakInternalCoordinates(this.p.x);if(!e)return;f={x:this.spectrum.getTransformedX(e.x,this.specs,this.width,this.spectrum.memory.offsetLeft),y:this.spectrum.getTransformedY(e.y/100,this.specs,this.height,this.spectrum.memory.offsetBottom,this.spectrum.memory.offsetTop)}}a.fillStyle="white";a.strokeStyle=this.specs.plots_color;a.lineWidth=this.specs.plots_width;a.beginPath();a.arc(f.x,f.y,3,0,2*b.PI,!1);a.fill();a.stroke(); +a.font=this.specs.getFontString(this.specs.text_font_size,this.specs.text_font_families);a.textAlign="left";a.textBaseline="bottom";e="x:"+e.x.toFixed(3)+", y:"+e.y.toFixed(3);var o=f.x+3,d=a.measureText(e).width;o+d>this.width-2&&(o-=6+d);f=f.y;0>f-this.specs.text_font_size-2&&(f+=this.specs.text_font_size);a.fillRect(o,f-this.specs.text_font_size,d,this.specs.text_font_size);a.fillStyle="black";a.fillText(e,o,f)}};a.mouseout=function(){this.p=void 0;this.repaint()};a.mousemove=function(a){this.p= +{x:a.p.x-2,y:a.p.y-3};this.repaint()};a.touchstart=function(a){this.mousemove(a)};a.touchmove=function(a){this.mousemove(a)};a.touchend=function(a){this.mouseout(a)};c.SeekerCanvas.SEEK_POINTER="pointer";c.SeekerCanvas.SEEK_PLOT="plot";c.SeekerCanvas.SEEK_PEAK="peak"})(ChemDoodle,Math); +(function(c,b,a,g,f,e,o,d,k,v,l){c._Canvas3D=function(a,b,d){a&&this.create(a,b,d)};var h=c._Canvas3D.prototype=new c._Canvas;h.rotationMatrix=k.identity([]);h.translationMatrix=k.identity([]);h.lastPoint=void 0;h.emptyMessage="WebGL is Unavailable!";h.afterLoadContent=function(){for(var b=new a.Bounds,d=0,c=this.molecules.length;d<c;d++)b.expand(this.molecules[d].getBounds());this.maxDimension=o.max(b.maxX-b.minX,b.maxY-b.minY);this.translationMatrix=k.translate(k.identity([]),[0,0,-this.maxDimension- +10]);this.setupScene()};h.setViewDistance=function(a){this.translationMatrix=k.translate(k.identity([]),[0,0,-a])};h.repaint=function(){if(this.gl){this.gl.clear(this.gl.COLOR_BUFFER_BIT|this.gl.DEPTH_BUFFER_BIT);this.gl.modelViewMatrix=k.multiply(this.translationMatrix,this.rotationMatrix,[]);this.gl.rotationMatrix=this.rotationMatrix;for(var a=0,b=this.molecules.length;a<b;a++)this.molecules[a].render(this.gl,this.specs);a=0;for(b=this.shapes.length;a<b;a++)this.shapes[a].render(this.gl,this.specs); +this.specs.atoms_displayLabels_3D&&this.label3D.render(this.gl,this.specs,this.getMolecules());this.gl.flush()}};h.center=function(){d.getElementById(this.id);for(var a=new g.Atom,b=0,c=this.molecules.length;b<c;b++){var e=this.molecules[b];a.add3D(e.getCenter3D())}a.x/=this.molecules.length;a.y/=this.molecules.length;b=0;for(c=this.molecules.length;b<c;b++){for(var e=this.molecules[b],f=0,h=e.atoms.length;f<h;f++)e.atoms[f].sub3D(a);if(e.chains&&e.fromJSON){f=0;for(h=e.chains.length;f<h;f++)for(var k= +e.chains[f],l=0,o=k.length;l<o;l++){var v=k[l];v.cp1.sub3D(a);v.cp2.sub3D(a);v.cp3&&(v.cp3.sub3D(a),v.cp4.sub3D(a),v.cp5.sub3D(a))}}}};h.subCreate=function(){try{var a=d.getElementById(this.id);this.gl=a.getContext("webgl");this.gl||(this.gl=a.getContext("experimental-webgl"))}catch(b){}this.gl?(this.gl.viewport(0,0,this.width,this.height),this.gl.program=this.gl.createProgram(),this.gl.shader=new f.Shader,this.gl.shader.init(this.gl),this.setupScene()):this.displayMessage()};c._Canvas.prototype.displayMessage= +function(){var a=d.getElementById(this.id);a.getContext&&(a=a.getContext("2d"),this.specs.backgroundColor&&(a.fillStyle=this.specs.backgroundColor,a.fillRect(0,0,this.width,this.height)),this.emptyMessage&&(a.fillStyle="#737683",a.textAlign="center",a.textBaseline="middle",a.font="18px Helvetica, Verdana, Arial, Sans-serif",a.fillText(this.emptyMessage,this.width/2,this.height/2)))};h.setupScene=function(){if(this.gl){var d=a.getRGB(this.specs.backgroundColor,1);this.gl.clearColor(d[0],d[1],d[2], +1);this.gl.clearDepth(1);this.gl.enable(this.gl.DEPTH_TEST);this.gl.depthFunc(this.gl.LEQUAL);this.gl.sphereBuffer=new f.Sphere(1,this.specs.atoms_resolution_3D,this.specs.atoms_resolution_3D);this.gl.starBuffer=new f.Star;this.gl.cylinderBuffer=new f.Cylinder(1,1,this.specs.bonds_resolution_3D);this.gl.lineBuffer=new f.Line;for(var d=0,c=this.molecules.length;d<c;d++){var g=this.molecules[d];g.unitCellVectors&&(g.unitCell=new f.UnitCell(g.unitCellVectors));if(g.chains){g.ribbons=[];g.cartoons=[]; +g.tubes=[];for(var h=0,u=g.chains.length;h<u;h++){var q=g.chains[h],r=2<q.length&&e[q[2].name]&&"#BEA06E"===e[q[2].name].aminoColor;if(0<q.length&&!q[0].lineSegments){for(var w=0,p=q.length-1;w<p;w++)q[w].setup(q[w+1].cp1,r?1:this.specs.proteins_horizontalResolution);if(!r){w=1;for(p=q.length-1;w<p;w++)b.vec3AngleFrom(q[w-1].D,q[w].D)>o.PI/2&&(q[w].guidePointsSmall.reverse(),q[w].guidePointsLarge.reverse(),l.scale(q[w].D,-1))}w=1;for(p=q.length-3;w<p;w++)q[w].computeLineSegments(q[w-1],q[w+1],q[w+ +2],!r,r?this.specs.nucleics_verticalResolution:this.specs.proteins_verticalResolution);q.pop();q.pop();q.pop();q.shift()}var y=a.hsl2rgb(1===u?0.5:h/u,1,0.5),y="rgb("+y[0]+","+y[1]+","+y[2]+")";q.chainColor=y;if(r)q=new f.Tube(q,this.specs.nucleics_tubeThickness,this.specs.nucleics_tubeResolution_3D),q.chainColor=y,g.tubes.push(q);else{r={front:new f.Ribbon(q,this.specs.proteins_ribbonThickness,!1),back:new f.Ribbon(q,-this.specs.proteins_ribbonThickness,!1)};r.front.chainColor=y;r.back.chainColor= +y;w=0;for(p=r.front.segments.length;w<p;w++)r.front.segments[w].chainColor=y;w=0;for(p=r.back.segments.length;w<p;w++)r.back.segments[w].chainColor=y;g.ribbons.push(r);q={front:new f.Ribbon(q,this.specs.proteins_ribbonThickness,!0),back:new f.Ribbon(q,-this.specs.proteins_ribbonThickness,!0)};q.front.chainColor=y;q.back.chainColor=y;w=0;for(p=q.front.segments.length;w<p;w++)q.front.segments[w].chainColor=y;w=0;for(p=q.back.segments.length;w<p;w++)q.back.segments[w].chainColor=y;w=0;for(p=q.front.cartoonSegments.length;w< +p;w++)q.front.cartoonSegments[w].chainColor=y;w=0;for(p=q.back.cartoonSegments.length;w<p;w++)q.back.cartoonSegments[w].chainColor=y;g.cartoons.push(q)}}}}this.label3D=new f.Label;this.label3D.initialize(this.gl);this.label3D.bindMoleculeLabel(this.gl,this.getMolecules());this.label3D.changeFontTexture(this.gl,this.specs);this.label3D.updateVerticesBuffer(this.gl,this.getMolecules(),this.specs);this.gl.lighting=new f.Light(this.specs.lightDiffuseColor_3D,this.specs.lightSpecularColor_3D,this.specs.lightDirection_3D); +this.gl.lighting.lightScene(this.gl);this.gl.material=new f.Material(this.gl);d=this.width/this.height;this.specs.projectionWidthHeightRatio_3D&&(d=this.specs.projectionWidthHeightRatio_3D);this.gl.projectionMatrix=this.specs.projectionPerspective_3D?k.perspective(this.specs.projectionPerspectiveVerticalFieldOfView_3D,d,this.specs.projectionFrontCulling_3D,this.specs.projectionBackCulling_3D):k.ortho(-this.specs.projectionOrthoWidth_3D/2,this.specs.projectionOrthoWidth_3D/2,-this.specs.projectionOrthoWidth_3D/ +2/d,this.specs.projectionOrthoWidth_3D/2/d,this.specs.projectionFrontCulling_3D,this.specs.projectionBackCulling_3D);d=this.gl.getUniformLocation(this.gl.program,"u_projection_matrix");this.gl.uniformMatrix4fv(d,!1,this.gl.projectionMatrix);var z=this.gl.getUniformLocation(this.gl.program,"u_model_view_matrix"),x=this.gl.getUniformLocation(this.gl.program,"u_normal_matrix");this.gl.setMatrixUniforms=function(a){this.uniformMatrix4fv(z,!1,a);a=v.transpose(k.toInverseMat3(a,[]));this.uniformMatrix3fv(x, +!1,a)}}};h.mousedown=function(a){this.lastPoint=a.p};h.rightmousedown=function(a){this.lastPoint=a.p};h.drag=function(a){if(c.monitor.ALT){var b=new g.Point(a.p.x,a.p.y);b.sub(this.lastPoint);k.translate(this.translationMatrix,[b.x/20,-b.y/20,0])}else{var d=a.p.x-this.lastPoint.x,b=a.p.y-this.lastPoint.y,d=k.rotate(k.identity([]),d*o.PI/180,[0,1,0]);k.rotate(d,b*o.PI/180,[1,0,0]);this.rotationMatrix=k.multiply(d,this.rotationMatrix)}this.lastPoint=a.p;this.repaint()};h.mousewheel=function(a,b){var d= +b*this.maxDimension/8;this.specs.projectionPerspective_3D?k.translate(this.translationMatrix,[0,0,d]):(this.specs.projectionOrthoWidth_3D-=d,this.setupScene());this.repaint()}})(ChemDoodle,ChemDoodle.extensions,ChemDoodle.math,ChemDoodle.structures,ChemDoodle.structures.d3,ChemDoodle.RESIDUE,Math,document,mat4,mat3,vec3,window); +(function(c,b,a,g){c.MolGrabberCanvas3D=function(b,c,o){b&&this.create(b,c,o);c=[];c.push('\x3cbr\x3e\x3cinput type\x3d"text" id\x3d"');c.push(b);c.push('_query" size\x3d"32" value\x3d"" /\x3e');c.push("\x3cbr\x3e\x3cnobr\x3e");c.push('\x3cselect id\x3d"');c.push(b);c.push('_select"\x3e');c.push('\x3coption value\x3d"pubchem" selected\x3ePubChem');c.push("\x3c/select\x3e");c.push('\x3cbutton id\x3d"');c.push(b);c.push('_submit"\x3eShow Molecule\x3c/button\x3e');c.push("\x3c/nobr\x3e");g.writeln(c.join("")); +var d=this;a("#"+b+"_submit").click(function(){d.search()});a("#"+b+"_query").keypress(function(a){13===a.which&&d.search()})};c=c.MolGrabberCanvas3D.prototype=new c._Canvas3D;c.setSearchTerm=function(b){a("#"+this.id+"_query").val(b);this.search()};c.search=function(){var c=this;b.getMoleculeFromDatabase(a("#"+this.id+"_query").val(),{database:a("#"+this.id+"_select").val(),dimension:3},function(a){c.loadMolecule(a)})}})(ChemDoodle,ChemDoodle.iChemLabs,jQuery,document); +(function(c,b){c.MovieCanvas3D=function(a,b,c){a&&this.create(a,b,c)};c.MovieCanvas3D.PLAY_ONCE=0;c.MovieCanvas3D.PLAY_LOOP=1;c.MovieCanvas3D.PLAY_SPRING=2;var a=c.MovieCanvas3D.prototype=new c._Canvas3D;a.timeout=50;a.frames=[];a.frameNumber=0;a.playMode=2;a.reverse=!1;a.startAnimation=c._AnimatorCanvas.prototype.startAnimation;a.stopAnimation=c._AnimatorCanvas.prototype.stopAnimation;a.isRunning=c._AnimatorCanvas.prototype.isRunning;a.dblclick=c.RotatorCanvas.prototype.dblclick;a.nextFrame=function(){var a= +this.frames[this.frameNumber];this.molecules=a.mols;this.shapes=a.shapes;2===this.playMode&&this.reverse?(this.frameNumber--,0>this.frameNumber&&(this.frameNumber=1,this.reverse=!1)):(this.frameNumber++,this.frameNumber>=this.frames.length&&(2===this.playMode?(this.frameNumber-=2,this.reverse=!0):(this.frameNumber=0,0===this.playMode&&this.stopAnimation())))};a.center=function(){for(var a=new b.Atom,c=this.frames[0],e=0,o=c.mols.length;e<o;e++)a.add3D(c.mols[e].getCenter3D());a.x/=c.mols.length;a.y/= +c.mols.length;c=new b.Atom;c.sub3D(a);for(var a=0,d=this.frames.length;a<d;a++)for(var k=this.frames[a],e=0,o=k.mols.length;e<o;e++)for(var v=k.mols[e],l=0,h=v.atoms.length;l<h;l++)v.atoms[l].add3D(c)};a.addFrame=function(a,b){this.frames.push({mols:a,shapes:b})}})(ChemDoodle,ChemDoodle.structures); +(function(c,b,a){var g=[],f=[1,0,0],e=[0,1,0],o=[0,0,1];c.RotatorCanvas3D=function(a,b,d){a&&this.create(a,b,d)};var d=c.RotatorCanvas3D.prototype=new c._Canvas3D;d.timeout=33;b=b.PI/15;d.xIncrement=b;d.yIncrement=b;d.zIncrement=b;d.startAnimation=c._AnimatorCanvas.prototype.startAnimation;d.stopAnimation=c._AnimatorCanvas.prototype.stopAnimation;d.isRunning=c._AnimatorCanvas.prototype.isRunning;d.dblclick=c.RotatorCanvas.prototype.dblclick;d.mousedown=void 0;d.rightmousedown=void 0;d.drag=void 0; +d.mousewheel=void 0;d.nextFrame=function(b){0===this.molecules.length&&0===this.shapes.length?this.stopAnimation():(a.identity(g),b/=1E3,a.rotate(g,this.xIncrement*b,f),a.rotate(g,this.yIncrement*b,e),a.rotate(g,this.zIncrement*b,o),a.multiply(this.rotationMatrix,g))}})(ChemDoodle,Math,mat4);(function(c){c.TransformCanvas3D=function(b,a,c){b&&this.create(b,a,c)};c.TransformCanvas3D.prototype=new c._Canvas3D})(ChemDoodle); +(function(c){c.ViewerCanvas3D=function(b,a,c){b&&this.create(b,a,c)};c=c.ViewerCanvas3D.prototype=new c._Canvas3D;c.mousedown=void 0;c.rightmousedown=void 0;c.drag=void 0;c.mousewheel=void 0})(ChemDoodle); +(function(c,b,a){function g(a,b,d,c){this.element=a;this.x=b;this.y=d;this.dimension=c}c.PeriodicTableCanvas=function(a,b){this.padding=5;a&&this.create(a,18*b+2*this.padding,10*b+2*this.padding);this.cellDimension=b?b:20;this.setupTable();this.repaint()};var f=c.PeriodicTableCanvas.prototype=new c._Canvas;f.loadMolecule=void 0;f.getMolecule=void 0;f.getHoveredElement=function(){if(this.hovered)return this.hovered.element};f.innerRepaint=function(a){for(var b=0,d=this.cells.length;b<d;b++)this.drawCell(a, +this.specs,this.cells[b]);this.hovered&&this.drawCell(a,this.specs,this.hovered);this.selected&&this.drawCell(a,this.specs,this.selected)};f.setupTable=function(){this.cells=[];for(var a=this.padding,b=this.padding,d=0,f=0,v=c.SYMBOLS.length;f<v;f++){18===d&&(d=0,b+=this.cellDimension,a=this.padding);var l=c.ELEMENT[c.SYMBOLS[f]];if(2===l.atomicNumber)a+=16*this.cellDimension,d+=16;else if(5===l.atomicNumber||13===l.atomicNumber)a+=10*this.cellDimension,d+=10;if((58>l.atomicNumber||71<l.atomicNumber&& +90>l.atomicNumber||103<l.atomicNumber)&&113>l.atomicNumber)this.cells.push(new g(l,a,b,this.cellDimension)),a+=this.cellDimension,d++}b+=2*this.cellDimension;a=3*this.cellDimension+this.padding;for(f=57;104>f;f++)if(l=c.ELEMENT[c.SYMBOLS[f]],90===l.atomicNumber&&(b+=this.cellDimension,a=3*this.cellDimension+this.padding),58<=l.atomicNumber&&71>=l.atomicNumber||90<=l.atomicNumber&&103>=l.atomicNumber)this.cells.push(new g(l,a,b,this.cellDimension)),a+=this.cellDimension};f.drawCell=function(a,c,d){var f= +a.createRadialGradient(d.x+d.dimension/3,d.y+d.dimension/3,1.5*d.dimension,d.x+d.dimension/3,d.y+d.dimension/3,d.dimension/10);f.addColorStop(0,"#000000");f.addColorStop(0.7,d.element.jmolColor);f.addColorStop(1,"#FFFFFF");a.fillStyle=f;b.contextRoundRect(a,d.x,d.y,d.dimension,d.dimension,d.dimension/8);if(d===this.hovered||d===this.selected)a.lineWidth=2,a.strokeStyle="#c10000",a.stroke(),a.fillStyle="white";a.fill();a.font=c.getFontString(c.text_font_size,c.text_font_families);a.fillStyle=c.text_color; +a.textAlign="center";a.textBaseline="middle";a.fillText(d.element.symbol,d.x+d.dimension/2,d.y+d.dimension/2)};f.click=function(){this.hovered&&(this.selected=this.hovered,this.repaint())};f.mousemove=function(b){var c=b.p.x;b=b.p.y;this.hovered=void 0;for(var d=0,f=this.cells.length;d<f;d++){var g=this.cells[d];if(a.isBetween(c,g.x,g.x+g.dimension)&&a.isBetween(b,g.y,g.y+g.dimension)){this.hovered=g;break}}this.repaint()};f.mouseout=function(){this.hovered=void 0;this.repaint()}})(ChemDoodle,ChemDoodle.extensions, +ChemDoodle.math,document);(function(c,b,a){c.png={};c.png.create=function(c){a.open(b.getElementById(c.id).toDataURL("image/png"))}})(ChemDoodle.io,document,window);(function(c,b){c.file={};c.file.content=function(a,c){b.get(a,"",c)}})(ChemDoodle.io,jQuery); +(function(c,b,a,g,f){b.SERVER_URL="http://ichemlabs.cloud.chemdoodle.com/icl_cdc_v050000/WebHQ";b.inRelay=!1;b.asynchronous=!0;b.INFO={userAgent:navigator.userAgent,v_cwc:c.getVersion(),v_jQuery:f.version,v_jQuery_ui:f.ui?f.ui.version:"N/A"};var e=new a.JSONInterpreter;b._contactServer=function(a,d,c,e,g){this.inRelay?alert("Already connecting to the server, please wait for the first request to finish."):(b.inRelay=!0,f.ajax({dataType:"text",type:"POST",data:JSON.stringify({call:a,content:d,options:c, +info:b.INFO}),url:this.SERVER_URL,success:function(a){b.inRelay=!1;a=JSON.parse(a);a.message&&alert(a.message);e&&(a.content&&!a.stop)&&e(a.content);a.stop&&g&&g()},error:function(){b.inRelay=!1;alert("Call failed. Please try again. If you continue to see this message, please contact iChemLabs customer support.");g&&g()},xhrFields:{withCredentials:!0},async:b.asynchronous}))};b.authenticate=function(a,b,c,e){this._contactServer("authenticate",{credential:a},b,function(a){c(a)},e)};b.calculate=function(a, +b,c,f){this._contactServer("calculate",{mol:e.molTo(a)},b,function(a){c(a)},f)};b.generateImage=function(a,b,c,f){this._contactServer("generateImage",{mol:e.molTo(a)},b,function(a){c(a.link)},f)};b.getAd=function(a,b){this._contactServer("getAd",{},{},function(b){a(b.image_url,b.target_url)},b)};b.getMoleculeFromContent=function(a,b,c,f){this._contactServer("getMoleculeFromContent",{content:a},b,function(a){for(var b=!1,d=0,f=a.mol.a.length;d<f;d++)if(0!==a.mol.a[d].z){b=!0;break}if(b){d=0;for(f= +a.mol.a.length;d<f;d++)a.mol.a[d].x/=20,a.mol.a[d].y/=20,a.mol.a[d].z/=20}c(e.molFrom(a.mol))},f)};b.getMoleculeFromDatabase=function(a,b,c,f){this._contactServer("getMoleculeFromDatabase",{query:a},b,function(a){if(3===b.dimension)for(var f=0,g=a.mol.a.length;f<g;f++)a.mol.a[f].x/=20,a.mol.a[f].y/=-20,a.mol.a[f].z/=20;c(e.molFrom(a.mol))},f)};b.getOptimizedPDBStructure=function(a,b,c,f){this._contactServer("getOptimizedPDBStructure",{id:a},b,function(a){var b;b=a.mol?e.molFrom(a.mol):new g.Molecule; +b.chains=e.chainsFrom(a.ribbons);b.fromJSON=!0;c(b)},f)};b.getZeoliteFromIZA=function(a,b,c,e){this._contactServer("getZeoliteFromIZA",{query:a},b,function(a){c(ChemDoodle.readCIF(a.cif,b.xSuper,b.ySuper,b.zSuper))},e)};b.isGraphIsomorphism=function(a,b,c,f,g){this._contactServer("isGraphIsomorphism",{arrow:e.molTo(a),target:e.molTo(b)},c,function(a){f(a.value)},g)};b.isSubgraphIsomorphism=function(a,b,c,f,g){this._contactServer("isSubgraphIsomorphism",{arrow:e.molTo(a),target:e.molTo(b)},c,function(a){f(a.value)}, +g)};b.kekulize=function(a,b,c,f){this._contactServer("kekulize",{mol:e.molTo(a)},b,function(a){c(e.molFrom(a.mol))},f)};b.optimize=function(a,b,c,f){this._contactServer("optimize",{mol:e.molTo(a)},b,function(f){f=e.molFrom(f.mol);if(2===b.dimension){for(var g=0,j=f.atoms.length;g<j;g++)a.atoms[g].x=f.atoms[g].x,a.atoms[g].y=f.atoms[g].y;c()}else if(3===b.dimension){g=0;for(j=f.atoms.length;g<j;g++)f.atoms[g].x/=20,f.atoms[g].y/=-20,f.atoms[g].z/=20;c(f)}},f)};b.readIUPACName=function(a,b,c,f){this._contactServer("readIUPACName", +{iupac:a},b,function(a){c(e.molFrom(a.mol))},f)};b.readSMILES=function(a,b,c,f){this._contactServer("readSMILES",{smiles:a},b,function(a){c(e.molFrom(a.mol))},f)};b.saveFile=function(a,b,c,f){this._contactServer("saveFile",{mol:e.molTo(a)},b,function(a){c(a.link)},f)};b.simulate13CNMR=function(a,b,f,g){b.nucleus="C";b.isotope=13;this._contactServer("simulateNMR",{mol:e.molTo(a)},b,function(a){f(c.readJCAMP(a.jcamp))},g)};b.simulate1HNMR=function(a,b,f,g){b.nucleus="H";b.isotope=1;this._contactServer("simulateNMR", +{mol:e.molTo(a)},b,function(a){f(c.readJCAMP(a.jcamp))},g)};b.simulateMassParentPeak=function(a,b,f,g){this._contactServer("simulateMassParentPeak",{mol:e.molTo(a)},b,function(a){f(c.readJCAMP(a.jcamp))},g)};b.writeSMILES=function(a,b,c,f){this._contactServer("writeSMILES",{mol:e.molTo(a)},b,function(a){c(a.smiles)},f)}})(ChemDoodle,ChemDoodle.iChemLabs,ChemDoodle.io,ChemDoodle.structures,jQuery); \ No newline at end of file Modified: trunk/cantharella.web/src/main/webapp/colorbox/colorbox.css =================================================================== --- trunk/cantharella.web/src/main/webapp/colorbox/colorbox.css 2013-02-25 15:02:04 UTC (rev 155) +++ trunk/cantharella.web/src/main/webapp/colorbox/colorbox.css 2013-02-25 15:02:42 UTC (rev 156) @@ -1,4 +1,4 @@ -/* +/* %%Ignore-License ColorBox Core Style: The following CSS is consistent between example themes and should not be altered. */ Modified: trunk/cantharella.web/src/main/webapp/colorbox/jquery.colorbox-min.js =================================================================== --- trunk/cantharella.web/src/main/webapp/colorbox/jquery.colorbox-min.js 2013-02-25 15:02:04 UTC (rev 155) +++ trunk/cantharella.web/src/main/webapp/colorbox/jquery.colorbox-min.js 2013-02-25 15:02:42 UTC (rev 156) @@ -1,4 +1,4 @@ -/*! +/*! %%Ignore-License jQuery ColorBox v1.4.3 - 2013-02-18 (c) 2013 Jack Moore - jacklmoore.com/colorbox license: http://www.opensource.org/licenses/mit-license.php