Where to find a style.less request?

This one is driving me nuts. Post upgrade to 12.0.1, every page call is requesting a version of style.less that for some reason isn't available. It gives a 404 which then causes the browser to complain about getting an html (friendly 404) response instead of the CSS type it was expecting.

I've narrowed it down to the User - Banner Widget. Whenever I have that widget on the site in the header, the call to nowhere happens. With it gone, the page doesn't have any errors but obviously that doesn't work for site functionality. I've factory defaulted the widget (had very minor edits to restore the hover action on the username) and expired all of the caches and reloaded plug-ins and it still wants to request a path that doesn't exist. If the main site theme is in folder 123, the requested folder it's looking for is 456 (numbers for example only, if needed, can provide real numbers).

I suspect it is something with the widget's style.less wanting to be added after theme, but I have other widgets that are doing just fine.

What's the best way to track down where the path request is getting generated from the widget?

Parents
  • Processed LESS files are generated on first access (which is why the path may not appear to exist in the folder structure of your file storage location). 

    The issue you're seeing could be caused by:

    1. A bad stylesheet registration in the widget -- the widget could be including a URL that doesn't exist.
    2. An error occuring during LESS file generation and no previous successful version of the file exists. In this case, there should be an exception logged that provides more details.
    3. The site is configured behind a proxy (or full-site CDN) which is malfunctioning.
  • I think it is likely number 1 as I don't have any exceptions logged for this and it's not behind a proxy.

    Where would you suggest to start looking for this URL in the factory default User - Banner widget?

  • Could you export the widget and paste it here? If there are customizations to it, this could be reviewed with a support ticket.

  • Here is the exported widget:

    <scriptedContentFragments>
    	<scriptedContentFragment name="${resource:Core_UserBanner_Name}" version="12.0.1.15778" description="${resource:Core_UserBanner_Description}" instanceIdentifier="f37d7b83ea2942cba359029ec84a7bc5" theme="" isCacheable="true" varyCacheByUser="true" showHeaderByDefault="false" cssClass="user-banner" lastModified="2020-12-16 21:50:03Z">
    		<contentScript language="Velocity"><![CDATA[$core_v2_page.AddLink('stylesheet', $core_v2_widget.GetExecutedFileUrl('style.less'), "%{ Position = 'AfterTheme' }")
    
    #set($user = false)
    #set($user = $core_v2_user.Current)
    #if (!$user || !$user.Url || $core_v2_page.Url.ToLowerInvariant().IndexOf($user.Url.ToLowerInvariant()) == -1)
    	$core_v2_widget.Hide()
    #end
    
    #set($isEditable = true)
    #if ($user.Id != $core_v2_user.Accessing.Id || !$core_v2_user.IsRegistered($core_v2_user.Accessing.Id))
    	#set($isEditable = false)
    #end
    #set ($isInEditMode = true)
    #if (!$isEditable || !$core_v2_editableGroup.IsEditable('User'))
    	#set ($isInEditMode = false)
    #end
    
    #set ($isHome = false)
    #if ($core_v2_urls.Current == 'User')
    	#set($isHome = true)
    #end
    
    #set ($applicationNavigationId = $core_v2_widget.UniqueId('applicationNavigationId'))
    
    #set ($coverPhotoContainerId = $core_v2_widget.UniqueId('coverPhotoContainerId'))
    #set ($removeCoverPhotoLinkId = $core_v2_widget.UniqueId('removeCoverPhotoLink'))
    
    $core_v2_widget.ExecuteFile('style.vm')
    
    <div id="$core_v2_encoding.HtmlAttributeEncode($coverPhotoContainerId)" class="cover-photo"></div>
    
    <div class="banner context #if ($isHome) home #end">
    
    	#if ($isInEditMode)
    		<div class="cover-photo-links">
    			#set($hasCoverPhotoPermission = $core_v2_nodePermission.Get($core_v2_sitePermissions.ChangeUserCoverPhoto).IsAllowed)
    			#if ($hasCoverPhotoPermission)
    				#set ($coverPhotoDimensionsTip = false)
    				#set ($coverPhotoLayout = $core_v2_widget.GetStringValue('coverPhotoLayout', 'cover'))
    				#set ($coverPhotoLayoutDynamicHeightMode = $core_v2_widget.GetStringValue('coverPhotoLayoutDynamicHeightMode', 'defined'))
    				#set ($coverPhotoWidth = $core_v2_widget.GetIntValue('coverPhotoLayoutDynamicDefinedWidth', 1500))
    				#set ($coverPhotoHeight = $core_v2_widget.GetIntValue('coverPhotoLayoutDynamicDefinedHeight', 375))
    				#if ($coverPhotoLayout == 'dynamic' && $coverPhotoLayoutDynamicHeightMode == 'defined')
    					#store($coverPhotoDimensionsTip)
    						#format ($core_v2_language.GetResource('dimensionsTip'))
    							#token('width')
    								$coverPhotoWidth
    							#token('height')
    								$coverPhotoHeight
    						#end
    					#end
    				#end
    
    				<a href="#" class="upload-cover prepend-icon camera ui-tip" #if ($coverPhotoDimensionsTip) data-tip="$core_v2_encoding.HtmlAttributeEncode($coverPhotoDimensionsTip)" #end id="$core_v2_widget.UniqueId('cover-photo-upload')" data-messagename="widgets.upload-cover">$core_v2_language.GetResource('SetCover')</a>
    				<a href="#" class="delete" id="$core_v2_encoding.HtmlAttributeEncode($removeCoverPhotoLinkId)" style="#if (!$hasCoverPhoto) display: none #end" data-messagename="widgets.delete-cover">$core_v2_language.GetResource('RemoveCover')</a>
    			#end
    			#set ($uploadContextId = $core_v2_uploadedFile.CreateContextId())
    			#registerEndOfPageHtml('telligent.evolution.widgets.userBanner')
    				<script type="text/javascript" src="$core_v2_encoding.HtmlAttributeEncode($core_v2_widget.GetFileUrl("ui.js"))"></script>
    			#end
    			#registerEndOfPageHtml()
    				<script type="text/javascript">
    					jQuery(function(){
    						jQuery.telligent.evolution.widgets.userBanner.register({
    							wrapper: '#$core_v2_widget.WrapperElementId',
    							userId: $user.Id,
    							uploadContextId: '$core_v2_encoding.JavascriptEncode($uploadContextId)',
    							uploadUrl: '$core_v2_encoding.JavascriptEncode($core_v2_uploadedFile.GetUploadUrl($uploadContextId))',
    							resizedCoverPhotoUrl: '$core_v2_encoding.JavascriptEncode($core_v2_widget.GetExecutedFileUrl('getResizedCoverPhotoUrl.vm'))',
    							coverPhotoContainer: '#$core_v2_encoding.JavascriptEncode($coverPhotoContainerId)',
    							removeConfirm: '$core_v2_encoding.JavascriptEncode($core_v2_language.GetResource('RemoveConfirm'))',
    							removeCoverPhotoLink: '#$core_v2_encoding.JavascriptEncode($removeCoverPhotoLinkId)',
    							coverPhotoUploadLink: '#$core_v2_widget.UniqueId('cover-photo-upload')',
    							uploadText: '$core_v2_encoding.JavascriptEncode($core_v2_language.GetResource('SetCover'))',
    							progressText: '$core_v2_encoding.JavascriptEncode($core_v2_language.GetResource('CoverUploadProgress'))'
    						})
    					});
    				</script>
    			#end
    		</div>
    	#end
    
    	<div class="avatar">
    		#if($isInEditMode)
    			<a href="#" id="$core_v2_widget.UniqueId('editavatar')" class="internal-link edit-avatar ui-tip" title="$core_v2_language.GetResource('EditProfile_ChangeAvatar')" data-userhover="ignore">
    				$core_v2_ui.GetResizedImageHtml($user.AvatarUrl, 68, 68, "%{ alt = $user.DisplayName, ResizeMethod='ZoomAndCrop' }")
    				<span class="caption">$core_v2_language.GetResource('EditProfile_Change')</span>
    			</a>
    
    			<script type="text/javascript">
    			//<!--31154f2f1a944c64b0e644f1022f506c-cdata-start-->
    			jQuery(function(){
    				jQuery('#$core_v2_widget.UniqueId('editavatar')').on('click', function() {
    					jQuery.glowModal('$core_v2_encoding.JavascriptEncode($core_v2_urls.EditAvatar())', {
    						width:560,
    						height:300,
    						onClose: function() {
    							// load the updated avatar
    							jQuery.telligent.evolution.get({
    								url: '$core_v2_encoding.JavascriptEncode($core_v2_widget.GetExecutedFileUrl('avatar.vm'))',
    								data: { w_userId: $user.Id },
    								success: function(response) {
    									var avatar = $('#$core_v2_widget.WrapperElementId .avatar img');
    									var newAvatar = $(response.avatar);
    									avatar.after(newAvatar).remove();
    								}
    							});
    						}
    					});
    
    					return false;
    				});
    			});
    			//<!--31154f2f1a944c64b0e644f1022f506c-cdata-end-->
    			</script>
    		#else
    			#if ($user.ProfileUrl)
    				<a href="$core_v2_encoding.HtmlAttributeEncode($user.ProfileUrl)" class="internal-link view-user-profile" data-userhover="ignore">
    					$core_v2_ui.GetResizedImageHtml($user.AvatarUrl, 68, 68, "%{ alt = $user.DisplayName, ResizeMethod='ZoomAndCrop' }")
    				</a>
    			#else
    				$core_v2_ui.GetResizedImageHtml($user.AvatarUrl, 68, 68, "%{ alt = $user.DisplayName, ResizeMethod='ZoomAndCrop' }")
    			#end
    		#end
    	</div>
    
    	<div class="hierarchy">
    
    		<div class="current-hierarchy">
    
    	#if ($isInEditMode && $core_v2_configuration.EnableDisplayNames)
    				<form><fieldset class="field-list hierarchy-component">
    			 <ul class="field-list">
    				<li class="field-item setting-name">
    					<label class="field-item-name hidden" for="$core_v2_widget.UniqueId('displayname')">${core_v2_language.GetResource("DisplayName")}</label>
    					<span class="field-item-input"><input type="text" size="30" maxlength="255" id="$core_v2_widget.UniqueId('displayname')" value="${user.DisplayName}" /></span>
    				</li>
    			</ul>
    		</fieldset></form>
    
    		#registerEndOfPageHtml()
    			<script type="text/javascript">
    			//<!--31154f2f1a944c64b0e644f1022f506c-cdata-start-->
    			jQuery(function() {
    				var originalValue = jQuery.telligent.evolution.html.decode('$core_v2_encoding.JavascriptEncode($user.DisplayName)');
    				var displayName = jQuery('#$core_v2_widget.UniqueId('displayname')');
    
    				var save = function(success, failure)
    				{
    					var currentValue = displayName.val();
    					if (currentValue != originalValue) {
    						jQuery.telligent.evolution.put({
    							url: jQuery.telligent.evolution.site.getBaseUrl() + 'api.ashx/v2/users/{UserId}.json?IncludeFields=Id',
    							data: {
    								UserId: $user.Id,
    								DisplayName: currentValue,
    								EnableDisplayName: true
    							},
    							success: function(response) {
    								originalValue = currentValue;
    								success();
    							},
    							error: function(xhr, desc, ex) { jQuery.telligent.evolution.notifications.show(desc,{type:'error'}); failure(); }
    						});
    					} else {
    						success();
    					}
    				};
    
    				$core_v2_editableGroup.GetRegistrationScript('User', 'save')
    			});
    			//<!--31154f2f1a944c64b0e644f1022f506c-cdata-end-->
    			</script>
    		#end
    	#else
    		<h1 class="name hierarchy-component">
    			#if($user.Url)
    				<a href="$core_v2_encoding.HtmlAttributeEncode($user.Url)" class="internal-link view-user-profile" data-userhover="ignore">$user.DisplayName</a>
    			#else
    				$user.DisplayName
    			#end
    		</h1>
    	#end
    
    	#set ($navigationItems = $core_v2_customNavigation.Deserialize($core_v2_widget.GetCustomValue('navigation', ''), "%{UserId = $user.Id}"))
    	#if (!$isHome)
    		#foreach($navigationItem in $navigationItems)
    			#if ($navigationItem.IsSelected)
    						<span class="description hierarchy-component">
    					<a href="$core_v2_encoding.HtmlAttributeEncode($navigationItem.Url)">$!navigationItem.Label</a>
    				</span>
    			#end
    		#end
    	#end
    
    	## Navigation List
    
    	#foreach($navigationItem in $navigationItems)
    	#beforeall
    		<div #if ($core_v2_user.IsRegistered($core_v2_user.Accessing.Id)) $core_v2_tourTip.Render($core_v2_language.GetResource('TourTipApps'), "%{ CssClass = 'navigation-list applications' }") #else class="navigation-list applications" #end >
    					<div class="ui-links" id="$core_v2_encoding.HtmlAttributeEncode($applicationNavigationId)" data-minlinks="0" #if ($isHome) data-maxlinks="50" data-direction="horizontal" #else data-maxlinks="0" data-direction="vertical" #end>
    				<ul>
    	#each
    					<li class="navigation-list-application #if($navigationItem.IsSelected) selected#end">
    						<a href="$core_v2_encoding.HtmlAttributeEncode($navigationItem.Url)" class="$!app.CssClass #if($navigationItem.IsSelected) selected#end">$!navigationItem.Label</a>
    					</li>
    	#afterall
    					<li class="navigation-list-item">
    						<a href="#" class="more" data-more>$core_v2_language.GetResource('more')</a>
    					</li>
    					<li class="navigation-list-item">
    						<a href="#" data-cancel>$core_v2_language.GetResource('cancel')</a>
    					</li>
    				</ul>
    			</div>
    		</div>
    	#nodata
    		<div class="navigation-list applications">
    			<div class="ui-links" data-minlinks="0" data-maxlinks="50" data-direction="horizontal">
    						<ul id="$core_v2_encoding.HtmlAttributeEncode($applicationNavigationId)">
    				</ul>
    			</div>
    		</div>
    	#end
    
    		</div>
    	</div>
    
    	## Action Links
    
    	#set($links = $core_v2_user.ListActionLinks($user.Id))
    	#foreach($link in $links)
    	#beforeall
    		<div class="navigation-list new">
    			<div class="ui-links" data-maxlinks="0">
    				<ul class="navigation-list">
    	#each
    				   <li class="navigation-list-item">
    						$!link.Html
    					</li>
    	#afterall
    					<li class="navigation-list-tem">
    						<a href="#" class="more" data-more>$core_v2_language.GetResource('user_action')</a>
    					</li>
    					<li class="navigation-list-tem">
    						<a href="#" data-cancel>$core_v2_language.GetResource('cancel')</a>
    					</li>
    				</ul>
    			</div>
    		</div>
    	#end
    
    </div>
    
    #registerEndOfPageHtml()
    	<script>
    	jQuery(function(j){
    		var isHome = #if ($isHome) true #else false #end;
    		var applications = j('#${applicationNavigationId}');
    		function expand(links) {
    			links.uilinks('reconfigure', { maxLinks: 100 });
    		}
    		function collapse(links) {
    			links.uilinks('reconfigure', { maxLinks: 0 });
    		}
    		j.telligent.evolution.messaging.subscribe('theme.social.scrolled', function(){
    			collapse(applications);
    		});
    		j.telligent.evolution.messaging.subscribe('theme.social.unscrolled', function(){
    			if(isHome) {
    				expand(applications);
    			} else {
    				collapse(applications);
    			}
    		});
    	});
    	</script>
    #end
    			]]></contentScript>
    		<headerScript language="Velocity"><![CDATA[
    $core_v2_widget.ApplyTokens($core_v2_widget.GetStringValue('fragmentHeader', '${resource:Core_UserBanner_Name}'))
    			]]></headerScript>
    		<configuration><![CDATA[<propertyGroup id="options" labelResourceName="Options">
    	<property id="fragmentHeader" labelResourceName="CF_Title" defaultValue="${resource:Core_UserBanner_Name}" dataType="String" template="core_v2_tokenizedString" />
    	<property id="navigation" labelResourceName="Navigation_Options" descriptionResourceName="Navigation_Options_Description" dataType="Custom" template="core_v2_userCustomNavigation" navigationType="user" scope="site" maxDepth="1" />
    </propertyGroup>
    <propertyGroup id="design" labelResourceName="design">
    	<property id="coverPhotoLayout" labelResourceName="coverPhotoLayout" descriptionResourceName="coverPhotoLayoutDesc" defaultValue="cover" dataType="String" scope="site" renderValueLabelAsHtml="true" showHtmlWhenSelected="true" labelWidth="520">
    		<propertyValue value="dynamic" labelResourceName="coverPhotoLayoutDynamic" propertiesToShow="coverPhotoLayoutDynamicDefinedWidth,coverPhotoLayoutDynamicDefinedHeight" propertiesToHide="coverPhotoFixedHeightHome,coverPhotoFixedHeightOther,coverPhotoBackgroundPaletteId" />
    		<propertyValue value="cover" labelResourceName="coverPhotoLayoutCover" propertiesToShow="coverPhotoFixedHeightHome,coverPhotoFixedHeightOther" propertiesToHide="coverPhotoLayoutDynamicDefinedWidth,coverPhotoLayoutDynamicDefinedHeight,coverPhotoBackgroundPaletteId" />
    		<propertyValue value="contain" labelResourceName="coverPhotoLayoutContain" propertiesToShow="coverPhotoFixedHeightHome,coverPhotoFixedHeightOther,coverPhotoBackgroundPaletteId" propertiesToHide="coverPhotoLayoutDynamicDefinedWidth,coverPhotoLayoutDynamicDefinedHeight" />
    	</property>
    	<property id="coverPhotoFixedHeightHome" labelResourceName="coverPhotoFixedHeightHome" descriptionResourceName="coverPhotoFixedHeightHomeDesc" defaultValue="176" dataType="Int" scope="site" />
    	<property id="coverPhotoFixedHeightOther" labelResourceName="coverPhotoFixedHeightOther" descriptionResourceName="coverPhotoFixedHeightOtherDesc" defaultValue="88" dataType="Int" scope="site" />
    	<property id="coverPhotoLayoutDynamicDefinedWidth" labelResourceName="coverPhotoLayoutDynamicDefinedWidth" descriptionResourceName="coverPhotoLayoutDynamicDefinedWidthDesc" defaultValue="1500" dataType="Int" scope="site" />
    	<property id="coverPhotoLayoutDynamicDefinedHeight" labelResourceName="coverPhotoLayoutDynamicDefinedHeight" descriptionResourceName="coverPhotoLayoutDynamicDefinedHeightDesc" defaultValue="375" dataType="Int" scope="site" />
    	<property id="coverPhotoAlignment" labelResourceName="coverPhotoAlignment" descriptionResourceName="coverPhotoAlignmentDesc" defaultValue="center center" dataType="String" scope="site">
    		<propertyValue value="left top" labelResourceName="lefttop" />
    		<propertyValue value="center top" labelResourceName="centertop" />
    		<propertyValue value="right top" labelResourceName="righttop" />
    		<propertyValue value="left center" labelResourceName="leftcenter" />
    		<propertyValue value="center center" labelResourceName="centercenter" />
    		<propertyValue value="right center" labelResourceName="rightcenter" />
    		<propertyValue value="left bottom" labelResourceName="leftbottom" />
    		<propertyValue value="center bottom" labelResourceName="centerbottom" />
    		<propertyValue value="right bottom" labelResourceName="rightbottom" />
    	</property>
    	<property id="coverPhotoBackgroundPaletteId" labelResourceName="coverPhotoBackgroundPalette" descriptionResourceName="coverPhotoBackgroundPaletteDesc" dataType="String" template="themepalette" paletteTypeId="contextBanner" scope="site" />
    	<property id="shadowCoverPhoto" labelResourceName="shadowCoverPhoto" descriptionResourceName="shadowCoverPhoto_desc" defaultValue="True" dataType="Bool" scope="site" />
    </propertyGroup>]]></configuration>
    		<languageResources><![CDATA[<language key="en-us">
      <resource name="cancel">Cancel</resource>
      <resource name="centerbottom">Bottom, Center</resource>
      <resource name="centercenter">Center, Center</resource>
      <resource name="centertop">Top, Center</resource>
      <resource name="CF_Title">Widget Title</resource>
      <resource name="Core_UserBanner_Description">Displays a banner of common user information and links.</resource>
      <resource name="Core_UserBanner_Name">User - Banner</resource>
      <resource name="coverPhotoAlignment">Cover Photo Alignment</resource>
      <resource name="coverPhotoAlignmentDesc">When the cover photo exceeds its boundaries, it can be aligned.</resource>
      <resource name="coverPhotoBackgroundPalette">Background</resource>
      <resource name="coverPhotoBackgroundPaletteDesc">When using fixed banner height with the entire photo visible, this color will be used to fill any area not covered by the photo.</resource>
      <resource name="coverPhotoFixedHeightHome">Banner height on user profile home page</resource>
      <resource name="coverPhotoFixedHeightHomeDesc">The user banner will be fixed to this height in pixels on its user profile home page.</resource>
      <resource name="coverPhotoFixedHeightOther">Banner height on other user profile pages</resource>
      <resource name="coverPhotoFixedHeightOtherDesc">The user banner will be fixed to this height in pixels on all other user profile pages.</resource>
      <resource name="coverPhotoLayout">Cover Photo Layout</resource>
      <resource name="coverPhotoLayoutContain">&lt;span class="cover-layout contain"&gt;&lt;strong&gt;Fixed&lt;/strong&gt; banner height with entire photo &lt;strong&gt;scaled&lt;/strong&gt; to be visible within the banner space&lt;/span&gt;</resource>
      <resource name="coverPhotoLayoutCover">&lt;span class="cover-layout cover"&gt;&lt;strong&gt;Fixed&lt;/strong&gt; banner height with photo &lt;strong&gt;scaled and cropped&lt;/strong&gt; to fill the available banner space&lt;/span&gt;</resource>
      <resource name="coverPhotoLayoutDesc">Select the way in which the cover photo and banner are positioned.</resource>
      <resource name="coverPhotoLayoutDynamic">&lt;span class="cover-layout dynamic"&gt;&lt;strong&gt;Dynamic&lt;/strong&gt; banner height proportional to the browser width to show a consistent photo at all sizes&lt;/span&gt;</resource>
      <resource name="coverPhotoLayoutDynamicDefinedHeight">Dynamic banner crop height</resource>
      <resource name="coverPhotoLayoutDynamicDefinedHeightDesc">The height, in pixels, to which the cover photo will be resized and cropped. The entire cropped photo will be visible at all browser sizes.</resource>
      <resource name="coverPhotoLayoutDynamicDefinedWidth">Dynamic banner crop width</resource>
      <resource name="coverPhotoLayoutDynamicDefinedWidthDesc">The width, in pixels, to which the cover photo will be resized and cropped. The entire cropped photo will be visible at all browser sizes.</resource>
      <resource name="CoverUploadProgress">Uploading ({0}%)...</resource>
      <resource name="design">Design</resource>
      <resource name="dimensionsTip">Your photo will be resized to {width}x{height}.</resource>
      <resource name="DisplayName">Your displayed name</resource>
      <resource name="EditProfile_Change">Change</resource>
      <resource name="EditProfile_ChangeAvatar">Change Avatar</resource>
      <resource name="leftbottom">Bottom, Left</resource>
      <resource name="leftcenter">Center, Left</resource>
      <resource name="lefttop">Top, Left</resource>
      <resource name="more">More</resource>
      <resource name="Navigation_Options">Navigation Items</resource>
      <resource name="Navigation_Options_Description">Add, edit, delete, and reorder navigation items for users.</resource>
      <resource name="Options">Options</resource>
      <resource name="RemoveConfirm">Are you sure you want to remove your photo?</resource>
      <resource name="RemoveCover">Remove</resource>
      <resource name="rightbottom">Bottom, Right</resource>
      <resource name="rightcenter">Center, Right</resource>
      <resource name="righttop">Top, Right</resource>
      <resource name="SetCover">Set Cover Photo</resource>
      <resource name="shadowCoverPhoto">Shadow Cover Photo</resource>
      <resource name="shadowCoverPhoto_desc">When selected, the cover photo is shadowed to increase legibility of text on a light photo.</resource>
      <resource name="TourTipApps">View related people, content and groups</resource>
      <resource name="user_action">Connect</resource>
    </language>]]></languageResources>
    		<additionalCssScript language="Velocity"><![CDATA[
    	#if ($core_v2_user.Current.CoverPhotoUrl && $core_v2_user.Current.CoverPhotoUrl.Length > 0)
    		with-cover-photo
    	#end
    	]]></additionalCssScript>
    		<requiredContext>
    			<context id="0233cbb383784e11a1e5e541f3b0a795" />
    		</requiredContext>
    		<files>
    			<file name="avatar.vm">77u/JGNvcmVfdjJfcGFnZS5TZXRDb250ZW50VHlwZSgnYXBwbGljYXRpb24vanNvbicpDQojc2V0ICgkdXNlcklkID0gJGNvcmVfdjJfdXRpbGl0eS5QYXJzZUludCgkY29yZV92Ml9wYWdlLkdldFF1ZXJ5U3RyaW5nVmFsdWUoJ3dfdXNlcklkJykpKQ0KI3NldCAoJHVzZXIgPSAkY29yZV92Ml91c2VyLkdldCgiJXtJZD0kdXNlcklkfSIpKQ0KI3NldCAoJGF2YXRhclVybCA9IGZhbHNlKQ0KI3NldCAoJGF2YXRhclVybCA9ICR1c2VyLkF2YXRhclVybCkNCiNpZiAoJGF2YXRhclVybCkNCgl7ImF2YXRhciI6IiRjb3JlX3YyX2VuY29kaW5nLkphdmFzY3JpcHRFbmNvZGUoJGNvcmVfdjJfdWkuR2V0UmVzaXplZEltYWdlSHRtbCgkdXNlci5BdmF0YXJVcmwsIDY4LCA2OCwgIiV7IGFsdCA9ICR1c2VyLkRpc3BsYXlOYW1lLCBSZXNpemVNZXRob2Q9J1pvb21BbmRDcm9wJyB9IikpIn0NCiNlbHNlDQoJJGNvcmVfdjJfcGFnZS5TZW5kSnNvbkVycm9yKCJUaGUgdXNlcidzIGF2YXRhciBjb3VudCBub3QgYmUgcmV0cmlldmVkLiIpDQojZW5kDQoNCg==</file>
    			<file name="getResizedCoverPhotoUrl.vm">JGNvcmVfdjJfcGFnZS5TZXRDb250ZW50VHlwZSgnYXBwbGljYXRpb24vanNvbicpDQojc2V0KCRpbWFnZVVybCA9IGZhbHNlKQ0KI3NldCgkaW1hZ2VVcmwgPSAkY29yZV92Ml9wYWdlLkdldFF1ZXJ5U3RyaW5nVmFsdWUoJ3dfdXJsJykpDQojaWYoJGltYWdlVXJsKQ0KCXsidXJsIjoiJGNvcmVfdjJfZW5jb2RpbmcuSmF2YXNjcmlwdEVuY29kZSgkY29yZV92Ml91aS5HZXRSZXNpemVkSW1hZ2VVcmwoJGltYWdlVXJsLCAxMDAwLCAyNTAsICIleyBSZXNpemVNZXRob2Q9J1pvb21BbmRDcm9wJyB9IikpIn0NCiNlbHNlDQoJeyJ1cmwiOiAiIn0NCiNlbmQNCg==</file>
    			<file name="style.less">LmNvbnRlbnQtZnJhZ21lbnQudXNlci1iYW5uZXIgew0KCS5jb3Zlci1waG90by1saW5rcyB7DQoJCXBvc2l0aW9uOiBhYnNvbHV0ZTsNCgkJdG9wOiAxMHB4Ow0KCQlyaWdodDogMDsNCgkJZGlzcGxheTogZmxleDsNCgkJYSB7DQoJCQltYXJnaW4tbGVmdDogMTBweCAqIDI7DQoJCQljb2xvcjogLWV2by10aGVtZWNvbmZpZy1jb2xvcignZm9yZWdyb3VuZENvbG9yJywgIzExMTcxQSk7DQoJCQlmb250LXNpemU6IC1ldm8tdGhlbWVjb25maWctdW5pdCgnYmFzZUZvbnRTaXplVmFsdWUnLCAxNHB4KSAqIC45Ow0KCQkJJjpob3ZlciB7DQoJCQkJY29sb3I6IC1ldm8tdGhlbWVjb25maWctY29sb3IoJ2xpbmtGb250Q29sb3InLCAjMjE5NkYzKTsNCgkJCX0NCgkJCSYudXBsb2FkIHsNCgkJCQkmOmJlZm9yZSB7DQoJCQkJCXRvcDogMHB4Ow0KCQkJCQltYXJnaW4tcmlnaHQ6IDVweDsNCgkJCQl9DQoJCQl9DQoJCX0NCgl9DQoJZmllbGRzZXQgLmZpZWxkLWxpc3QgLmZpZWxkLWl0ZW0gew0KCQltYXJnaW46IDA7DQoJCXBhZGRpbmc6IDA7DQoJCS5maWVsZC1pdGVtLWlucHV0IHsNCgkJCW1hcmdpbjogMDsNCgkJfQ0KCQlpbnB1dCB7DQoJCQlmb250LXNpemU6IC1ldm8tdGhlbWVjb25maWctdW5pdCgnYmFzZUZvbnRTaXplVmFsdWUnLCAxNHB4KSAqIDEuMTsNCgkJCXBhZGRpbmc6IDRweCA2cHggNHB4IDZweDsNCgkJCXdpZHRoOiA0MCU7DQoJCX0NCgl9DQoJQHVzZXItY292ZXItcGhvdG8tZm9yZWdyb3VuZDogI2ZmZjsNCglAdXNlci1jb3Zlci1waG90by1iYWNrZ3JvdW5kOiAtZXZvLXRoZW1lY29uZmlnLWNvbG9yKCdmb3JlZ3JvdW5kQ29sb3InLCAjMTExNzFBKTsNCgkmLndpdGgtY292ZXItcGhvdG8gew0KCQkvKiBoaWVyYXJjaHkgY29tcG9uZW50cyAqLw0KCQkuYmFubmVyLmNvbnRleHQgPiAuaGllcmFyY2h5ID4gLmN1cnJlbnQtaGllcmFyY2h5ID4gLmhpZXJhcmNoeS1jb21wb25lbnQsDQoJCS5iYW5uZXIuY29udGV4dCA+IC5oaWVyYXJjaHkgPiAuY3VycmVudC1oaWVyYXJjaHkgPiAuaGllcmFyY2h5LWNvbXBvbmVudCBhLA0KCQkuYmFubmVyLmNvbnRleHQgPiAuaGllcmFyY2h5ID4gLmN1cnJlbnQtaGllcmFyY2h5ID4gLmhpZXJhcmNoeS1jb21wb25lbnQ6YmVmb3JlLA0KCQkuYmFubmVyLmNvbnRleHQgPiAuaGllcmFyY2h5ID4gLmN1cnJlbnQtaGllcmFyY2h5ID4gLmhpZXJhcmNoeS1jb21wb25lbnQgYTpob3ZlciB7DQoJCQljb2xvcjogQHVzZXItY292ZXItcGhvdG8tZm9yZWdyb3VuZDsNCgkJfQ0KDQoJCS8qIGFwcGxpY2F0aW9ucyAqLw0KCQkuYmFubmVyLmNvbnRleHQgPiAuaGllcmFyY2h5ID4gLmN1cnJlbnQtaGllcmFyY2h5ID4gLmFwcGxpY2F0aW9ucyB1bCBhLA0KCQkuYmFubmVyLmNvbnRleHQgPiAuaGllcmFyY2h5ID4gLmN1cnJlbnQtaGllcmFyY2h5ID4gLmFwcGxpY2F0aW9ucyB1bCBhOmhvdmVyLA0KCQkuYmFubmVyLmNvbnRleHQ6bm90KC5ob21lKSA+IC5oaWVyYXJjaHkgPiAuY3VycmVudC1oaWVyYXJjaHkgPiAuYXBwbGljYXRpb25zIHVsIGEubW9yZSwNCgkJLmJhbm5lci5jb250ZXh0Om5vdCguaG9tZSkgPiAuaGllcmFyY2h5ID4gLmN1cnJlbnQtaGllcmFyY2h5ID4gLmFwcGxpY2F0aW9ucyB1bCBhLm1vcmU6YmVmb3JlLA0KCQkuYmFubmVyLmNvbnRleHQuaG9tZSA+IC5oaWVyYXJjaHkgPiAuY3VycmVudC1oaWVyYXJjaHkgPiAuYXBwbGljYXRpb25zIHVsIGEubW9yZTpiZWZvcmUsDQoJCS5zY3JvbGxlZCAuYmFubmVyLmNvbnRleHQgLmhpZXJhcmNoeSAuY3VycmVudC1oaWVyYXJjaHkgPiAuYXBwbGljYXRpb25zIHVsIGEubW9yZSwNCgkJLnNjcm9sbGVkIC5iYW5uZXIuY29udGV4dCAuaGllcmFyY2h5IC5jdXJyZW50LWhpZXJhcmNoeSA+IC5hcHBsaWNhdGlvbnMgdWwgYS5tb3JlOmJlZm9yZSB7DQoJCQlib3JkZXItY29sb3I6IEB1c2VyLWNvdmVyLXBob3RvLWZvcmVncm91bmQ7DQoJCQljb2xvcjogQHVzZXItY292ZXItcGhvdG8tZm9yZWdyb3VuZDsNCgkJfQ0KCQkuYmFubmVyLmNvbnRleHQuaG9tZSA+IC5oaWVyYXJjaHkgPiAuY3VycmVudC1oaWVyYXJjaHkgPiAuYXBwbGljYXRpb25zIHVsIGEubGlua3MtZXhwYW5kZWQsDQoJCS5iYW5uZXIuY29udGV4dC5ob21lID4gLmhpZXJhcmNoeSA+IC5jdXJyZW50LWhpZXJhcmNoeSA+IC5hcHBsaWNhdGlvbnMgdWwgYS5saW5rcy1leHBhbmRlZDpiZWZvcmUsDQoJCS5iYW5uZXIuY29udGV4dC5ob21lID4gLmhpZXJhcmNoeSA+IC5jdXJyZW50LWhpZXJhcmNoeSA+IC5hcHBsaWNhdGlvbnMgdWwgYS5tb3JlLmxpbmtzLWV4cGFuZGVkOmJlZm9yZSwNCgkJLnNjcm9sbGVkIC5iYW5uZXIuY29udGV4dCAuaGllcmFyY2h5IC5jdXJyZW50LWhpZXJhcmNoeSA+IC5hcHBsaWNhdGlvbnMgdWwgYS5tb3JlLmxpbmtzLWV4cGFuZGVkLA0KCQkuc2Nyb2xsZWQgLmJhbm5lci5jb250ZXh0IC5oaWVyYXJjaHkgLmN1cnJlbnQtaGllcmFyY2h5ID4gLmFwcGxpY2F0aW9ucyB1bCBhLm1vcmUubGlua3MtZXhwYW5kZWQ6YmVmb3JlLA0KCQkuYmFubmVyLmNvbnRleHQ6bm90KC5ob21lKSA+IC5oaWVyYXJjaHkgPiAuY3VycmVudC1oaWVyYXJjaHkgPiAuYXBwbGljYXRpb25zIHVsIGEubW9yZS5saW5rcy1leHBhbmRlZCwNCgkJLmJhbm5lci5jb250ZXh0Om5vdCguaG9tZSkgPiAuaGllcmFyY2h5ID4gLmN1cnJlbnQtaGllcmFyY2h5ID4gLmFwcGxpY2F0aW9ucyB1bCBhLm1vcmUubGlua3MtZXhwYW5kZWQ6YmVmb3JlIHsNCgkJCWJhY2tncm91bmQtY29sb3I6IEB1c2VyLWNvdmVyLXBob3RvLWZvcmVncm91bmQ7DQoJCQljb2xvcjogQHVzZXItY292ZXItcGhvdG8tYmFja2dyb3VuZDsNCgkJCWJvcmRlci1jb2xvcjogQHVzZXItY292ZXItcGhvdG8tZm9yZWdyb3VuZDsNCgkJfQ0KDQoJCS8qIG5ldyAqLw0KCQkuYmFubmVyLmNvbnRleHQgPiAubmV3IHVsIGEsDQoJCS5iYW5uZXIuY29udGV4dCAubmF2aWdhdGlvbi1saXN0Lm5ldyB1bCBhLmxpbmtzLWV4cGFuZGVkLA0KCQkuYmFubmVyLmNvbnRleHQgLm5hdmlnYXRpb24tbGlzdC5uZXcgdWwgYS5saW5rcy1leHBhbmRlZDpob3ZlciwNCgkJLmJhbm5lci5jb250ZXh0IC5uYXZpZ2F0aW9uLWxpc3QubmV3IHVsIGEubGlua3MtZXhwYW5kZWQ6YWN0aXZlLA0KCQkuYmFubmVyLmNvbnRleHQgLm5hdmlnYXRpb24tbGlzdC5uZXcgdWwgYTpob3ZlciB7DQoJCQliYWNrZ3JvdW5kLWNvbG9yOiBAdXNlci1jb3Zlci1waG90by1mb3JlZ3JvdW5kOw0KCQkJY29sb3I6IEB1c2VyLWNvdmVyLXBob3RvLWJhY2tncm91bmQ7DQoJCQl0ZXh0LXNoYWRvdzogbm9uZTsNCgkJfQ0KCQkuc2luZ2xlLWNvbHVtbiAuYmFubmVyLmNvbnRleHQgPiAubmV3IGEsDQoJCS5zaW5nbGUtY29sdW1uIC5iYW5uZXIuY29udGV4dDpub3QoLmhvbWUpID4gLm5ldyBhLA0KCQkuc2luZ2xlLWNvbHVtbiAuYmFubmVyLmNvbnRleHQuaG9tZSA+IC5uZXcgYSB7DQoJCQljb2xvcjogQHVzZXItY292ZXItcGhvdG8tZm9yZWdyb3VuZDsNCgkJCWJvcmRlci1jb2xvcjogQHVzZXItY292ZXItcGhvdG8tZm9yZWdyb3VuZDsNCgkJfQ0KDQoJCXRleHQtc2hhZG93OiAwcHggMHB4IDVweCByZ2JhKDAsMCwwLC43KTsNCgkJYSB7DQoJCQl0ZXh0LXNoYWRvdzogMHB4IDBweCA1cHggcmdiYSgwLDAsMCwuNyk7DQoJCQkmLmxpbmtzLWV4cGFuZGVkIHsNCgkJCQl0ZXh0LXNoYWRvdzogbm9uZTsNCgkJCX0NCgkJfQ0KDQoJCS5hdmF0YXIgaW1nIHsNCgkJCWJvcmRlcjogMnB4IHNvbGlkIC1ldm8tdGhlbWVjb25maWctY29sb3IoJ2JhY2tncm91bmRDb2xvcicsICNmZmZmZmYpOw0KCQl9DQoJCS5jb3Zlci1waG90by1saW5rcyB7DQoJCQlhIHsNCgkJCQljb2xvcjogQHVzZXItY292ZXItcGhvdG8tZm9yZWdyb3VuZDsNCgkJCQkmOmhvdmVyIHsNCgkJCQkJY29sb3I6IEB1c2VyLWNvdmVyLXBob3RvLWZvcmVncm91bmQ7DQoJCQkJfQ0KCQkJfQ0KCQl9DQoNCgkJLmNvdmVyLXBob3RvIHsNCgkJCSY6OmFmdGVyIHsNCgkJCQljb250ZW50OiIgIjsNCgkJCQlwb3NpdGlvbjogYWJzb2x1dGU7DQoJCQkJdG9wOiAwOw0KCQkJCWxlZnQ6IDA7DQoJCQkJYm90dG9tOiAwOw0KCQkJCXJpZ2h0OiAwOw0KCQkJCW9wYWNpdHk6IDE7DQoJCQkJdHJhbnNpdGlvbjogLjFzOw0KCQkJfQ0KCQl9DQoJfQ0KfQ0KDQouc2Nyb2xsZWQgLmNvbnRlbnQtZnJhZ21lbnQudXNlci1iYW5uZXIgew0KCWZpZWxkc2V0IC5maWVsZC1saXN0IC5maWVsZC1pdGVtIGlucHV0IHsNCgkJcGFkZGluZzogMnB4Ow0KCX0NCgkuY292ZXItcGhvdG8gew0KCQkmOjphZnRlciB7DQoJCQlvcGFjaXR5OiAuNTsNCgkJfQ0KCX0NCn0NCg==</file>
    			<file name="style.vm">I3NldCAoJGNvdmVyUGhvdG9BbGlnbm1lbnQgPSAkY29yZV92Ml93aWRnZXQuR2V0U3RyaW5nVmFsdWUoJ2NvdmVyUGhvdG9BbGlnbm1lbnQnLCAnY2VudGVyIGNlbnRlcicpKQ0KI3NldCAoJGNvdmVyUGhvdG9MYXlvdXQgPSAkY29yZV92Ml93aWRnZXQuR2V0U3RyaW5nVmFsdWUoJ2NvdmVyUGhvdG9MYXlvdXQnLCAnY292ZXInKSkNCg0KIyMgRGVmYXVsdHMNCiNzZXQgKCRiYWNrZ3JvdW5kID0gZmFsc2UpDQojc2V0ICgkYmFja2dyb3VuZENvbG9yID0gJyNmZmZmZmYnKQ0KI3NldCAoJGZvcmVncm91bmRDb2xvciA9ICcjMjYzMjM4JykNCiNzZXQgKCRzaGFkb3cgPSAgJGNvcmVfdjJfd2lkZ2V0LkdldEJvb2xWYWx1ZSgnc2hhZG93Q292ZXJQaG90bycsIGZhbHNlKSkNCg0KI3NldCAoJGhhc0NvdmVyUGhvdG8gPSBmYWxzZSkNCiNzZXQgKCRjb3ZlclBob3RvVXJsID0gJHVzZXIuQ292ZXJQaG90b1VybCkNCiNpZiAoJGNvdmVyUGhvdG9VcmwgJiYgJGNvdmVyUGhvdG9VcmwuTGVuZ3RoID4gMCkNCgkjc2V0ICgkaGFzQ292ZXJQaG90byA9IHRydWUpDQojZW5kDQoNCiMjIEJhY2tncm91bmQgY29sb3IgdXNlZCBmb3IgcGhvdG9zIGluIG1vZGVzIHdoZXJlIGJhY2tncm91bmQgd291bGQgc3RpbGwgc2hvdyB0aHJvdWdoDQojaWYgKCRjb3ZlclBob3RvTGF5b3V0ID09ICdjb250YWluJykNCgkjc2V0ICgkcGFsZXR0ZUlkID0gJGNvcmVfdjJfd2lkZ2V0LkdldEN1c3RvbVZhbHVlKCdjb3ZlclBob3RvQmFja2dyb3VuZFBhbGV0dGVJZCcsICcnKSkNCg0KCSNzZXQgKCRiYWNrZ3JvdW5kQ29sb3IgPSAkY29yZV92Ml90aGVtZS5HZXRQYWxldHRlQ29sb3JWYWx1ZSgnY29udGV4dEJhbm5lcicsICRwYWxldHRlSWQsICdiYWNrZ3JvdW5kLWNvbG9yJywgJyMyMTk2RjMnLCAxMCkpDQoJI3NldCAoJGJhY2tncm91bmRDb2xvclRvID0gJGNvcmVfdjJfdGhlbWUuR2V0UGFsZXR0ZUNvbG9yVmFsdWUoJ2NvbnRleHRCYW5uZXInLCAkcGFsZXR0ZUlkLCAnYmFja2dyb3VuZC1jb2xvci10bycsICcnLCAxMCkpDQoJI3NldCAoJGZvcmVncm91bmRDb2xvciA9ICRjb3JlX3YyX3RoZW1lLkdldFBhbGV0dGVDb2xvclZhbHVlKCdjb250ZXh0QmFubmVyJywgJHBhbGV0dGVJZCwgJ2ZvcmVncm91bmQtY29sb3InLCAnI2ZmZmZmZicsIDEwKSkNCg0KCSNpZiAoJGJhY2tncm91bmRDb2xvclRvICYmICRiYWNrZ3JvdW5kQ29sb3JUby5sZW5ndGggPiAwKQ0KCQkjc2V0ICgkYmFja2dyb3VuZCA9ICJsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICR7YmFja2dyb3VuZENvbG9yfSwgJHtiYWNrZ3JvdW5kQ29sb3JUb30pIikNCgkjZWxzZQ0KCQkjc2V0ICgkYmFja2dyb3VuZCA9ICRiYWNrZ3JvdW5kQ29sb3IpDQoJI2VuZA0KI2VuZA0KDQojIyBQaG90byBkZWZhdWx0cw0KI3NldCAoJGRlZmluZWREeW5hbWljSGVpZ2h0ID0gZmFsc2UpDQojc2V0ICgkY292ZXJQaG90b1dpZHRoID0gMTUwMCkNCiNzZXQgKCRjb3ZlclBob3RvSGVpZ2h0ID0gMCkNCg0KIyMgRml4ZWQgSGVpZ2h0cw0KI3NldCAoJGNvdmVyUGhvdG9GaXhlZEhlaWdodEhvbWUgPSBmYWxzZSkNCiNzZXQgKCRjb3ZlclBob3RvRml4ZWRIZWlnaHRPdGhlciA9IGZhbHNlKQ0KI2lmICgkY292ZXJQaG90b0xheW91dCA9PSAnY292ZXInIHx8ICRjb3ZlclBob3RvTGF5b3V0ID09ICdjb250YWluJykNCgkjc2V0ICgkY292ZXJQaG90b0ZpeGVkSGVpZ2h0SG9tZSA9ICRjb3JlX3YyX3dpZGdldC5HZXRJbnRWYWx1ZSgnY292ZXJQaG90b0ZpeGVkSGVpZ2h0SG9tZScsIDE3NikpDQoJI3NldCAoJGNvdmVyUGhvdG9GaXhlZEhlaWdodE90aGVyID0gJGNvcmVfdjJfd2lkZ2V0LkdldEludFZhbHVlKCdjb3ZlclBob3RvRml4ZWRIZWlnaHRPdGhlcicsIDg4KSkNCiNlbmQNCg0KI2lmICgkY292ZXJQaG90b0xheW91dCA9PSAnZHluYW1pYycpDQoJIyMgRGVmaW5lZCBEeW5hbWljIERpbWVuc2lvbnMNCgkjc2V0ICgkY292ZXJQaG90b1dpZHRoID0gJGNvcmVfdjJfd2lkZ2V0LkdldERvdWJsZVZhbHVlKCdjb3ZlclBob3RvTGF5b3V0RHluYW1pY0RlZmluZWRXaWR0aCcsIDE1MDApKQ0KCSNzZXQgKCRjb3ZlclBob3RvSGVpZ2h0ID0gJGNvcmVfdjJfd2lkZ2V0LkdldERvdWJsZVZhbHVlKCdjb3ZlclBob3RvTGF5b3V0RHluYW1pY0RlZmluZWRIZWlnaHQnLCAzNzUpKQ0KCSNzZXQgKCRkZWZpbmVkRHluYW1pY0hlaWdodCA9IDEwMCAqICRjb3ZlclBob3RvSGVpZ2h0IC8gJGNvdmVyUGhvdG9XaWR0aCkNCgkjc2V0ICgkZGVmaW5lZER5bmFtaWNIZWlnaHQgPSAkY29yZV92Ml91dGlsaXR5LlJvdW5kKCRkZWZpbmVkRHluYW1pY0hlaWdodCkpDQoJI3NldCAoJGNvdmVyUGhvdG9XaWR0aCA9ICRjb3JlX3YyX3V0aWxpdHkuUm91bmQoJGNvdmVyUGhvdG9XaWR0aCkpDQoJI3NldCAoJGNvdmVyUGhvdG9IZWlnaHQgPSAkY29yZV92Ml91dGlsaXR5LlJvdW5kKCRjb3ZlclBob3RvSGVpZ2h0KSkNCiNlbHNlaWYgKCRjb3ZlclBob3RvTGF5b3V0ID09ICdjb250YWluJykNCgkjc2V0ICgkY292ZXJQaG90b1dpZHRoID0gMCkNCgkjc2V0ICgkY292ZXJQaG90b0hlaWdodCA9ICRjb3ZlclBob3RvRml4ZWRIZWlnaHRIb21lKQ0KI2VuZA0KDQojc2V0ICgkcmVzaXplZENvdmVyUGhvdG9VcmwgPSAkY29yZV92Ml91aS5HZXRSZXNpemVkSW1hZ2VVcmwoJGNvdmVyUGhvdG9VcmwsICRjb3ZlclBob3RvV2lkdGgsICRjb3ZlclBob3RvSGVpZ2h0LCAiJXsgUmVzaXplTWV0aG9kPSdab29tQW5kQ3JvcCcgfSIpKQ0KDQo8c3R5bGU+DQoud2l0aC1jb3Zlci1waG90byAuY292ZXItcGhvdG8sDQouaGVhZGVyLWZyYWdtZW50cyAubGF5b3V0IC5oZWFkZXItdG9wLWNvbnRlbnQgLmxheW91dC1yZWdpb24uY29udGVudCAubGF5b3V0LXJlZ2lvbi1pbm5lciAuY29udGVudC1mcmFnbWVudC5ncm91cC1iYW5uZXIgLmNvdmVyLXBob3RvIHsNCg0KCSNpZiAoJGNvdmVyUGhvdG9MYXlvdXQgPT0gJ2NvbnRhaW4nKQ0KCQliYWNrZ3JvdW5kLXNpemU6IGNvbnRhaW47DQoJI2Vsc2VpZiAoJGNvdmVyUGhvdG9MYXlvdXQgPT0gJ2NvdmVyJyB8fCAkY292ZXJQaG90b0xheW91dCA9PSAnZHluYW1pYycpDQoJCWJhY2tncm91bmQtc2l6ZTogY292ZXI7DQoJI2VuZA0KDQoJI2lmICgkYmFja2dyb3VuZCkNCgkJYmFja2dyb3VuZDogdXJsKCRyZXNpemVkQ292ZXJQaG90b1VybCksICRiYWNrZ3JvdW5kOw0KCSNlbHNlDQoJCWJhY2tncm91bmQtaW1hZ2U6IHVybCgkcmVzaXplZENvdmVyUGhvdG9VcmwpOw0KCSNlbmQNCgliYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0Ow0KCWJhY2tncm91bmQtcG9zaXRpb246ICRjb3ZlclBob3RvQWxpZ25tZW50Ow0KfQ0KI2lmICgkY292ZXJQaG90b0xheW91dCA9PSAnY29udGFpbicpDQoJLnNpbmdsZS1jb2x1bW4gLndpdGgtY292ZXItcGhvdG8gLmNvdmVyLXBob3RvLA0KCS5zaW5nbGUtY29sdW1uIC5oZWFkZXItZnJhZ21lbnRzIC5sYXlvdXQgLmhlYWRlci10b3AtY29udGVudCAubGF5b3V0LXJlZ2lvbi5jb250ZW50IC5sYXlvdXQtcmVnaW9uLWlubmVyIC5jb250ZW50LWZyYWdtZW50Lmdyb3VwLWJhbm5lciAuY292ZXItcGhvdG8gew0KCQliYWNrZ3JvdW5kLXNpemU6IGNvdmVyOw0KCX0NCiNlbmQNCg0KI2lmICgkY292ZXJQaG90b0xheW91dCA9PSAnZHluYW1pYycpDQoJI2lmICgkZGVmaW5lZER5bmFtaWNIZWlnaHQpDQoJCS53aXRoLWNvdmVyLXBob3RvIC5iYW5uZXIuY29udGV4dCwNCgkJLndpdGgtY292ZXItcGhvdG8gLmJhbm5lci5jb250ZXh0LmhvbWUgew0KCQkJaGVpZ2h0OiAke2RlZmluZWREeW5hbWljSGVpZ2h0fXZ3Ow0KCQkJcGFkZGluZy10b3A6IGNhbGMoJHtkZWZpbmVkRHluYW1pY0hlaWdodH12dyAtIDkxcHgpOw0KCQl9DQoJI2VuZA0KCS5zY3JvbGxlZCAud2l0aC1jb3Zlci1waG90byAuYmFubmVyLmNvbnRleHQsDQoJLnNjcm9sbGVkIC53aXRoLWNvdmVyLXBob3RvIC5iYW5uZXIuY29udGV4dC5ob21lIHsNCgkJaGVpZ2h0OiA0NHB4ICFpbXBvcnRhbnQ7DQoJCXBhZGRpbmctdG9wOiAwICFpbXBvcnRhbnQ7DQoJfQ0KI2Vsc2VpZiAoJGNvdmVyUGhvdG9MYXlvdXQgPT0gJ2NvbnRhaW4nIHx8ICRjb3ZlclBob3RvTGF5b3V0ID09ICdjb3ZlcicpDQoJI2lmICgkY292ZXJQaG90b0ZpeGVkSGVpZ2h0SG9tZSkNCgkJLndpdGgtY292ZXItcGhvdG8gLmJhbm5lci5jb250ZXh0LmhvbWUgew0KCQkJbWluLWhlaWdodDogJHtjb3ZlclBob3RvRml4ZWRIZWlnaHRIb21lfXB4Ow0KCQkJcGFkZGluZy10b3A6IGNhbGMoJHtjb3ZlclBob3RvRml4ZWRIZWlnaHRIb21lfXB4IC0gOTFweCk7DQoJCX0NCgkJLnNjcm9sbGVkIC53aXRoLWNvdmVyLXBob3RvIC5iYW5uZXIuY29udGV4dC5ob21lIHsNCgkJCXBhZGRpbmctdG9wOiAwOw0KCQl9DQoJI2VuZA0KCSNpZiAoJGNvdmVyUGhvdG9GaXhlZEhlaWdodE90aGVyKQ0KCQkud2l0aC1jb3Zlci1waG90byAuYmFubmVyLmNvbnRleHQgew0KCQkJbWluLWhlaWdodDogJHtjb3ZlclBob3RvRml4ZWRIZWlnaHRPdGhlcn1weDsNCgkJCXBhZGRpbmctdG9wOiBjYWxjKCR7Y292ZXJQaG90b0ZpeGVkSGVpZ2h0T3RoZXJ9cHggLSA5MXB4KTsNCgkJfQ0KCQkuc2Nyb2xsZWQgLndpdGgtY292ZXItcGhvdG8gLmJhbm5lci5jb250ZXh0IHsNCgkJCW1pbi1oZWlnaHQ6IGluaXRpYWw7DQoJCQlwYWRkaW5nLXRvcDogMDsNCgkJfQ0KCSNlbmQNCiNlbmQNCg0KIyMgd2hlbiBvbmx5IHNoYWRvdywgYWx3YXlzIHNob3dzIHNoYWRvdw0KI2lmICgkc2hhZG93KQ0KCS5jb250ZW50LWZyYWdtZW50LnVzZXItYmFubmVyLndpdGgtY292ZXItcGhvdG8gLmNvdmVyLXBob3RvOjphZnRlciB7DQoJCWNvbnRlbnQ6IiAiOw0KCQlwb3NpdGlvbjogYWJzb2x1dGU7DQoJCXRvcDogMDsNCgkJbGVmdDogMDsNCgkJYm90dG9tOiAwOw0KCQlyaWdodDogMDsNCgkJYmFja2dyb3VuZDogbGluZWFyLWdyYWRpZW50KHRvIGJvdHRvbSwgcmdiYSgwLDAsMCwuMSksIHJnYmEoMCwwLDAsLjYpKTsNCgkJb3BhY2l0eTogMTsNCgkJdHJhbnNpdGlvbjogLjFzOw0KCX0NCiNlbmQNCjwvc3R5bGU+DQoNCg==</file>
    			<file name="ui.js">KGZ1bmN0aW9uKCQpIHsNCg0KCXZhciBVcGxvYWRlciA9IChmdW5jdGlvbigpew0KCQl2YXIgZGVmYXVsdHMgPSB7DQoJCQl1cGxvYWRDb250ZXh0SWQ6ICcnLA0KCQkJdXBsb2FkVXJsOiAnJw0KCQl9Ow0KCQl2YXIgbmFtZVNwYWNlID0gJ191cGxvYWRlcic7DQoNCgkJdmFyIG1lc3NhZ2luZyA9ICQudGVsbGlnZW50LmV2b2x1dGlvbi5tZXNzYWdpbmc7DQoNCgkJZnVuY3Rpb24gaW5pdChjb250ZXh0KSB7DQoJCQlpZihjb250ZXh0LmluaXRlZCkNCgkJCQlyZXR1cm47DQoJCQljb250ZXh0LmluaXRlZCA9IHRydWU7DQoNCgkJCWNvbnRleHQudXBsb2FkQ29udGFpbmVyID0gJCgnPGRpdj48L2Rpdj4nKS5oaWRlKCkuYXBwZW5kVG8oY29udGV4dC5jb250YWluZXIpOw0KCQkJY29udGV4dC51cGxvYWRCdXR0b25TaGltID0gJCgnPHNwYW4+dXBsb2FkPC9zcGFuPicpLmFwcGVuZFRvKGNvbnRleHQudXBsb2FkQ29udGFpbmVyKQ0KCQkJCS5nbG93VXBsb2FkKHsNCgkJCQkJdXBsb2FkVXJsOiBjb250ZXh0LnVwbG9hZFVybA0KCQkJCX0pDQoJCX0NCg0KCQl2YXIgVXBsb2FkZXIgPSBmdW5jdGlvbihvcHRpb25zKXsNCgkJCXZhciBjb250ZXh0ID0gJC5leHRlbmQoew0KCQkJfSwgZGVmYXVsdHMsIG9wdGlvbnMgfHwge30pOw0KDQoJCQlpbml0KGNvbnRleHQpOw0KDQoJCQlyZXR1cm4gew0KCQkJCXVwbG9hZDogZnVuY3Rpb24oKSB7DQoJCQkJCWluaXQoY29udGV4dCk7DQoNCgkJCQkJcmV0dXJuICQuRGVmZXJyZWQoZnVuY3Rpb24oZCl7DQoJCQkJCQljb250ZXh0LnVwbG9hZEJ1dHRvblNoaW0ub2ZmKG5hbWVTcGFjZSkNCgkJCQkJCWNvbnRleHQudXBsb2FkQnV0dG9uU2hpbS5vbignZ2xvd1VwbG9hZEJlZ3VuLicgKyBuYW1lU3BhY2UsIGZ1bmN0aW9uKGUsIGRldGFpbHMpew0KCQkJCQkJCWQubm90aWZ5KHsNCgkJCQkJCQkJY29udGV4dDogY29udGV4dC51cGxvYWRDb250ZXh0SWQsDQoJCQkJCQkJCXBlcmNlbnQ6IDANCgkJCQkJCQl9KTsNCgkJCQkJCX0pOw0KCQkJCQkJY29udGV4dC51cGxvYWRCdXR0b25TaGltLm9uKCdnbG93VXBsb2FkRXJyb3IuJyArIG5hbWVTcGFjZSwgZnVuY3Rpb24oZSl7DQoJCQkJCQkJZC5yZWplY3QoKTsNCgkJCQkJCX0pDQoJCQkJCQljb250ZXh0LnVwbG9hZEJ1dHRvblNoaW0ub24oJ2dsb3dVcGxvYWRGaWxlUHJvZ3Jlc3MuJyArIG5hbWVTcGFjZSwgZnVuY3Rpb24oZSwgZGV0YWlscyl7DQoJCQkJCQkJZC5ub3RpZnkoew0KCQkJCQkJCQluYW1lOiBkZXRhaWxzLm5hbWUsDQoJCQkJCQkJCWNvbnRleHQ6IGNvbnRleHQudXBsb2FkQ29udGV4dElkLA0KCQkJCQkJCQlwZXJjZW50OiBkZXRhaWxzLnBlcmNlbnQNCgkJCQkJCQl9KTsNCgkJCQkJCX0pDQoJCQkJCQljb250ZXh0LnVwbG9hZEJ1dHRvblNoaW0ub24oJ2dsb3dVcGxvYWRDb21wbGV0ZS4nICsgbmFtZVNwYWNlLCBmdW5jdGlvbihlLCBmaWxlKXsNCgkJCQkJCQlkLnJlc29sdmUoew0KCQkJCQkJCQluYW1lOiBmaWxlLm5hbWUsDQoJCQkJCQkJCWNvbnRleHQ6IGNvbnRleHQudXBsb2FkQ29udGV4dElkDQoJCQkJCQkJfSk7DQoJCQkJCQl9KQ0KDQoJCQkJCQljb250ZXh0LnVwbG9hZENvbnRhaW5lci5maW5kKCdpbnB1dFt0eXBlPSJmaWxlIl0nKS5nZXQoMCkuY2xpY2soKTsNCgkJCQkJfSkucHJvbWlzZSgpOw0KCQkJCX0NCgkJCX0NCgkJfTsNCg0KCQlyZXR1cm4gVXBsb2FkZXI7DQoJfSkoKTsNCg0KCWZ1bmN0aW9uIHNldENvdmVyUGhvdG8oY29udGV4dCwgdXJsKSB7DQoJCSQoY29udGV4dC5jb3ZlclBob3RvQ29udGFpbmVyKS5jc3Moew0KCQkJJ2Rpc3BsYXknOiAnYmxvY2snLA0KCQkJJ2JhY2tncm91bmQtaW1hZ2UnOiAndXJsKCcgKyB1cmwgKyAnKScNCgkJfSk7DQoJCSQoY29udGV4dC53cmFwcGVyKS5hZGRDbGFzcygnd2l0aC1jb3Zlci1waG90bycpOw0KCQkkKGNvbnRleHQucmVtb3ZlQ292ZXJQaG90b0xpbmspLnNob3coKTsNCgl9DQoNCglmdW5jdGlvbiByZW1vdmVDb3ZlclBob3RvKGNvbnRleHQpIHsNCgkJJChjb250ZXh0LmNvdmVyUGhvdG9Db250YWluZXIpLmNzcyh7DQoJCQknZGlzcGxheSc6ICdub25lJywNCgkJCSdiYWNrZ3JvdW5kLWltYWdlJzogJ25vbmUnDQoJCX0pOw0KCQkkKGNvbnRleHQud3JhcHBlcikucmVtb3ZlQ2xhc3MoJ3dpdGgtY292ZXItcGhvdG8nKTsNCgkJJChjb250ZXh0LnJlbW92ZUNvdmVyUGhvdG9MaW5rKS5oaWRlKCk7DQoJfQ0KDQoJZnVuY3Rpb24gcmVzaXplKGNvbnRleHQsIGltYWdlVXJsKSB7DQoJCXJldHVybiAkLnRlbGxpZ2VudC5ldm9sdXRpb24uZ2V0KHsNCgkJCXVybDogY29udGV4dC5yZXNpemVkQ292ZXJQaG90b1VybCwNCgkJCWRhdGE6IHsNCgkJCQknd191cmwnOiBpbWFnZVVybA0KCQkJfSwNCgkJfSkudGhlbihmdW5jdGlvbihyKXsNCgkJCXJldHVybiByLnVybDsNCgkJfSk7DQoJfQ0KDQoJZnVuY3Rpb24gdXBsb2FkKGNvbnRleHQsIGNvbnRleHRJZCwgZmlsZU5hbWUpIHsNCgkJcmV0dXJuICQudGVsbGlnZW50LmV2b2x1dGlvbi5wdXQoew0KCQkJdXJsOiAkLnRlbGxpZ2VudC5ldm9sdXRpb24uc2l0ZS5nZXRCYXNlVXJsKCkgKyAnYXBpLmFzaHgvdjIvdXNlcnMve1VzZXJJZH0vY292ZXJwaG90by5qc29uJywNCgkJCWRhdGE6IHsNCgkJCQlVc2VySWQ6IGNvbnRleHQudXNlcklkLA0KCQkJCUZpbGVVcGxvYWRDb250ZXh0OiBjb250ZXh0SWQsDQoJCQkJRmlsZU5hbWU6IGZpbGVOYW1lDQoJCQl9DQoJCX0pDQoJfQ0KDQoJZnVuY3Rpb24gcmVtb3ZlKGNvbnRleHQpIHsNCgkJcmV0dXJuICQudGVsbGlnZW50LmV2b2x1dGlvbi5kZWwoew0KCQkJdXJsOiAkLnRlbGxpZ2VudC5ldm9sdXRpb24uc2l0ZS5nZXRCYXNlVXJsKCkgKyAnYXBpLmFzaHgvdjIvdXNlcnMve1VzZXJJZH0vY292ZXJwaG90by5qc29uJywNCgkJCWRhdGE6IHsNCgkJCQlVc2VySWQ6IGNvbnRleHQudXNlcklkDQoJCQl9DQoJCX0pDQoJfQ0KDQoJdmFyIGFwaSA9IHsNCgkJcmVnaXN0ZXI6IGZ1bmN0aW9uKGNvbnRleHQpIHsNCgkJCXZhciB1cGxvYWRlciA9IG5ldyBVcGxvYWRlcih7DQoJCQkJdXBsb2FkQ29udGV4dElkOiBjb250ZXh0LnVwbG9hZENvbnRleHRJZCwNCgkJCQl1cGxvYWRVcmw6IGNvbnRleHQudXBsb2FkVXJsLA0KCQkJCWNvbnRhaW5lcjogJChjb250ZXh0LndyYXBwZXIpDQoJCQl9KTsNCg0KCQkJJC50ZWxsaWdlbnQuZXZvbHV0aW9uLm1lc3NhZ2luZy5zdWJzY3JpYmUoJ3dpZGdldHMuZGVsZXRlLWNvdmVyJywgZnVuY3Rpb24oKXsNCgkJCQlpZihjb25maXJtKGNvbnRleHQucmVtb3ZlQ29uZmlybSkpIHsNCgkJCQkJcmVtb3ZlKGNvbnRleHQpLnRoZW4oZnVuY3Rpb24oKXsNCgkJCQkJCXJlbW92ZUNvdmVyUGhvdG8oY29udGV4dCk7DQoJCQkJCX0pOw0KCQkJCX0NCgkJCX0pOw0KDQoJCQkkLnRlbGxpZ2VudC5ldm9sdXRpb24ubWVzc2FnaW5nLnN1YnNjcmliZSgnd2lkZ2V0cy51cGxvYWQtY292ZXInLCBmdW5jdGlvbigpew0KCQkJCXVwbG9hZGVyLnVwbG9hZCgpDQoJCQkJCS5wcm9ncmVzcyhmdW5jdGlvbihkYXRhKSB7DQoJCQkJCQkkKGNvbnRleHQuY292ZXJQaG90b1VwbG9hZExpbmspLmh0bWwoY29udGV4dC5wcm9ncmVzc1RleHQucmVwbGFjZSgvXHswXH0vZywgZGF0YS5wZXJjZW50KSk7DQoJCQkJCX0pDQoJCQkJCS50aGVuKGZ1bmN0aW9uKGRhdGEpew0KCQkJCQkJJChjb250ZXh0LmNvdmVyUGhvdG9VcGxvYWRMaW5rKS5odG1sKGNvbnRleHQucHJvZ3Jlc3NUZXh0LnJlcGxhY2UoL1x7MFx9L2csIDEwMCkpOw0KCQkJCQkJd2luZG93LnNldFRpbWVvdXQoZnVuY3Rpb24oKSB7DQoJCQkJCQkJJChjb250ZXh0LmNvdmVyUGhvdG9VcGxvYWRMaW5rKS5odG1sKGNvbnRleHQudXBsb2FkVGV4dCk7DQoJCQkJCQl9LCA1MDApOw0KCQkJCQkJdXBsb2FkKGNvbnRleHQsIGRhdGEuY29udGV4dCwgZGF0YS5uYW1lKS50aGVuKGZ1bmN0aW9uKGNvdmVyUGhvdG8pew0KCQkJCQkJCXJlc2l6ZShjb250ZXh0LCBjb3ZlclBob3RvLkNvdmVyUGhvdG8uVXJsKS50aGVuKGZ1bmN0aW9uKHJlc2l6ZWRVcmwpew0KCQkJCQkJCQlzZXRDb3ZlclBob3RvKGNvbnRleHQsIHJlc2l6ZWRVcmwpOw0KCQkJCQkJCX0pDQoJCQkJCQl9KQ0KCQkJCQl9KQ0KCQkJCQkuY2F0Y2goZnVuY3Rpb24oKSB7DQoJCQkJCQkkKGNvbnRleHQuY292ZXJQaG90b1VwbG9hZExpbmspLmh0bWwoY29udGV4dC51cGxvYWRUZXh0KTsNCgkJCQkJfSk7DQoJCQl9KTsNCgkJfQ0KCX07DQoNCgkkLnRlbGxpZ2VudCA9ICQudGVsbGlnZW50IHx8IHt9Ow0KCSQudGVsbGlnZW50LmV2b2x1dGlvbiA9ICQudGVsbGlnZW50LmV2b2x1dGlvbiB8fCB7fTsNCgkkLnRlbGxpZ2VudC5ldm9sdXRpb24ud2lkZ2V0cyA9ICQudGVsbGlnZW50LmV2b2x1dGlvbi53aWRnZXRzIHx8IHt9Ow0KCSQudGVsbGlnZW50LmV2b2x1dGlvbi53aWRnZXRzLnVzZXJCYW5uZXIgPSAkLnRlbGxpZ2VudC5ldm9sdXRpb24ud2lkZ2V0cy51c2VyQmFubmVyIHx8IGFwaTsNCg0KfSkoalF1ZXJ5KTsNCg==</file>
    		</files>
    	</scriptedContentFragment>
    </scriptedContentFragments>

  • That is an exact match to the version I have locally that doesn't reproduce the issue.

    Another quick change to try: Go to Administration > About > More > Expire User Interface Caches -- this will cause all stylesheets to regenerate (on first access).

Reply Children