Sort Forum Threads by Created Date?

Despite all the cool functionality provided to users, I'm getting asked for more. Is there any way to sort a forum by the date each thread was created? The current "Date" selection is the date of last activity, not the date of creation.

Thanks!

Parents Reply Children
  • The API supports this sorting option, but the default version of the Thread List widget wasn't exposing it. The version of the widget in this community is apparently customized to show that option. I've attached the customized version. The actual change is only one new resource and one new line of code in the widget's setquery.vm attachment.

    <scriptedContentFragments>
    	<scriptedContentFragment name="${resource:Forums_ThreadList_Name}" version="11.1.2.11315" description="${resource:Forums_ThreadList_Description}" instanceIdentifier="c6af9d06240940beae71ade1bf750570" theme="" isCacheable="true" varyCacheByUser="true" showHeaderByDefault="true" cssClass="thread-list" lastModified="2020-04-07 17:59:01Z">
    		<contentScript language="Velocity"><![CDATA[$core_v2_page.AddLink('stylesheet', $core_v2_widget.GetExecutedFileUrl('style.less'), "%{ Position = 'AfterTheme' }")
    
    
    #set ($showSidebarList = false)
    #set ($region = $core_v2_widget.RegionName.ToLower())
    #set ($layout = $core_v2_page.Layout.ToLower())
    
    #if ($region == 'split-sidebar-left' || $region == 'split-sidebar-right' || $region == 'left-sidebar')
    	#set ($showSidebarList = true)
    #elseif ($region == 'right-sidebar' && !$layout.Contains('split-content') && !$layout.Contains('split-sidebar'))
    	#set ($showSidebarList = true)
    #end
    
    #if($showSidebarList)
    	$core_v2_widget.ExecuteFile('sidebar.vm')
    #else
    	$core_v2_ui.PagedContent('list.vm')
    
    	#registerEndOfPageHtml()
    		<script type="text/javascript">
    		jQuery(function(j){
    			j('#$core_v2_widget.WrapperElementId').on('click', '.answer-status a', function(e){
    				e.preventDefault();
    				var link = j(this),
    					threadItem = link.closest('.content-item');
    					previewItem = threadItem.next('.preview');
    					container = previewItem.find('.content');
    
    				if(!container.is(':empty')) {
    					container.empty();
    					threadItem.removeClass('previewing');
    					previewItem.removeClass('previewing');
    				} else {
    					threadItem.addClass('previewing');
    					previewItem.addClass('previewing');
    					j.telligent.evolution.get({
    						url: '$core_v2_encoding.JavascriptEncode($core_v2_widget.GetExecutedFileUrl('answer.vm'))',
    						data: {
    							threadId: link.data('threadid'),
    							answerType: link.data('answertype')
    						}
    					}).then(function(excerpt){
    						container.hide().empty().append(excerpt).show();
    					});
    				}
    			});
    		});
    		</script>
    	#end
    #end
    
    			]]></contentScript>
    		<headerScript language="Velocity"><![CDATA[
    #set($header = $core_v2_widget.GetStringValue('fragmentHeader', ''))
    #set ($forumOrGroup = $core_v2_page.ParseQueryString($core_v2_widget.GetStringValue('selectedForumOrGroup', '')))
    
    #if($header == '' || $header == '${resource:Forums_ThreadList_Name}')
    	#if ($forumOrGroup.Value('Forum'))
    		#set ($forumId = $core_v2_utility.ParseInt($forumOrGroup.Value('Forum')))
    		#set ($header = $core_v2_forum.Get($forumId).Name)
    	#elseif ($forumOrGroup.Value('Group'))
    		#set ($groupId = $core_v2_utility.ParseInt($forumOrGroup.Value('Group')))
    		#set ($header = $core_v2_group.Get("%{Id=$groupId}").Name)
    	#elseif ($core_v2_forum.Current)
    		#set ($header = $core_v2_forum.Current.Name)
    	#else
    		#set ($header = $core_v2_widget.GetStringValue('fragmentHeader', '${resource:Forums_ThreadList_Name}'))
    	#end
    #end
    
    $core_v2_widget.ApplyTokens($header)
    		]]></headerScript>
    		<configuration><![CDATA[<propertyGroup id="options" resourceName="Options">
    	<property id="fragmentHeader" resourceName="CF_Title" dataType="string" defaultValue="${resource:Forums_ThreadList_Name}" controlType="Telligent.Evolution.Controls.ContentFragmentTokenStringControl, Telligent.Evolution.Platform" />
    	<property id="includeDiscussions" resourceName="CF_IncludeDiscussions" dataType="bool" defaultValue="true" />
    	<property id="includeQuestions" resourceName="CF_IncludeQuestions" dataType="bool" defaultValue="true" />
    	<property id="supportUserFiltering" resourceName="CF_SupportUserFiltering" dataType="bool" defaultValue="true" />
    	<property id="filter" resourceName="CF_Filter" dataType="string" defaultValue="all">
    		<propertyValue value="Active" resourceName="CF_Filter_All" />
    		<propertyValue value="Unread" resourceName="CF_Filter_Unread" />
    		<propertyValue value="Answered" resourceName="CF_Filter_Answered" />
    		<propertyValue value="Unanswered" resourceName="CF_Filter_Unanswered" />
    		<propertyValue value="AnsweredNotVerified" resourceName="CF_Filter_AnsweredNotVerified" />
    		<propertyValue value="AnsweredWithNotVerified" resourceName="CF_Filter_AnsweredIncludingNotVerified" />
    		<propertyValue value="MyThreads" resourceName="CF_Filter_MyThreads" />
    		<propertyValue value="Authored" resourceName="CF_Filter_Authored" />
    		<propertyValue value="ContextualMyThreads" resourceName="CF_Filter_MyThreads_Contextual" />
    		<propertyValue value="ContextualAuthored" resourceName="CF_Filter_Authored_Contextual" />
    	</property>
    	<property id="age" resourceName="CF_Age" dataType="string" defaultValue="0">
    		<propertyValue value="0" resourceName="CF_Filter_AllAges" />
    		<propertyValue value="-3" resourceName="CF_Filter_3Months" />
    		<propertyValue value="-6" resourceName="CF_Filter_6Months" />
    		<propertyValue value="-12" resourceName="CF_Filter_12Months" />
    	</property>
    	<property id="sortBy" resourceName="CF_SortBy" dataType="string" defaultValue="LastPost">
    		<propertyValue value="LastPost" resourceName="CF_ForumThreadList_Sort_DateTime" />
    		<propertyValue value="Replies" resourceName="CF_ForumThreadList_Sort_Replies" />
    		<propertyValue value="Views" resourceName="CF_ForumThreadList_Sort_Views" />
    		<propertyValue value="Topic" resourceName="CF_ForumThreadList_Sort_Topic" />
    		<propertyValue value="ContentQuality" resourceName="CF_ForumThreadList_Sort_Quality" />
    		<propertyValue value="TotalVotes" resourceName="CF_ForumThreadList_Sort_Votes" />
    		<propertyValue value="QualityScore" resourceName="CF_ForumThreadList_Sort_QualityVotes" />
    	</property>
    	<property id="sortOrder" resourceName="CF_SortOrder" dataType="string" defaultValue="Descending">
    		<propertyValue value="Ascending" resourceName="SortOrderDropDownList_Asc" />
    		<propertyValue value="Descending" resourceName="SortOrderDropDownList_Desc" />
    	</property>
    	<property id="popularOnly" resourceName="CF_ForumThreadList_PopularOnly" dataType="bool" defaultValue="false" />
    	<property id="selectedForumOrGroup" resourceName="CF_Forum_SelectGroupAndForum" dataType="custom" defaultValue="" controlType="Telligent.Evolution.Discussions.Controls.ForumSelectionControl, Telligent.Evolution.Forums" />
    	<property id="pageSize" resourceName="Pagesize" dataType="int" defaultValue="15">
    		<propertyRule type="Telligent.Evolution.Controls.PropertyRules.MinMaxValueRule, Telligent.Evolution.Platform" minValue="1" maxValue="100" />
    	</property>
    	<property id="hideEmpty" resourceName="CF_ForumThreadList_HideEmpty" dataType="bool" defaultValue="false" />
    </propertyGroup>
    		]]></configuration>
    		<languageResources><![CDATA[<language key="en-us">
      <resource name="AllRecent">All recent questions and discussions</resource>
      <resource name="AllRecent_Discussions">All recent discussions</resource>
      <resource name="AllRecent_Questions">All recent questions</resource>
      <resource name="Announcement">Announcement</resource>
      <resource name="Answered_Tip">Question answered (click to preview)</resource>
      <resource name="AnsweredNotVerified">Questions with suggested answers</resource>
      <resource name="AnsweredWithNotVerified">Answered questions and discussions</resource>
      <resource name="AnsweredWithNotVerified_Discussions">Answered discussions</resource>
      <resource name="AnsweredWithNotVerified_Questions">Answered questions</resource>
      <resource name="Authored">Questions and discussions you've started</resource>
      <resource name="Authored_Discussions">Discussions you've started</resource>
      <resource name="Authored_Questions">Questions you've asked</resource>
      <resource name="by">by</resource>
      <resource name="cancel">Cancel</resource>
      <resource name="CF_Age">Maximum Age of threads to display</resource>
      <resource name="CF_Filter">Default Filter</resource>
      <resource name="CF_Filter_12Months">12 Months</resource>
      <resource name="CF_Filter_3Months">3 Months</resource>
      <resource name="CF_Filter_6Months">6 Months</resource>
      <resource name="CF_Filter_All">None (Show All)</resource>
      <resource name="CF_Filter_AllAges">None (Show All)</resource>
      <resource name="CF_Filter_Answered">Only Answered</resource>
      <resource name="CF_Filter_AnsweredIncludingNotVerified">Only Answered (including Not Verified Answers)</resource>
      <resource name="CF_Filter_AnsweredNotVerified">Only Answered but not Verified</resource>
      <resource name="CF_Filter_Authored">Accessing User has Authored</resource>
      <resource name="CF_Filter_Authored_Contextual">Contextual User has Authored</resource>
      <resource name="CF_Filter_MyThreads">Accessing User has Participated In</resource>
      <resource name="CF_Filter_MyThreads_Contextual">Contextual User has Participated In</resource>
      <resource name="CF_Filter_Unanswered">Only Unanswered</resource>
      <resource name="CF_Filter_Unread">Unread by Accessing User</resource>
      <resource name="CF_Forum_SelectGroupAndForum">Select group/forum to pull content from</resource>
      <resource name="CF_ForumAdministration">Administer forum</resource>
      <resource name="CF_ForumLinks_Subscribe">Turn Forum notifications on</resource>
      <resource name="CF_ForumLinks_Unsubscribe">Turn Forum notifications off</resource>
      <resource name="CF_ForumsModeration_Plural">{0} posts to moderate</resource>
      <resource name="CF_ForumsModeration_Singular">{0} post to moderate</resource>
      <resource name="CF_ForumThreadList_HideEmpty">Hide if empty</resource>
      <resource name="CF_ForumThreadList_PopularOnly">Show only popular threads</resource>
      <resource name="CF_ForumThreadList_Sort_ContentQuality">Content Quality Score</resource>
      <resource name="CF_ForumThreadList_Sort_DateAsked">By date asked</resource>
      <resource name="CF_ForumThreadList_Sort_DateTime">By date</resource>
      <resource name="CF_ForumThreadList_Sort_Quality">By quality</resource>
      <resource name="CF_ForumThreadList_Sort_QualityVotes">By votes</resource>
      <resource name="CF_ForumThreadList_Sort_Replies">By reply count</resource>
      <resource name="CF_ForumThreadList_Sort_Topic">By name</resource>
      <resource name="CF_ForumThreadList_Sort_Views">By view count</resource>
      <resource name="CF_ForumThreadList_Sort_Votes">By most asked</resource>
      <resource name="CF_IncludeDiscussions">Include Discussion Threads</resource>
      <resource name="CF_IncludeQuestions">Include Question and Answer Threads</resource>
      <resource name="CF_SortBy">Sort By</resource>
      <resource name="CF_SortOrder">Sort Order</resource>
      <resource name="CF_SupportUserFiltering">Support User Filtering and Sorting</resource>
      <resource name="CF_Title">Widget Title</resource>
      <resource name="Contextual_Authored">Questions and discussions this user has started</resource>
      <resource name="Contextual_Authored_Discussions">Discussions this user has started</resource>
      <resource name="Contextual_Authored_Questions">Questions this user has asked</resource>
      <resource name="Contextual_Your">Questions and discussions this user has participated in</resource>
      <resource name="Contextual_Your_Discussions">Discussions this user has participated in</resource>
      <resource name="Contextual_Your_Questions">Questions this user has participated in</resource>
      <resource name="Date">Date</resource>
      <resource name="Discussion">start a discussion</resource>
      <resource name="Discussion_Tip">Discussion</resource>
      <resource name="Forums_ThreadList_Description">Displays a list of forum threads.</resource>
      <resource name="Forums_ThreadList_Name">Forum - Thread List</resource>
      <resource name="FrequentlyAsked">Frequently Asked</resource>
      <resource name="LatestReplyFormat">Latest &lt;a href="{0}" class="internal-link view-user-profile"&gt;{1}&lt;/a&gt;&lt;br /&gt;</resource>
      <resource name="MarkAllRead_Threads_Link">Mark all read</resource>
      <resource name="more">More</resource>
      <resource name="NoResponse">Questions and discussions with no replies</resource>
      <resource name="NoResponse_Questions">Questions with no replies</resource>
      <resource name="NotAnswered_Tip">Unanswered question</resource>
      <resource name="Options">Options</resource>
      <resource name="Pagesize">Number of items to display</resource>
      <resource name="plus_more_answer">Plus {0} more answer</resource>
      <resource name="plus_more_answers">Plus {0} more answers</resource>
      <resource name="Question">ask a question</resource>
      <resource name="Question_or_Discussion">ask a question or start a discussion</resource>
      <resource name="Recent_Questions">Recent Questions</resource>
      <resource name="ReplyCount_Plural">replies</resource>
      <resource name="ReplyCount_Singular">reply</resource>
      <resource name="SortOrderDropDownList_Asc">Ascending</resource>
      <resource name="SortOrderDropDownList_Desc">Descending</resource>
      <resource name="StartedFormat">Started &lt;a href="{0}" class="internal-link view-user-profile"&gt;{1}&lt;/a&gt;&lt;br /&gt;</resource>
      <resource name="Status_Discussion">Discussion</resource>
      <resource name="Status_NotAnswered">Not Answered</resource>
      <resource name="Status_SuggestedAnswer">Suggested Answer</resource>
      <resource name="Status_VerifiedAnswer">Answered</resource>
      <resource name="Sticky">Sticky</resource>
      <resource name="SuggestedAnswer_Tip">Answer suggested (click to preview)</resource>
      <resource name="tags">Tags</resource>
      <resource name="Unanswered">Unanswered questions and discussions</resource>
      <resource name="Unanswered_Discussions">Unanswered discussions</resource>
      <resource name="Unanswered_Questions">Unanswered questions</resource>
      <resource name="Unread">Unread questions and discussions</resource>
      <resource name="Unread_Discussions">Unread discussions</resource>
      <resource name="Unread_Questions">Unread questions</resource>
      <resource name="View">View</resource>
      <resource name="ViewCount_Plural">views</resource>
      <resource name="ViewCount_Singular">view</resource>
      <resource name="ViewThreads_FilterByTopic">By title</resource>
      <resource name="ViewThreads_NoTopics">There are no posts to show. This could be because there are no posts in this forum or due to a filter.</resource>
      <resource name="ViewThreads_NoTopics_Link">There are no posts to show.  Be the first to &lt;a href="{0}"&gt; {1}&lt;/a&gt;.</resource>
      <resource name="Your">Questions and discussions you've participated in</resource>
      <resource name="Your_Discussions">Discussions you've participated in</resource>
      <resource name="Your_Questions">Questions you've participated in</resource>
    </language>]]></languageResources>
    		<additionalCssScript language="Unknown" />
    		<files>
    			<file name="answer.vm">77u/I3NldCAoJHRocmVhZElkID0gZmFsc2UpDQojc2V0ICgkdGhyZWFkSWQgPSAkY29yZV92Ml91dGlsaXR5LlBhcnNlSW50KCRjb3JlX3YyX3BhZ2UuR2V0UXVlcnlTdHJpbmdWYWx1ZSgndGhyZWFkSWQnKSkpDQojc2V0ICgkYW5zd2VyVHlwZSA9ICd2ZXJpZmllZC1hbnN3ZXJzJykNCiNzZXQgKCRhbnN3ZXJUeXBlID0gJGNvcmVfdjJfcGFnZS5HZXRRdWVyeVN0cmluZ1ZhbHVlKCdhbnN3ZXJUeXBlJykpDQoNCiMjIHZlcmlmaWVkLWFuc3dlcnMsIG5vbi12ZXJpZmllZC1hbnN3ZXJzDQoNCiNpZiAoISR0aHJlYWRJZCkNCgkkY29yZV92Ml93aWRnZXQuSGlkZSgpDQojZW5kDQoNCiNzZXQoJGFuc3dlcnMgPSAkY29yZV92Ml9mb3J1bVJlcGx5Lkxpc3QoJHRocmVhZElkLCAiJXsgRm9ydW1SZXBseVF1ZXJ5VHlwZSA9ICRhbnN3ZXJUeXBlLCBTb3J0QnkgPSAnUG9zdERhdGUnLCBTb3J0T3JkZXIgPSAnRGVzY2VuZGluZycsIFBhZ2VTaXplID0gMSwgUGFnZUluZGV4ID0gMCwgSW5jbHVkZVRocmVhZFN0YXJ0ZXIgPSAnRmFsc2UnIH0iKSkNCiNmb3JlYWNoKCRhbnN3ZXIgaW4gJGFuc3dlcnMpDQoJPGRpdiBjbGFzcz0iY29udGVudCBpbmxpbmUiPg0KCQkkY29yZV92Ml9sYW5ndWFnZS5UcnVuY2F0ZSgkYW5zd2VyLkJvZHkoJ1dlYicpLCAyNTAsICcuLi4nKQ0KCQkjaWYgKCRhbnN3ZXJzLlRvdGFsQ291bnQgPiAxKQ0KCQkJPHA+DQoJCQkJI3NldCgkYW5zd2VyQ291bnQgPSAkYW5zd2Vycy5Ub3RhbENvdW50IC0gMSkNCgkJCQkjaWYgKCRhbnN3ZXJDb3VudCA9PSAxKQ0KCQkJCQkkY29yZV92Ml9sYW5ndWFnZS5Gb3JtYXRTdHJpbmcoJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ3BsdXNfbW9yZV9hbnN3ZXInKSwgJGFuc3dlckNvdW50LlRvU3RyaW5nKCkpDQoJCQkJI2Vsc2UNCgkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuRm9ybWF0U3RyaW5nKCRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdwbHVzX21vcmVfYW5zd2VycycpLCAkYW5zd2VyQ291bnQuVG9TdHJpbmcoKSkNCgkJCQkjZW5kDQoJCQk8L3A+DQoJCSNlbmQNCgk8L2Rpdj4NCiNlbmQ=</file>
    			<file name="list.vm">JGNvcmVfdjJfd2lkZ2V0LkV4ZWN1dGVGaWxlKCdzZXRxdWVyeS52bScpDQoNCiNzZXQgKCR0aHJlYWRzID0gJGNvcmVfdjJfZm9ydW1UaHJlYWQuTGlzdCgkZmlsdGVyLCAkb3B0aW9ucykpDQoNCiNpZiAoJGhpZGVFbXB0eSAmJiAoISR0aHJlYWRzIHx8ICR0aHJlYWRzLlRvdGFsQ291bnQgPT0gMCkpDQoJJGNvcmVfdjJfd2lkZ2V0LkhpZGUoKQ0KI2VuZA0KDQojIyBSZW5kZXIgdGhyZWFkcw0KDQojZm9yZWFjaCAoJHRocmVhZCBpbiAkdGhyZWFkcykNCiNiZWZvcmVhbGwNCgk8dWwgY2xhc3M9ImNvbnRlbnQtbGlzdCBjb250ZW50IG1hcmdpbi1ib3R0b20gdGFidWxhciI+DQojZWFjaA0KDQoJPGxpIGNsYXNzPSJjb250ZW50LWl0ZW0gd2l0aC1ocmVmICNpZigkdGhyZWFkLklzU3RpY2t5ICYmICR0aHJlYWQuU3RpY2t5RGF0ZSA+ICRjb3JlX3YyX3V0aWxpdHkuQ3VycmVudERhdGUpIGhpZ2hsaWdodCNlbmQiIGRhdGEtdGhyZWFkaWQ9IiR0aHJlYWQuSWQiIGRhdGEtaHJlZj0iJGNvcmVfdjJfZW5jb2RpbmcuSHRtbEF0dHJpYnV0ZUVuY29kZSgkdGhyZWFkLlVybCkiPg0KDQoJCTxkaXYgY2xhc3M9Imljb24gY2VsbCBhbnN3ZXItc3RhdHVzIj4NCgkJCSNpZiAoJHRocmVhZC5UaHJlYWRUeXBlID09ICJRdWVzdGlvbkFuZEFuc3dlciIpDQoJCQkJI2lmICgkdGhyZWFkLlRocmVhZFN0YXR1cyA9PSAiQW5zd2VyZWQiKQ0KCQkJCQk8c3BhbiBjbGFzcz0iYXR0cmlidXRlLXZhbHVlIj48YSBocmVmPSIjIiB0aXRsZT0iJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0Fuc3dlcmVkX1RpcCcpIiBjbGFzcz0idWktdGlwIHZlcmlmaWVkIHJlcGxhY2Utd2l0aC1pY29uIGNoZWNrIiBkYXRhLXRocmVhZGlkPSIkdGhyZWFkLklkIiBkYXRhLWFuc3dlcnR5cGU9InZlcmlmaWVkLWFuc3dlcnMiPiRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdTdGF0dXNfVmVyaWZpZWRBbnN3ZXInKTwvYT48L3NwYW4+DQoJCQkJI2Vsc2VpZiAoJHRocmVhZC5UaHJlYWRTdGF0dXMgPT0gIkFuc3dlcmVkTm90VmVyaWZpZWQiKQ0KCQkJCQk8c3BhbiBjbGFzcz0iYXR0cmlidXRlLXZhbHVlIj48YSBocmVmPSIjIiB0aXRsZT0iJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ1N1Z2dlc3RlZEFuc3dlcl9UaXAnKSIgY2xhc3M9InVpLXRpcCBzdWdnZXN0ZWQgcmVwbGFjZS13aXRoLWljb24gY2hlY2siIGRhdGEtdGhyZWFkaWQ9IiR0aHJlYWQuSWQiIGRhdGEtYW5zd2VydHlwZT0ibm9uLXZlcmlmaWVkLWFuc3dlcnMiPiRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdTdGF0dXNfU3VnZ2VzdGVkQW5zd2VyJyk8L2E+PC9zcGFuPg0KCQkJCSNlbHNlDQoJCQkJCTxzcGFuIGNsYXNzPSJhdHRyaWJ1dGUtdmFsdWUgdW5hbnN3ZXJlZCB1aS10aXAgcmVwbGFjZS13aXRoLWljb24gaGVscCIgdGl0bGU9IiRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdOb3RBbnN3ZXJlZF9UaXAnKSI+JGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ1N0YXR1c19Ob3RBbnN3ZXJlZCcpPC9zcGFuPg0KCQkJCSNlbmQNCgkJCSNlbHNlDQoJCQkJPHNwYW4gY2xhc3M9ImF0dHJpYnV0ZS12YWx1ZSBkaXNjdXNzaW9uIHVpLXRpcCByZXBsYWNlLXdpdGgtaWNvbiBjaGF0IiB0aXRsZT0iJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0Rpc2N1c3Npb25fVGlwJykiPiRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdTdGF0dXNfRGlzY3Vzc2lvbicpPC9zcGFuPg0KCQkJI2VuZA0KCQk8L2Rpdj4NCgkJPGRpdiBjbGFzcz0ibmFtZSBjZWxsIj4NCgkJCTxoMj4NCgkJCQk8YSBocmVmPSIkY29yZV92Ml9lbmNvZGluZy5IdG1sQXR0cmlidXRlRW5jb2RlKCR0aHJlYWQuVXJsKSIgY2xhc3M9ImludGVybmFsLWxpbmsgdmlldy1wb3N0I2lmKCR0aHJlYWQuSGFzUmVhZCkgcmVhZCAjZWxzZSB1bnJlYWQgI2VuZCI+JHRocmVhZC5TdWJqZWN0PC9hPg0KCQkJCSRjb3JlX3YyX3VpLkZvcnVtVm90ZXMoInRocmVhZHF1YWxpdHkiLCAkdGhyZWFkLklkKQ0KCQkJCSNpZiAoJHRocmVhZC5UaHJlYWRUeXBlID09ICJRdWVzdGlvbkFuZEFuc3dlciIpDQoJCQkJCSRjb3JlX3YyX3VpLkZvcnVtVm90ZXMoJ3RocmVhZCcsICR0aHJlYWQuSWQpDQoJCQkJI2VuZA0KCQkJPC9oMj4NCgkJPC9kaXY+DQoJCTxkaXYgY2xhc3M9ImNlbGwgbm93cmFwIHN1cHBsZW1lbnRhcnkiPg0KCQkJPHNwYW4gY2xhc3M9InZhbHVlIj4kdGhyZWFkLlZpZXdDb3VudC5Ub1N0cmluZygpPC9zcGFuPg0KCQkJPHNwYW4gY2xhc3M9ImRlc2NyaXB0aW9uIj4NCgkJCQkjaWYgKCR0aHJlYWQuVmlld0NvdW50ID09IDEpDQoJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdWaWV3Q291bnRfU2luZ3VsYXInKQ0KCQkJCSNlbHNlDQoJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdWaWV3Q291bnRfUGx1cmFsJykNCgkJCQkjZW5kDQoJCQk8L3NwYW4+DQoJCTwvZGl2Pg0KCQk8ZGl2IGNsYXNzPSJjZWxsIG5vd3JhcCBzdXBwbGVtZW50YXJ5Ij4NCgkJCTxzcGFuIGNsYXNzPSJ2YWx1ZSI+JHRocmVhZC5SZXBseUNvdW50LlRvU3RyaW5nKCk8L3NwYW4+DQoJCQk8c3BhbiBjbGFzcz0iZGVzY3JpcHRpb24iPg0KCQkJCSNpZiAoJHRocmVhZC5SZXBseUNvdW50ID09IDEpDQoJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdSZXBseUNvdW50X1Npbmd1bGFyJykNCgkJCQkjZWxzZQ0KCQkJCQkkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnUmVwbHlDb3VudF9QbHVyYWwnKQ0KCQkJCSNlbmQNCgkJCTwvc3Bhbj4NCgkJPC9kaXY+DQoJCTxkaXYgY2xhc3M9ImNlbGwgbm93cmFwIGxhdGVzdCI+DQoJCQkjc2V0ICgkbGF0ZXN0UmVwbHlBdXRob3JJZCA9IGZhbHNlKQ0KCQkJI3NldCAoJGxhdGVzdFJlcGx5QXV0aG9ySWQgPSAkdGhyZWFkLkxhdGVzdEZvcnVtUmVwbHlBdXRob3JJZCkNCgkJCSNzZXQgKCRpc1N0YXJ0ZXIgPSBmYWxzZSkNCgkJCSNzZXQgKCRsYXRlc3RVcmwgPSAkdGhyZWFkLlVybCkNCgkJCSNpZiAoJGxhdGVzdFJlcGx5QXV0aG9ySWQgJiYgJGxhdGVzdFJlcGx5QXV0aG9ySWQgPiAwKQ0KCQkJCSNzZXQgKCRsYXRlc3RVc2VyID0gJGNvcmVfdjJfdXNlci5HZXQoIiV7SWQgPSAkbGF0ZXN0UmVwbHlBdXRob3JJZCB9IikpDQoJCQkJI3NldCAoJGxhdGVzdFVybCA9ICRjb3JlX3YyX2ZvcnVtVXJscy5Gb3J1bVJlcGx5KCR0aHJlYWQuTGF0ZXN0Rm9ydW1SZXBseUlkKSkNCgkJCSNlbHNlDQoJCQkJI3NldCAoJGlzU3RhcnRlciA9IHRydWUpDQoJCQkJI3NldCAoJGxhdGVzdFVzZXIgPSAkdGhyZWFkLkF1dGhvcikNCgkJCSNlbmQNCg0KCQkJI2lmICgkaXNTdGFydGVyKQ0KCQkJCSNzZXQgKCRsYXRlc3RGb3JtYXQgPSAkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnU3RhcnRlZEZvcm1hdCcpKQ0KCQkJI2Vsc2UNCgkJCQkjc2V0ICgkbGF0ZXN0Rm9ybWF0ID0gJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0xhdGVzdFJlcGx5Rm9ybWF0JykpDQoJCQkjZW5kDQoNCgkJCTxzcGFuIGNsYXNzPSJ2YWx1ZSI+DQoJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuRm9ybWF0U3RyaW5nKCRsYXRlc3RGb3JtYXQsICRjb3JlX3YyX2VuY29kaW5nLkh0bWxBdHRyaWJ1dGVFbmNvZGUoJGxhdGVzdFVybCksICRjb3JlX3YyX2xhbmd1YWdlLkZvcm1hdEFnb0RhdGUoJHRocmVhZC5MYXRlc3RQb3N0RGF0ZSkpDQoJCQk8L3NwYW4+DQoNCgkJCTxzcGFuIGNsYXNzPSJkZXNjcmlwdGlvbiI+DQoJCQkJI2lmICgkbGF0ZXN0VXNlci5Qcm9maWxlVXJsKQ0KCQkJCQlieSA8YSBocmVmPSIkY29yZV92Ml9lbmNvZGluZy5IdG1sQXR0cmlidXRlRW5jb2RlKCRsYXRlc3RVc2VyLlByb2ZpbGVVcmwpIiBjbGFzcz0iaW50ZXJuYWwtbGluayB2aWV3LXVzZXItcHJvZmlsZSI+JGxhdGVzdFVzZXIuRGlzcGxheU5hbWU8L2E+DQoJCQkJI2Vsc2UNCgkJCQkJYnkgJGxhdGVzdFVzZXIuRGlzcGxheU5hbWUNCgkJCQkjZW5kDQoJCQk8L3NwYW4+DQoJCTwvZGl2Pg0KCTwvbGk+DQoJPGxpIGNsYXNzPSJjb250ZW50LWl0ZW0gcHJldmlldyIgZGF0YS10aHJlYWRpZD0iJHRocmVhZC5JZCI+DQoJCTxkaXYgY2xhc3M9ImNlbGwgc3VwcGxlbWVudGFyeSI+PC9kaXY+DQoJCTxkaXYgY2xhc3M9ImNlbGwgY29udGVudCI+PC9kaXY+DQoJCTxkaXYgY2xhc3M9ImNlbGwgc3VwcGxlbWVudGFyeSI+PC9kaXY+DQoJCTxkaXYgY2xhc3M9ImNlbGwgc3VwcGxlbWVudGFyeSI+PC9kaXY+DQoJCTxkaXYgY2xhc3M9ImNlbGwgc3VwcGxlbWVudGFyeSI+PC9kaXY+DQoJPC9saT4NCiNhZnRlcmFsbA0KCTwvdWw+DQojbm9kYXRhDQoJPGRpdiBjbGFzcz0ibWVzc2FnZSBub3JlY29yZHMiPg0KCQkjc2V0ICgkYWRkVXJsID0gJGNvcmVfdjJfZm9ydW1VcmxzLkFkZFRocmVhZCgkY3VycmVudEZvcnVtLklkLCB0cnVlKSkNCgkJI2lmICgkY3VycmVudEZvcnVtICYmICRhZGRVcmwpDQoNCgkJCSNmb3JlYWNoICgkdGhyZWFkVHlwZSBpbiAkZm9ydW0uQWxsb3dlZFRocmVhZFR5cGVzKQ0KCQkJCSNpZiAoJHRocmVhZFR5cGUgPT0gJ1F1ZXN0aW9uQW5kQW5zd2VyJykNCgkJCQkJI3NldCAoJGhhc1FhRm9ydW1zID0gdHJ1ZSkNCgkJCQkjZWxzZWlmICgkdGhyZWFkVHlwZSA9PSAnRGlzY3Vzc2lvbicpDQoJCQkJCSNzZXQoJGhhc0Rpc2N1c3Npb25Gb3J1bXMgPSB0cnVlKQ0KCQkJCSNlbmQNCgkJCSNlbmQNCgkJCSNpZiAoJGhhc1FhRm9ydW1zICYmICRoYXNEaXNjdXNzaW9uRm9ydW1zKQ0KCQkJCSNzZXQoJG1lc3NhZ2UgPSAkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnUXVlc3Rpb25fb3JfRGlzY3Vzc2lvbicpKQ0KCQkJI2Vsc2VpZigkaGFzUWFGb3J1bXMpDQoJCQkJI3NldCgkbWVzc2FnZSA9ICRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdRdWVzdGlvbicpKQ0KCQkJI2Vsc2UNCgkJCQkjc2V0KCRtZXNzYWdlID0gJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0Rpc2N1c3Npb24nKSkNCgkJCSNlbmQNCg0KCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuRm9ybWF0U3RyaW5nKCRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCJWaWV3VGhyZWFkc19Ob1RvcGljc19MaW5rIiksICRhZGRVcmwsICRtZXNzYWdlKQ0KCQkjZWxzZQ0KCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoIlZpZXdUaHJlYWRzX05vVG9waWNzIikNCgkJI2VuZA0KCTwvZGl2Pg0KI2VuZA0KDQoNCiMjIFBhZ2luZw0KDQojc2V0ICgkcGFnZXJPcHRpb25zID0gIiV7IFBhZ2VkQ29udGVudEZpbGUgPSAnbGlzdC52bScsIExvYWRpbmdJbmRpY2F0b3IgPSAndHJ1ZScgfSIpDQojIyBvbmx5IHJlbG9hZCBvbiBlYWNoIGhhc2ggY2hhbmdlIGlmIHRoaXMgc3VwcG9ydHMgdXNlciBmaWx0ZXJpbmcNCiNpZiAoJHN1cHBvcnRVc2VyRmlsdGVyaW5nKQ0KCSRwYWdlck9wdGlvbnMuQWRkKCdMb2FkT25BbnlIYXNoQ2hhbmdlJywgJ3RydWUnKQ0KI2VuZA0KJGNvcmVfdjJfdWkuUGFnZXIoJHRocmVhZHMuUGFnZUluZGV4LCAkdGhyZWFkcy5QYWdlU2l6ZSwgJHRocmVhZHMuVG90YWxDb3VudCwgJHBhZ2VyT3B0aW9ucyk=</file>
    			<file name="setquery.vm">I3NldCAoJHBvcHVsYXJPbmx5ID0gJGNvcmVfdjJfd2lkZ2V0LkdldEJvb2xWYWx1ZSgncG9wdWxhck9ubHknLCBmYWxzZSkpCiNzZXQgKCRoaWRlRW1wdHkgPSAkY29yZV92Ml93aWRnZXQuR2V0Qm9vbFZhbHVlKCdoaWRlRW1wdHknLCBmYWxzZSkpCiNzZXQgKCRpbmNsdWRlUXVlc3Rpb25zID0gJGNvcmVfdjJfd2lkZ2V0LkdldEJvb2xWYWx1ZSgnaW5jbHVkZVF1ZXN0aW9ucycsIHRydWUpKQojc2V0ICgkc3VwcG9ydFVzZXJGaWx0ZXJpbmcgPSAkY29yZV92Ml93aWRnZXQuR2V0Qm9vbFZhbHVlKCdzdXBwb3J0VXNlckZpbHRlcmluZycsIHRydWUpKQojc2V0ICgkaW5jbHVkZURpc2N1c3Npb25zID0gJGNvcmVfdjJfd2lkZ2V0LkdldEJvb2xWYWx1ZSgnaW5jbHVkZURpc2N1c3Npb25zJywgdHJ1ZSkpCgojc2V0ICgkZm9ydW1Pckdyb3VwID0gJGNvcmVfdjJfcGFnZS5QYXJzZVF1ZXJ5U3RyaW5nKCRjb3JlX3YyX3dpZGdldC5HZXRTdHJpbmdWYWx1ZSgnc2VsZWN0ZWRGb3J1bU9yR3JvdXAnLCAnJykpKQojc2V0ICgkY3VycmVudEZvcnVtID0gJGNvcmVfdjJfZm9ydW0uQ3VycmVudCkKI3NldCAoJGZvcnVtSWQgPSBmYWxzZSkKI3NldCAoJGdyb3VwSWQgPSAgZmFsc2UpCiNzZXQgKCRpbmNsdWRlU3ViR3JvdXBzID0gZmFsc2UpCiNzZXQgKCRpc1JlZ2lzdGVyZWQgPSAkY29yZV92Ml91c2VyLklzUmVnaXN0ZXJlZCgkY29yZV92Ml91c2VyLkFjY2Vzc2luZy5JZCkpCiNzZXQgKCRhcmVTdGlja3lQb3N0c09uVG9wID0gZmFsc2UpCiNzZXQgKCRjb250ZXh0dWFsVXNlciA9ICRjb3JlX3YyX3VzZXIuQ3VycmVudCkKI3NldCAoJGFjY2Vzc2luZ1VzZXIgPSAkY29yZV92Ml91c2VyLkFjY2Vzc2luZykKI3NldCAoJGFjY2Vzc2luZ1VzZXJJc1JlZ2lzdGVyZWQgPSAkY29yZV92Ml91c2VyLklzUmVnaXN0ZXJlZCgkYWNjZXNzaW5nVXNlci5JZCkpCgojc2V0ICgkcGFnZVNpemUgPSAkY29yZV92Ml93aWRnZXQuR2V0SW50VmFsdWUoJ3BhZ2VTaXplJywgMTUpKQojc2V0ICgkcGFnZUluZGV4ID0gJGNvcmVfdjJfdWkuR2V0Q3VycmVudFBhZ2VJbmRleCgpKQoKIyMgR2V0IFdpZGdldC1kZWZhdWx0IGZpbHRlcnMgYW5kIHNvcnRpbmcKI3NldCAoJGZpbHRlciA9ICRjb3JlX3YyX3dpZGdldC5HZXRTdHJpbmdWYWx1ZSgnZmlsdGVyJywgJ2FjdGl2ZScpKQojc2V0ICgkc29ydEJ5ID0gJGNvcmVfdjJfd2lkZ2V0LkdldFN0cmluZ1ZhbHVlKCdzb3J0QnknLCAnZGF0ZVRpbWUnKSkKI3NldCAoJHNvcnRPcmRlciA9ICRjb3JlX3YyX3dpZGdldC5HZXRTdHJpbmdWYWx1ZSgnc29ydE9yZGVyJywgJ2Rlc2NlbmRpbmcnKSkKI3NldCAoJGFnZSA9ICRjb3JlX3YyX3dpZGdldC5HZXRJbnRWYWx1ZSgnYWdlJywgMCkpCgoKCiNpZiAoJGZvcnVtT3JHcm91cC5WYWx1ZSgnRm9ydW0nKSkKCSNzZXQgKCRmb3J1bUlkID0gJGNvcmVfdjJfdXRpbGl0eS5QYXJzZUludCgkZm9ydW1Pckdyb3VwLlZhbHVlKCdGb3J1bScpKSkKCSNpZigkZm9ydW1JZCAmJiAkZm9ydW1JZCA8PSAwICYmICAkY29yZV92Ml9mb3J1bS5DdXJyZW50KQoJICAgCSNzZXQgKCRmb3J1bUlkID0gJGNvcmVfdjJfZm9ydW0uQ3VycmVudC5JZCkKCSNlbmQKCSNzZXQgKCRhcmVTdGlja3lQb3N0c09uVG9wID0gdHJ1ZSkKI2Vsc2VpZiAoJGZvcnVtT3JHcm91cC5WYWx1ZSgnR3JvdXAnKSkKCSNzZXQgKCRpbmNsdWRlU3ViR3JvdXBzID0gJGNvcmVfdjJfdXRpbGl0eS5QYXJzZUJvb2woJGZvcnVtT3JHcm91cC5WYWx1ZSgnSW5jbHVkZVN1Ykdyb3VwcycpKSkKCSNzZXQgKCRncm91cElkID0gJGNvcmVfdjJfdXRpbGl0eS5QYXJzZUludCgkZm9ydW1Pckdyb3VwLlZhbHVlKCdHcm91cCcpKSkKCSNpZigkZ3JvdXBJZCAmJiAkZ3JvdXBJZCA8IDAgJiYgJGNvcmVfdjJfZ3JvdXAuQ3VycmVudCkKCSAgIAkjc2V0ICgkZ3JvdXBJZCA9JGNvcmVfdjJfZ3JvdXAuQ3VycmVudC5JZCkKCSNlbmQKI2Vsc2UKCSNpZiAoJGNvcmVfdjJfZm9ydW0uQ3VycmVudCAmJiAhJGluY2x1ZGVTdWJHcm91cHMpCgkJI3NldCAoJGZvcnVtID0gJGNvcmVfdjJfZm9ydW0uQ3VycmVudCkKCQkjc2V0ICgkZm9ydW1JZCA9ICRmb3J1bS5JZCkKCQkjc2V0ICgkYXJlU3RpY2t5UG9zdHNPblRvcCA9IHRydWUpCgkjZWxzZWlmICgkY29yZV92Ml9ncm91cC5DdXJyZW50KQoJCSNzZXQgKCRncm91cElkID0gJGNvcmVfdjJfZ3JvdXAuQ3VycmVudC5JZCkKCQkjc2V0ICgkYXJlU3RpY2t5UG9zdHNPblRvcCA9IGZhbHNlKQoJI2VuZAojZW5kCgoKI3NldCAoJGhhc1FhRm9ydW1zID0gZmFsc2UpCiNzZXQgKCRoYXNEaXNjdXNzaW9uRm9ydW1zID0gZmFsc2UpCiNpZiAoJGZvcnVtSWQpCgkjc2V0KCRmb3J1bSA9ICRjb3JlX3YyX2ZvcnVtLkdldCgkZm9ydW1JZCkpCgkjZm9yZWFjaCAoJHRocmVhZFR5cGUgaW4gJGZvcnVtLkFsbG93ZWRUaHJlYWRUeXBlcykKCQkjaWYgKCR0aHJlYWRUeXBlID09ICdRdWVzdGlvbkFuZEFuc3dlcicpCgkJI3NldCAoJGhhc1FhRm9ydW1zID0gdHJ1ZSkKCSNlbHNlaWYgKCR0aHJlYWRUeXBlID09ICdEaXNjdXNzaW9uJykKCQkjc2V0KCRoYXNEaXNjdXNzaW9uRm9ydW1zID0gdHJ1ZSkKCQkjZW5kCgkjZW5kCiNlbHNlaWYoJGdyb3VwSWQgPiAwKQoJI3NldCAoJGhhc1FhRm9ydW1zID0gdHJ1ZSkKCSNzZXQgKCRoYXNEaXNjdXNzaW9uRm9ydW1zID0gdHJ1ZSkKI2VuZAoKIyMgT25seSBob25vciBjb29raWVzIG9yIHF1ZXJ5IHN0cmluZ3MgaWYgdXNlciBmaWx0ZXJpbmcgaXMgc3VwcG9ydGVkCiNpZiAoJHN1cHBvcnRVc2VyRmlsdGVyaW5nKQoJIyMgQ29va2llLXN0b3JlZCBmaWx0ZXJzIG92ZXJyaWRlIHdpZGdldCBkZWZhdWx0cwoJIyMgQnV0IHRoZXkgY291bGQgdXNlIHRoZWlyIG93biwgbGVnYWN5LCBub24tc3RhbmRhcmQgbmFtZXMgd2hpY2ggbmVlZCB0byBiZSBtYXBwZWQgdG8gbm9ybWFsaXplZCBBUEkgb3B0aW9ucwoJI3NldCAoJGNvb2tpZUZpbHRlciA9ICRjb3JlX3YyX3BhZ2UuR2V0Q29va2llVmFsdWUoIlRocmVhZEZpbHRlciIpKQoJI2lmICgkY29va2llRmlsdGVyKQoJCSNzZXQgKCRjb29raWVGaWx0ZXIgPSAkY29va2llRmlsdGVyLlRvTG93ZXIoKSkKCQkjaWYgKCRjb29raWVGaWx0ZXIgPT0gJ3VucmVhZG9ubHknKQoJCQkjc2V0ICgkZmlsdGVyID0gJ1VucmVhZCcpCgkJI2Vsc2VpZiAoJGNvb2tpZUZpbHRlciA9PSAndW5hbnN3ZXJlZG9ubHknKQoJCQkjc2V0ICgkZmlsdGVyID0gJ1VuYW5zd2VyZWQnKQoJCSNlbHNlaWYgKCRjb29raWVGaWx0ZXIgPT0gJ3VzZXJmaWx0ZXInKQoJCQkjc2V0ICgkZmlsdGVyID0gJ015VGhyZWFkcycpCgkJI2Vsc2UKCQkJIyMgb3RoZXIgbGVnYWN5IG9wdGlvbnMgaW5jbHVkZWQ6IGFjdGl2ZQoJCQkjIyB3aGljaCBpcyBzdGlsbCB2YWxpZCBhbG9uZ3NpZGUgYW55IG5ldyBvcHRpb25zCgkJCSNzZXQgKCRmaWx0ZXIgPSAkY29va2llRmlsdGVyKQoJCSNlbmQKCSNlbmQKCgkjIyBDdXJyZW50IFF1ZXJ5U3RyaW5ncyBvdmVycmlkZSBib3RoIHdpZGdldCBkZWZhdWx0cyBhbmQgY29va2llcwoJIyMgQnV0IHRoZXkgY291bGQgYWxzbyB1c2VyIHRoZWlyIG93biwgbGVnYWN5LCBub24tc3RhbmRhcmQgbmFtZXMgd2hpY2ggbmVlZCB0byBiZSBtYXBwZWQgdG8gbm9ybWFsaXplZCBBUEkgb3B0aW9ucwoJI3NldCAoJHF1ZXJ5U3RyaW5nRmlsdGVyID0gJGNvcmVfdjJfcGFnZS5HZXRRdWVyeVN0cmluZ1ZhbHVlKCJTb3J0IikpCgkjaWYgKCRxdWVyeVN0cmluZ0ZpbHRlcikKCQkjc2V0ICgkcXVlcnlTdHJpbmdGaWx0ZXIgPSAkcXVlcnlTdHJpbmdGaWx0ZXIuVG9Mb3dlcigpKQoJCSNpZiAoJHF1ZXJ5U3RyaW5nRmlsdGVyID09ICd1bnJlYWRvbmx5JykKCQkJI3NldCAoJGZpbHRlciA9ICdVbnJlYWQnKQoJCSNlbHNlCgkJCSMjIG90aGVyIGxlZ2FjeSBvcHRpb25zIGluY2x1ZGVkOiBhY3RpdmUsIHVuYW5zd2VyZWQsIGFuZCB5b3VyLAoJCQkjIyBlYWNoIG9mIHdoaWNoIGlzIHN0aWxsIHZhbGlkIGFsb25nc2lkZSBhbnkgbmV3IG9wdGlvbnMKCQkJI3NldCAoJGZpbHRlciA9ICRxdWVyeVN0cmluZ0ZpbHRlcikKCQkjZW5kCgoJCSMjIHJlLWFwcGx5IHRoZSBjdXJyZW50IGZpbHRlciBiYWNrIHRvIHRoZSBjb29raWUKCQkkY29yZV92Ml9wYWdlLlNldENvb2tpZVZhbHVlKCJUaHJlYWRGaWx0ZXIiLCAkZmlsdGVyKQoJI2VuZAoKCSNzZXQoJGNvb2tpZVNvcnRPcmRlciA9ICRjb3JlX3YyX3BhZ2UuR2V0Q29va2llVmFsdWUoIlRocmVhZFNvcnRPcmRlciIpKQoJI2lmICgkY29va2llU29ydE9yZGVyKQoJI3NldCgkc29ydE9yZGVyID0gJGNvb2tpZVNvcnRPcmRlcikKCSNlbmQKCSNzZXQgKCRxdWVyeVN0cmluZ1NvcnRPcmRlciA9ICRjb3JlX3YyX3BhZ2UuR2V0UXVlcnlTdHJpbmdWYWx1ZSgiU29ydE9yZGVyIikpCgkjaWYgKCRxdWVyeVN0cmluZ1NvcnRPcmRlcikKCSNzZXQgKCRzb3J0T3JkZXIgPSAkcXVlcnlTdHJpbmdTb3J0T3JkZXIpCgkkY29yZV92Ml9wYWdlLlNldENvb2tpZVZhbHVlKCJUaHJlYWRTb3J0T3JkZXIiLCAkc29ydE9yZGVyKQoJI2VuZAoJI3NldCgkY29va2llU29ydEJ5ID0gJGNvcmVfdjJfcGFnZS5HZXRDb29raWVWYWx1ZSgiVGhyZWFkU29ydEJ5IikpCgkjaWYgKCRjb29raWVTb3J0QnkpCgkjc2V0KCRzb3J0QnkgPSAkY29va2llU29ydEJ5KQoJI2VuZAoJI3NldCAoJHF1ZXJ5U3RyaW5nU29ydEJ5ID0gJGNvcmVfdjJfcGFnZS5HZXRRdWVyeVN0cmluZ1ZhbHVlKCJUaHJlYWRTb3J0QnkiKSkKCSNpZiAoJHF1ZXJ5U3RyaW5nU29ydEJ5KQoJCSNzZXQgKCRzb3J0QnkgPSAkcXVlcnlTdHJpbmdTb3J0QnkpCgkkY29yZV92Ml9wYWdlLlNldENvb2tpZVZhbHVlKCJUaHJlYWRTb3J0QnkiLCAkc29ydEJ5KQoJI2VuZAoKCSNpZiAoJHNvcnRCeS5Ub0xvd2VyKCkgPT0gJ2RhdGV0aW1lJykKCQkjc2V0ICgkc29ydEJ5ID0gJ0xhc3RQb3N0JykKCSNlbmQKCgk8ZGl2IGNsYXNzPSJzb3J0Ij4KCQk8Zm9ybT4KCQk8c3BhbiBjbGFzcz0iYnkiPgoJCQk8c2VsZWN0IGNsYXNzPSJ1aS1zZWxlY3QiIGlkPSIkY29yZV92Ml9lbmNvZGluZy5IdG1sQXR0cmlidXRlRW5jb2RlKCRjb3JlX3YyX3dpZGdldC5VbmlxdWVJZCgnc29ydEJ5JykpIiBkYXRhLXF1ZXJ5a2V5PSJUaHJlYWRTb3J0QnkiPgoJCQkJI3NldCAoJHNvcnRCeSA9ICRzb3J0QnkuVG9Mb3dlcigpKQoJCQkJPG9wdGlvbiB2YWx1ZT0iVG9waWMiICNpZigkc29ydEJ5ID09ICJ0b3BpYyIpIHNlbGVjdGVkICNlbmQ+JGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ1ZpZXdUaHJlYWRzX0ZpbHRlckJ5VG9waWMnKTwvb3B0aW9uPgoJCQkJPG9wdGlvbiB2YWx1ZT0iRGF0ZSIgI2lmKCRzb3J0QnkgPT0gImRhdGUiKSBzZWxlY3RlZCAjZW5kPiRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdDRl9Gb3J1bVRocmVhZExpc3RfU29ydF9EYXRlQXNrZWQnKTwvb3B0aW9uPgoJCQkJPG9wdGlvbiB2YWx1ZT0iTGFzdFBvc3QiICNpZigkc29ydEJ5ID09ICJsYXN0cG9zdCIpIHNlbGVjdGVkICNlbmQ+JGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0NGX0ZvcnVtVGhyZWFkTGlzdF9Tb3J0X0RhdGVUaW1lJyk8L29wdGlvbj4KCQkJCTxvcHRpb24gdmFsdWU9IlJlcGxpZXMiICNpZigkc29ydEJ5ID09ICJyZXBsaWVzIikgc2VsZWN0ZWQgI2VuZD4kY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnQ0ZfRm9ydW1UaHJlYWRMaXN0X1NvcnRfUmVwbGllcycpPC9vcHRpb24+CgkJCQk8b3B0aW9uIHZhbHVlPSJWaWV3cyIgI2lmKCRzb3J0QnkgPT0gInZpZXdzIikgc2VsZWN0ZWQgI2VuZD4kY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnQ0ZfRm9ydW1UaHJlYWRMaXN0X1NvcnRfVmlld3MnKTwvb3B0aW9uPgoJCQkJPG9wdGlvbiB2YWx1ZT0iVm90ZXMiICNpZigkc29ydEJ5ID09ICJ2b3RlcyIpIHNlbGVjdGVkICNlbmQ+JGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0NGX0ZvcnVtVGhyZWFkTGlzdF9Tb3J0X1ZvdGVzJyk8L29wdGlvbj4KCQkJCTxvcHRpb24gdmFsdWU9IlRvdGFsUXVhbGl0eVZvdGVzIiAjaWYoJHNvcnRCeSA9PSAidG90YWxxdWFsaXR5dm90ZXMiKSBzZWxlY3RlZCAjZW5kPiRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdDRl9Gb3J1bVRocmVhZExpc3RfU29ydF9RdWFsaXR5Vm90ZXMnKTwvb3B0aW9uPgoJCQkJPG9wdGlvbiB2YWx1ZT0iUXVhbGl0eVNjb3JlIiAjaWYoJHNvcnRCeSA9PSAicXVhbGl0eXNjb3JlIikgc2VsZWN0ZWQgI2VuZD4kY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnQ0ZfRm9ydW1UaHJlYWRMaXN0X1NvcnRfUXVhbGl0eScpPC9vcHRpb24+CgkJCTwvc2VsZWN0PgoJCTwvc3Bhbj4KCQk8c3BhbiBjbGFzcz0ib3JkZXIiPgoJCQk8c2VsZWN0IGNsYXNzPSJ1aS1zZWxlY3QiIGlkPSIkY29yZV92Ml9lbmNvZGluZy5IdG1sQXR0cmlidXRlRW5jb2RlKCRjb3JlX3YyX3dpZGdldC5VbmlxdWVJZCgnc29ydE9yZGVyJykpIiBkYXRhLXF1ZXJ5a2V5PSJTb3J0T3JkZXIiPgoJCQkJI3NldCAoJHNvcnRPcmRlciA9ICRzb3J0T3JkZXIuVG9Mb3dlcigpKQoJCQkJPG9wdGlvbiB2YWx1ZT0iRGVzY2VuZGluZyIgI2lmKCRzb3J0T3JkZXIgPT0gImRlc2NlbmRpbmciKSBzZWxlY3RlZCAjZW5kPiRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdTb3J0T3JkZXJEcm9wRG93bkxpc3RfRGVzYycpPC9vcHRpb24+CgkJCQk8b3B0aW9uIHZhbHVlPSJBc2NlbmRpbmciICNpZigkc29ydE9yZGVyID09ICJhc2NlbmRpbmciKSBzZWxlY3RlZCAjZW5kPiRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdTb3J0T3JkZXJEcm9wRG93bkxpc3RfQXNjJyk8L29wdGlvbj4KCQkJPC9zZWxlY3Q+CgkJPC9zcGFuPgoJCTwvZm9ybT4KCTwvZGl2PgoKCTxkaXYgY2xhc3M9InZpZXciPgoJCTxkaXY+CgkJCTxmb3JtPgoJCQk8c2VsZWN0IGNsYXNzPSJ1aS1zZWxlY3QiIGlkPSIkY29yZV92Ml9lbmNvZGluZy5IdG1sQXR0cmlidXRlRW5jb2RlKCRjb3JlX3YyX3dpZGdldC5VbmlxdWVJZCgnZmlsdGVyJykpIiBkYXRhLXF1ZXJ5a2V5PSJTb3J0Ij4KCQkJCSNzZXQgKCRmaWx0ZXIgPSAkZmlsdGVyLlRvTG93ZXIoKSkKCQkJCTxvcHRpb24gdmFsdWU9IkFjdGl2ZSIgI2lmICgkZmlsdGVyID09ICJhY3RpdmUiKSBzZWxlY3RlZCAjZW5kPgoJCQkJCSNpZiAoJGhhc0Rpc2N1c3Npb25Gb3J1bXMgJiYgJGhhc1FhRm9ydW1zKQoJCQkJCQkkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnQWxsUmVjZW50JykKCQkJCQkjZWxzZWlmICgkaGFzUWFGb3J1bXMpCgkJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdBbGxSZWNlbnRfUXVlc3Rpb25zJykKCQkJCQkjZWxzZQoJCQkJCQkkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnQWxsUmVjZW50X0Rpc2N1c3Npb25zJykKCQkJCQkjZW5kCgkJCQk8L29wdGlvbj4KCQkJCSNpZiAoJGFjY2Vzc2luZ1VzZXJJc1JlZ2lzdGVyZWQpCiAgICAJCQkJPG9wdGlvbiB2YWx1ZT0iVW5yZWFkIiAjaWYgKCRmaWx0ZXIgPT0gInVucmVhZCIpIHNlbGVjdGVkICNlbmQ+CiAgICAJCQkJCSNpZiAoJGhhc0Rpc2N1c3Npb25Gb3J1bXMgJiYgJGhhc1FhRm9ydW1zKQogICAgCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ1VucmVhZCcpCiAgICAJCQkJCSNlbHNlaWYgKCRoYXNRYUZvcnVtcykKICAgIAkJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdVbnJlYWRfUXVlc3Rpb25zJykKICAgIAkJCQkJI2Vsc2UKICAgIAkJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdVbnJlYWRfRGlzY3Vzc2lvbnMnKQogICAgCQkJCQkjZW5kCiAgICAJCQkJPC9vcHRpb24+CiAgICAJCQkjZW5kCiAgICAJCQkjaWYgKCRhY2Nlc3NpbmdVc2VySXNSZWdpc3RlcmVkICYmICEkY29udGV4dHVhbFVzZXIpCiAgICAJCQkJPG9wdGlvbiB2YWx1ZT0iTXlUaHJlYWRzIiAjaWYgKCRmaWx0ZXIgPT0gIm15dGhyZWFkcyIpIHNlbGVjdGVkICNlbmQ+CiAgICAJCQkJCSNpZiAoJGhhc0Rpc2N1c3Npb25Gb3J1bXMgJiYgJGhhc1FhRm9ydW1zKQogICAgCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ1lvdXInKQogICAgCQkJCQkjZWxzZWlmICgkaGFzUWFGb3J1bXMpCiAgICAJCQkJCQkkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnWW91cl9RdWVzdGlvbnMnKQogICAgCQkJCQkjZWxzZQogICAgCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ1lvdXJfRGlzY3Vzc2lvbnMnKQogICAgCQkJCQkjZW5kCiAgICAJCQkJPC9vcHRpb24+CiAgICAJCQkJPG9wdGlvbiB2YWx1ZT0iQXV0aG9yZWQiICNpZiAoJGZpbHRlciA9PSAiYXV0aG9yZWQiKSBzZWxlY3RlZCAjZW5kPgogICAgCQkJCQkjaWYgKCRoYXNEaXNjdXNzaW9uRm9ydW1zICYmICRoYXNRYUZvcnVtcykKICAgIAkJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdBdXRob3JlZCcpCiAgICAJCQkJCSNlbHNlaWYgKCRoYXNRYUZvcnVtcykKICAgIAkJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdBdXRob3JlZF9RdWVzdGlvbnMnKQogICAgCQkJCQkjZWxzZQogICAgCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0F1dGhvcmVkX0Rpc2N1c3Npb25zJykKICAgIAkJCQkJI2VuZAogICAgCQkJCTwvb3B0aW9uPgogICAgCQkJI2VuZAogICAgCQkJI2lmICgkY29udGV4dHVhbFVzZXIgJiYgJGNvbnRleHR1YWxVc2VyLklkICE9ICRhY2Nlc3NpbmdVc2VyLklkKQoJCQkJCTxvcHRpb24gdmFsdWU9IkNvbnRleHR1YWxNeVRocmVhZHMiICNpZiAoJGZpbHRlciA9PSAiY29udGV4dHVhbG15dGhyZWFkcyIpIHNlbGVjdGVkICNlbmQ+CgkJCQkJCSNpZiAoJGhhc0Rpc2N1c3Npb25Gb3J1bXMgJiYgJGhhc1FhRm9ydW1zKQoJCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0NvbnRleHR1YWxfWW91cicpCgkJCQkJCSNlbHNlaWYgKCRoYXNRYUZvcnVtcykKCQkJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdDb250ZXh0dWFsX1lvdXJfUXVlc3Rpb25zJykKCQkJCQkJI2Vsc2UKCQkJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdDb250ZXh0dWFsX1lvdXJfRGlzY3Vzc2lvbnMnKQoJCQkJCQkjZW5kCgkJCQkJPC9vcHRpb24+CgkJCQkJPG9wdGlvbiB2YWx1ZT0iQ29udGV4dHVhbEF1dGhvcmVkIiAjaWYgKCRmaWx0ZXIgPT0gImNvbnRleHR1YWxhdXRob3JlZCIpIHNlbGVjdGVkICNlbmQ+CgkJCQkJCSNpZiAoJGhhc0Rpc2N1c3Npb25Gb3J1bXMgJiYgJGhhc1FhRm9ydW1zKQoJCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0NvbnRleHR1YWxfQXV0aG9yZWQnKQoJCQkJCQkjZWxzZWlmICgkaGFzUWFGb3J1bXMpCgkJCQkJCQkkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnQ29udGV4dHVhbF9BdXRob3JlZF9RdWVzdGlvbnMnKQoJCQkJCQkjZWxzZQoJCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0NvbnRleHR1YWxfQXV0aG9yZWRfRGlzY3Vzc2lvbnMnKQoJCQkJCQkjZW5kCgkJCQkJPC9vcHRpb24+CgkJCQkjZW5kCgoJCQkJPG9wdGlvbiB2YWx1ZT0iVW5hbnN3ZXJlZCIgI2lmICgkZmlsdGVyID09ICJ1bmFuc3dlcmVkIikgc2VsZWN0ZWQgI2VuZD4KCQkJCQkjaWYgKCRoYXNEaXNjdXNzaW9uRm9ydW1zICYmICRoYXNRYUZvcnVtcykKCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ1VuYW5zd2VyZWQnKQoJCQkJCSNlbHNlaWYgKCRoYXNRYUZvcnVtcykKCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ1VuYW5zd2VyZWRfUXVlc3Rpb25zJykKCQkJCQkjZWxzZQoJCQkJCQkkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnVW5hbnN3ZXJlZF9EaXNjdXNzaW9ucycpCgkJCQkJI2VuZAoJCQkJPC9vcHRpb24+CgkJCQk8b3B0aW9uIHZhbHVlPSJBbnN3ZXJlZFdpdGhOb3RWZXJpZmllZCIgI2lmICgkZmlsdGVyID09ICJhbnN3ZXJlZHdpdGhub3R2ZXJpZmllZCIgfHwgJGZpbHRlciA9PSAiYW5zd2VyZWQiKSBzZWxlY3RlZCAjZW5kPgoJCQkJCSNpZiAoJGhhc0Rpc2N1c3Npb25Gb3J1bXMgJiYgJGhhc1FhRm9ydW1zKQoJCQkJCQkkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnQW5zd2VyZWRXaXRoTm90VmVyaWZpZWQnKQoJCQkJCSNlbHNlaWYgKCRoYXNRYUZvcnVtcykKCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0Fuc3dlcmVkV2l0aE5vdFZlcmlmaWVkX1F1ZXN0aW9ucycpCgkJCQkJI2Vsc2UKCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ0Fuc3dlcmVkV2l0aE5vdFZlcmlmaWVkX0Rpc2N1c3Npb25zJykKCQkJCQkjZW5kCgkJCQk8L29wdGlvbj4KCQkJCSNpZiAoJGluY2x1ZGVRdWVzdGlvbnMgJiYgJGhhc1FhRm9ydW1zKQoJCQkJCTxvcHRpb24gdmFsdWU9IkFuc3dlcmVkTm90VmVyaWZpZWQiICNpZiAoJGZpbHRlciA9PSAiYW5zd2VyZWRub3R2ZXJpZmllZCIpIHNlbGVjdGVkICNlbmQ+CgkJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdBbnN3ZXJlZE5vdFZlcmlmaWVkJykKCQkJCQk8L29wdGlvbj4KCQkJCSNlbmQKCQkJCTxvcHRpb24gdmFsdWU9Ik5vUmVzcG9uc2UiICNpZiAoJGZpbHRlciA9PSAibm9yZXNwb25zZSIpIHNlbGVjdGVkICNlbmQ+CgkJCQkJI2lmICgkaGFzRGlzY3Vzc2lvbkZvcnVtcyAmJiAkaGFzUWFGb3J1bXMpCgkJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdOb1Jlc3BvbnNlJykKCQkJCQkjZWxzZWlmICgkaGFzUWFGb3J1bXMpCgkJCQkJCSRjb3JlX3YyX2xhbmd1YWdlLkdldFJlc291cmNlKCdOb1Jlc3BvbnNlX1F1ZXN0aW9ucycpCgkJCQkJI2VuZAoJCQkJPC9vcHRpb24+CgkJCTwvc2VsZWN0PgoJCQk8L2Zvcm0+CgkJPC9kaXY+Cgk8L2Rpdj4KCgkjcmVnaXN0ZXJFbmRPZlBhZ2VIdG1sKCkKCQk8c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+CgkJalF1ZXJ5KGZ1bmN0aW9uKGopewoJCQl2YXIgZmlsdGVyU2VsZWN0ID0gaignIyRjb3JlX3YyX2VuY29kaW5nLkphdmFzY3JpcHRFbmNvZGUoJGNvcmVfdjJfd2lkZ2V0LlVuaXF1ZUlkKCdmaWx0ZXInKSknKSwKCQkJCXNvcnRCeVNlbGVjdCA9IGooJyMkY29yZV92Ml9lbmNvZGluZy5KYXZhc2NyaXB0RW5jb2RlKCRjb3JlX3YyX3dpZGdldC5VbmlxdWVJZCgnc29ydEJ5JykpJyksCgkJCQlzb3J0T3JkZXJTZWxlY3QgPSBqKCcjJGNvcmVfdjJfZW5jb2RpbmcuSmF2YXNjcmlwdEVuY29kZSgkY29yZV92Ml93aWRnZXQuVW5pcXVlSWQoJ3NvcnRPcmRlcicpKScpOwoKCQkJZnVuY3Rpb24gYWRqdXN0SGFzaCgpIHsKCQkJCXZhciBzZWxlY3QgPSBqKHRoaXMpOwoJCQkJdmFyIGhhc2hBZGp1c3RtZW50ID0ge307CgkJCQloYXNoQWRqdXN0bWVudFtzZWxlY3QuZGF0YSgncXVlcnlrZXknKV0gPSBzZWxlY3QudmFsKCk7CgkJCQlqLnRlbGxpZ2VudC5ldm9sdXRpb24udXJsLmhhc2hEYXRhKGhhc2hBZGp1c3RtZW50LCB7CgkJCQkJcHJlZml4OiAnJGNvcmVfdjJfZW5jb2RpbmcuSmF2YXNjcmlwdEVuY29kZSgkY29yZV92Ml91aS5QYWdlSW5kZXhRdWVyeVN0cmluZ0tleSknCgkJCQl9KTsKCQkJfQoKCQkJZmlsdGVyU2VsZWN0Lm9uKCdjaGFuZ2UnLCBhZGp1c3RIYXNoKTsKCQkJc29ydEJ5U2VsZWN0Lm9uKCdjaGFuZ2UnLCBhZGp1c3RIYXNoKTsKCQkJc29ydE9yZGVyU2VsZWN0Lm9uKCdjaGFuZ2UnLCBhZGp1c3RIYXNoKTsKCQl9KTsKCQk8L3NjcmlwdD4KCSNlbmQKCiNlbmQKCgojIyBBbnkgcmVxdWVzdCBmb3IgY29udGVudCBxdWFsaXR5IHNvcnRpbmcgc2hvdWxkIGJlIHRyYW5zbGF0ZWQgdG8gdGhlIEFQSS1yZWFkeSBTY29yZTpJRCBmb3JtYXQKI2lmICgkc29ydEJ5LlRvTG93ZXIoKSA9PSAnY29udGVudHF1YWxpdHknKQoJI3NldCAoJHNvcnRCeSA9ICJTY29yZToke2NvcmVfdjJfY29udGVudFF1YWxpdHlTY29yZS5TY29yZUlkfSIpCiNlbmQKCgojIyBRdWVyeSBmb3IgdGhyZWFkcwojc2V0ICgkb3B0aW9ucyA9ICIle1NvcnRCeSA9ICckc29ydEJ5JywgU29ydE9yZGVyID0gJyRzb3J0T3JkZXInLCBQb3B1bGFyT25seSA9ICRwb3B1bGFyT25seSwgSW5jbHVkZVN1Ykdyb3VwcyA9ICRpbmNsdWRlU3ViR3JvdXBzLCBQYWdlU2l6ZSA9ICRwYWdlU2l6ZSwgUGFnZUluZGV4ID0gJHBhZ2VJbmRleCwgSW5jbHVkZURpc2N1c3Npb25zID0gJGluY2x1ZGVEaXNjdXNzaW9ucywgSW5jbHVkZVF1ZXN0aW9ucyA9ICRpbmNsdWRlUXVlc3Rpb25zLCBBcmVTdGlja3lQb3N0c09uVG9wID0gJGFyZVN0aWNreVBvc3RzT25Ub3AgfSIpCiNpZiAoJGdyb3VwSWQgJiYgJGdyb3VwSWQgPiAwKQogICAgJG9wdGlvbnMuQWRkKCdHcm91cElkJywkZ3JvdXBJZCkKI2Vsc2VpZigkZm9ydW1JZCAmJiAkZm9ydW1JZCA+MCkKICAgICRvcHRpb25zLkFkZCgnRm9ydW1JZCcsJGZvcnVtSWQpCiNlbmQKCiNpZiAoJGZpbHRlci5Ub0xvd2VyKCkgPT0gJ2NvbnRleHR1YWxteXRocmVhZHMnIHx8ICRmaWx0ZXIuVG9Mb3dlcigpID09ICdjb250ZXh0dWFsYXV0aG9yZWQnKQoJI3NldCAoJGN1cnJlbnRVc2VyID0gJGNvcmVfdjJfdXNlci5DdXJyZW50KQoJI2lmICgkY3VycmVudFVzZXIpCgkJJG9wdGlvbnMuQWRkKCdBdXRob3JJZCcsICRjdXJyZW50VXNlci5JZCkKCQkjaWYgKCRmaWx0ZXIuVG9Mb3dlcigpID09ICdjb250ZXh0dWFsbXl0aHJlYWRzJykKCQkJI3NldCAoJGZpbHRlciA9ICdNeVRocmVhZHMnKQoJCSNlbHNlaWYoJGZpbHRlci5Ub0xvd2VyKCkgPT0gJ2NvbnRleHR1YWxhdXRob3JlZCcpCgkJCSNzZXQgKCRmaWx0ZXIgPSAnQXV0aG9yZWQnKQoJCSNlbmQKCSNlbmQKI2VuZAoKCiNpZiAoJGFnZSA8IDApCiAgICAkb3B0aW9ucy5BZGQoJ0NyZWF0ZWRBZnRlckRhdGUnLCAkY29yZV92Ml91dGlsaXR5LkN1cnJlbnREYXRlLkFkZE1vbnRocygkYWdlKSkKI2VuZA==</file>
    			<file name="sidebar.vm">JGNvcmVfdjJfd2lkZ2V0LkV4ZWN1dGVGaWxlKCdzZXRxdWVyeS52bScpDQoNCiNzZXQgKCR0aHJlYWRzID0gJGNvcmVfdjJfZm9ydW1UaHJlYWQuTGlzdCgkZmlsdGVyLCAkb3B0aW9ucykpDQoNCiNmb3JlYWNoICgkdGhyZWFkIGluICR0aHJlYWRzKQ0KI2JlZm9yZWFsbA0KCTxkaXYgY2xhc3M9ImF2YXRhci1saXN0Ij4NCgk8dWwgY2xhc3M9ImNvbnRlbnQtbGlzdCI+DQojZWFjaA0KCSNzZXQoJGF1dGhvciA9ICR0aHJlYWQuQXV0aG9yKQ0KDQoJPGxpIGNsYXNzPSJjb250ZW50LWl0ZW0iIGRhdGEtaHJlZj0iJGNvcmVfdjJfZW5jb2RpbmcuSHRtbEF0dHJpYnV0ZUVuY29kZSgkdGhyZWFkLlVybCkiPg0KCQk8ZGl2IGNsYXNzPSJhdXRob3IiPg0KCQkJPGRpdiBjbGFzcz0iYXZhdGFyIj4NCgkJCQkkY29yZV92Ml91aS5HZXRSZXNpemVkSW1hZ2VIdG1sKCRhdXRob3IuQXZhdGFyVXJsLCAzNSwgMzUsICIle2JvcmRlcj0nMHB4JywgYWx0PSRhdXRob3IuRGlzcGxheU5hbWUsIFJlc2l6ZU1ldGhvZD0nWm9vbUFuZENyb3AnfSIpDQoJCQk8L2Rpdj4NCgkJCTxhIGhyZWY9IiRjb3JlX3YyX2VuY29kaW5nLkh0bWxBdHRyaWJ1dGVFbmNvZGUoJHRocmVhZC5VcmwpIiBjbGFzcz0iaW50ZXJuYWwtbGluayB2aWV3LWZ1bGwtcG9zdCBuYXZpZ2FibGUgdWktdGlwIiBkYXRhLXRpcD0iJGNvcmVfdjJfZW5jb2RpbmcuSHRtbEF0dHJpYnV0ZUVuY29kZSgkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnVmlldycpKSI+DQoJCQkJPGRpdiBjbGFzcz0iY29udGVudCI+JGNvcmVfdjJfbGFuZ3VhZ2UuVHJ1bmNhdGUoJHRocmVhZC5TdWJqZWN0LCAyMDAsICIuLi4iKTwvZGl2Pg0KCQkJPC9hPg0KCQkJPGRpdiBjbGFzcz0ibWV0YSI+DQoJCQkJI2lmICgkdGhyZWFkLlRocmVhZFR5cGUgPT0gIlF1ZXN0aW9uQW5kQW5zd2VyIikNCgkJCQkJPHNwYW4gY2xhc3M9IiR0aHJlYWQuVGhyZWFkU3RhdHVzIj4NCgkJCQkJCSNpZiAoJHRocmVhZC5UaHJlYWRTdGF0dXMgPT0gJ0Fuc3dlcmVkJykNCgkJCQkJCQkkY29yZV92Ml9sYW5ndWFnZS5HZXRSZXNvdXJjZSgnU3RhdHVzX1ZlcmlmaWVkQW5zd2VyJykNCgkJCQkJCSNlbHNlaWYgKCR0aHJlYWQuVGhyZWFkU3RhdHVzID09ICdOb3RBbnN3ZXJlZCcpDQoJCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ1N0YXR1c19Ob3RBbnN3ZXJlZCcpDQoJCQkJCQkjZWxzZWlmICgkdGhyZWFkLlRocmVhZFN0YXR1cyA9PSAnQW5zd2VyZWROb3RWZXJpZmllZCcpDQoJCQkJCQkJJGNvcmVfdjJfbGFuZ3VhZ2UuR2V0UmVzb3VyY2UoJ1N0YXR1c19TdWdnZXN0ZWRBbnN3ZXInKQ0KCQkJCQkJI2VuZA0KCQkJCQk8L3NwYW4+DQoJCQkJI2VuZA0KCQkJCTxhIGhyZWY9IiRjb3JlX3YyX2VuY29kaW5nLkh0bWxBdHRyaWJ1dGVFbmNvZGUoJHRocmVhZC5VcmwpIiBjbGFzcz0iaW50ZXJuYWwtbGluayB2aWV3LXBvc3QgbmF2aWdhYmxlIj4NCgkJCQkJJGNvcmVfdjJfdWkuQWdvRGF0ZSgkdGhyZWFkLkNyZWF0ZWREYXRlKQ0KCQkJCTwvYT4NCgkJCTwvZGl2Pg0KCQk8L2Rpdj4NCgk8L2xpPg0KI2FmdGVyYWxsDQoJPC91bD4NCgk8L2Rpdj4NCiNub2RhdGENCgkkY29yZV92Ml93aWRnZXQuSGlkZSgpDQojZW5kDQo=</file>
    			<file name="style.less">LnNjYWxlX3JlcGxhY2VkX2ljb24oQHNpemU6IC1ldm8tdGhlbWVjb25maWctdW5pdCgnYmFzZUZvbnRTaXplVmFsdWUnLCAxNHB4KSwgQHBhZGRpbmc6IDBweCkgew0KCXdpZHRoOiBAc2l6ZSArIChAcGFkZGluZyAqIDIpOw0KCWhlaWdodDogQHNpemUgKyAoQHBhZGRpbmcgKiAyKTsNCgkmOmJlZm9yZSB7DQoJCXdpZHRoOiBAc2l6ZSArIChAcGFkZGluZyAqIDIpOw0KCQloZWlnaHQ6IEBzaXplICsgKEBwYWRkaW5nICogMik7DQoJCXRvcDogQHBhZGRpbmc7DQoJCWZvbnQtc2l6ZTogQHNpemU7DQoJCWxpbmUtaGVpZ2h0OiBAc2l6ZTsNCgl9DQp9DQouY29udGVudC1mcmFnbWVudC50aHJlYWQtbGlzdCB7DQogICAgLmNvbnRlbnQtbGlzdC50YWJ1bGFyIHsNCgkJdGFibGUtbGF5b3V0OiBmaXhlZDsNCgkJd2lkdGg6IDEwMCU7DQogICAgICAgID4gLmNvbnRlbnQtaXRlbSB7DQogICAgCQkuY2VsbCB7IHdpZHRoOiAxMCUgfQ0KICAgIAkJLmNlbGwuaWNvbiB7IHdpZHRoOiAzJSB9DQogICAgCQkuY2VsbC5uYW1lIHsgd2lkdGg6IDU3JTsgfQ0KICAgIAkJLmNlbGwubGF0ZXN0IHsgd2lkdGg6IDIwJTsgbWF4LXdpZHRoOiBub25lOyB9DQogICAgICAgIH0NCgl9DQogICAgDQoJLmNvbnRlbnQtbGlzdC5jb250ZW50ID4gLmNvbnRlbnQtaXRlbSB7DQoJCSYucHJldmlldyB7IGRpc3BsYXk6IG5vbmU7IH0NCgkJJi5wcmV2aWV3LnByZXZpZXdpbmcgeyBkaXNwbGF5OiB0YWJsZS1yb3c7IH0NCgkJLmljb24gew0KCQkJc3BhbiwgYSB7DQoJCQkJJi5kaXNjdXNzaW9uIHsNCgkJCQkJY29sb3I6IGNvbnRyYXN0KC1ldm8tdGhlbWVjb25maWctY29sb3IoJ2ZvcmVncm91bmRDb2xvcicsICMxMTE3MUEpLCBkYXJrZW4oLWV2by10aGVtZWNvbmZpZy1jb2xvcignZm9yZWdyb3VuZENvbG9yJywgIzExMTcxQSksIDc1JSksIGxpZ2h0ZW4oLWV2by10aGVtZWNvbmZpZy1jb2xvcignZm9yZWdyb3VuZENvbG9yJywgIzExMTcxQSksIDc1JSkpOw0KCQkJCQkuc2NhbGVfcmVwbGFjZWRfaWNvbigtZXZvLXRoZW1lY29uZmlnLXVuaXQoJ2Jhc2VGb250U2l6ZVZhbHVlJywgMTRweCkgKiAxLjIsIDEwcHggLyAyKTsNCgkJCQl9DQoJCQkJJi52ZXJpZmllZCB7DQoJCQkJCWNvbG9yOiAtZXZvLXRoZW1lY29uZmlnLWNvbG9yKCdzdGF0ZVBvc2l0aXZlJywgIzlDQ0M2NSk7DQoJCQkJCS5zY2FsZV9yZXBsYWNlZF9pY29uKC1ldm8tdGhlbWVjb25maWctdW5pdCgnYmFzZUZvbnRTaXplVmFsdWUnLCAxNHB4KSAqIDEuNSwgMTBweCAvIDIpOw0KCQkJCQl0b3A6IC0zcHg7DQoJCQkJfQ0KCQkJCSYuc3VnZ2VzdGVkIHsNCgkJCQkJY29sb3I6IC1ldm8tdGhlbWVjb25maWctY29sb3IoJ3N0YXRlUGVuZGluZycsICNGRkIzMDApOw0KCQkJCQkuc2NhbGVfcmVwbGFjZWRfaWNvbigtZXZvLXRoZW1lY29uZmlnLXVuaXQoJ2Jhc2VGb250U2l6ZVZhbHVlJywgMTRweCkgKiAxLjUsIDEwcHggLyAyKTsNCgkJCQkJdG9wOiAtM3B4Ow0KCQkJCX0NCgkJCQkmLnVuYW5zd2VyZWQgew0KCQkJCQljb2xvcjogY29udHJhc3QoLWV2by10aGVtZWNvbmZpZy1jb2xvcignZm9yZWdyb3VuZENvbG9yJywgIzExMTcxQSksIGRhcmtlbigtZXZvLXRoZW1lY29uZmlnLWNvbG9yKCdmb3JlZ3JvdW5kQ29sb3InLCAjMTExNzFBKSwgNzUlKSwgbGlnaHRlbigtZXZvLXRoZW1lY29uZmlnLWNvbG9yKCdmb3JlZ3JvdW5kQ29sb3InLCAjMTExNzFBKSwgNzUlKSk7DQoJCQkJCS5zY2FsZV9yZXBsYWNlZF9pY29uKC1ldm8tdGhlbWVjb25maWctdW5pdCgnYmFzZUZvbnRTaXplVmFsdWUnLCAxNHB4KSAqIDEuMiwgMTBweCAvIDIpOw0KCQkJCX0NCgkJCX0NCgkJfQ0KCQkuY29udGVudC5hYmJyZXZpYXRlZCAgew0KCQkJLm5hbWUgew0KCQkJCWZvbnQtc2l6ZTogMjRweDsNCgkJCQltYXJnaW4tcmlnaHQ6IDI1NXB4Ow0KCQkJfQ0KCQkJLmF1dGhvciB7DQoJCQkJdG9wOiAtNnB4Ow0KCQkJCS5hdmF0YXIgew0KCQkJCQl0b3A6IDZweDsNCgkJCQl9DQoJCQl9DQoJCQkuYXV0aG9yLA0KCQkJLmNvbnRlbnQtZnJhZ21lbnQudGhyZWFkLWxpc3QgLmNvbnRlbnQuYWJicmV2aWF0ZWQgLmF0dHJpYnV0ZXMgew0KCQkJCXdpZHRoOiAyNDBweDsNCgkJCX0NCgkJCS5hdHRyaWJ1dGVzIHsNCgkJCQlwb3NpdGlvbjogcmVsYXRpdmU7DQoJCQkJdG9wOiAtNnB4Ow0KCQkJfQ0KCQkJLnJlcGx5LXZvdGVzIHsNCgkJCQlhIHsNCgkJCQkJY29sb3I6IGRhcmtlbihjb250cmFzdCgtZXZvLXRoZW1lY29uZmlnLWNvbG9yKCdmb3JlZ3JvdW5kQ29sb3InLCAjMTExNzFBKSwgZGFya2VuKC1ldm8tdGhlbWVjb25maWctY29sb3IoJ2ZvcmVncm91bmRDb2xvcicsICMxMTE3MUEpLCA2MiUpLCBsaWdodGVuKC1ldm8tdGhlbWVjb25maWctY29sb3IoJ2ZvcmVncm91bmRDb2xvcicsICMxMTE3MUEpLCA2MiUpKSwgMTAlKTsNCgkJCQkJJjpiZWZvcmUgew0KCQkJCQkJZm9udC1zaXplOiAtZXZvLXRoZW1lY29uZmlnLXVuaXQoJ2Jhc2VGb250U2l6ZVZhbHVlJywgMTRweCkgKiAuOTsNCgkJCQkJfQ0KCQkJCX0NCgkJCX0NCgkJfQ0KCX0NCgkudWktZm9ydW1xdWFsaXR5dm90ZXMgew0KCQkmW2RhdGEtc2NvcmU9IjAiXSB7DQoJCQlkaXNwbGF5OiBub25lOw0KCQl9DQoJCS50aHJlYWQtdm90ZSB7DQoJCQlkaXNwbGF5OiBpbmxpbmU7DQoJCX0NCgkJYS52b3RlLCAudm90ZS1pbmRpY2F0b3Igew0KCQkJZGlzcGxheTogbm9uZTsNCgkJfQ0KCQkuc2NvcmUgew0KCQkJY3Vyc29yOiBwb2ludGVyOw0KCQkJcG9zaXRpb246IHJlbGF0aXZlOw0KCQkJZm9udC1zaXplOiAtZXZvLXRoZW1lY29uZmlnLXVuaXQoJ2Jhc2VGb250U2l6ZVZhbHVlJywgMTRweCkgKi44Ow0KCQkJdG9wOiAtMXB4Ow0KCQkJcGFkZGluZy1sZWZ0OiA1cHg7DQoJCQl3aGl0ZS1zcGFjZTogbm93cmFwOw0KCQkJbWFyZ2luLWxlZnQ6IDFweDsNCgkJCWNvbG9yOiAtZXZvLXRoZW1lY29uZmlnLWNvbG9yKCdmb3JlZ3JvdW5kQ29sb3InLCAjMTExNzFBKTsNCgkJfQ0KCX0NCn0NCg0KQG1lZGlhIG9ubHkgc2NyZWVuIGFuZCAobWF4LXdpZHRoOiAtZXZvLXRoZW1lY29uZmlnLXVuaXQoJ21pbldpZHRoJywgNjcwcHgpKSB7DQoJLmNvbnRlbnQtZnJhZ21lbnQudGhyZWFkLWxpc3Qgew0KCQkuY29udGVudC1saXN0LnRhYnVsYXIgLmNvbnRlbnQtaXRlbSB7DQoJCQlwb3NpdGlvbjogcmVsYXRpdmU7DQoJCQlkaXNwbGF5OiBibG9jazsNCg0KCQkJJi5wcmV2aWV3aW5nIHsNCgkJCQlib3JkZXItYm90dG9tOiAxcHggc29saWQgbGlnaHRlbihjb250cmFzdCgtZXZvLXRoZW1lY29uZmlnLWNvbG9yKCdmb3JlZ3JvdW5kQ29sb3InLCAjMTExNzFBKSwgZGFya2VuKC1ldm8tdGhlbWVjb25maWctY29sb3IoJ2ZvcmVncm91bmRDb2xvcicsICMxMTE3MUEpLCA2MiUpLCBsaWdodGVuKC1ldm8tdGhlbWVjb25maWctY29sb3IoJ2ZvcmVncm91bmRDb2xvcicsICMxMTE3MUEpLCA2MiUpKSwgMjAlKTsNCgkJCX0NCg0KCQkJJi5wcmV2aWV3IHsgZGlzcGxheTogbm9uZTsgfQ0KCQkJJi5wcmV2aWV3LnByZXZpZXdpbmcgew0KCQkJCWRpc3BsYXk6IGJsb2NrOw0KCQkJCS5jZWxsLmNvbnRlbnQgew0KCQkJCQkuY29udGVudC5pbmxpbmUgew0KCQkJCQkJbWFyZ2luOiAwOw0KCQkJCQl9DQoJCQkJCWJvcmRlci1ib3R0b20td2lkdGg6IDA7DQoJCQkJfQ0KCQkJCWJvcmRlci1ib3R0b206IDFweCBzb2xpZCBsaWdodGVuKGNvbnRyYXN0KC1ldm8tdGhlbWVjb25maWctY29sb3IoJ2ZvcmVncm91bmRDb2xvcicsICMxMTE3MUEpLCBkYXJrZW4oLWV2by10aGVtZWNvbmZpZy1jb2xvcignZm9yZWdyb3VuZENvbG9yJywgIzExMTcxQSksIDYyJSksIGxpZ2h0ZW4oLWV2by10aGVtZWNvbmZpZy1jb2xvcignZm9yZWdyb3VuZENvbG9yJywgIzExMTcxQSksIDYyJSkpLCAxNSUpOw0KCQkJfQ0KDQoJCQkuY2VsbCB7IHBhZGRpbmctbGVmdDogKC1ldm8tdGhlbWVjb25maWctdW5pdCgnYmFzZUZvbnRTaXplVmFsdWUnLCAxNHB4KSAqIDEuMikgKyAoMTBweCAqIDEuNSk7IHdpZHRoOiBhdXRvOyB9DQoJCQkuY2VsbC5pY29uIHsgcG9zaXRpb246IGFic29sdXRlOyB0b3A6IDVweDsgbGVmdDogMDsgcGFkZGluZy1sZWZ0OiAwOyB3aWR0aDogYXV0bzsgfQ0KCQkJLmNlbGwubmFtZSB7IG1pbi1oZWlnaHQ6ICgtZXZvLXRoZW1lY29uZmlnLXVuaXQoJ2Jhc2VGb250U2l6ZVZhbHVlJywgMTRweCkgKiAxLjIpICsgMTBweDsgcGFkZGluZy10b3A6IDA7IHdpZHRoOiBhdXRvOyB9DQoJCQkuY2VsbC5zdXBwbGVtZW50YXJ5IHsgZGlzcGxheTogbm9uZTsgfQ0KCQkJLmNlbGwubGF0ZXN0IHsgd2lkdGg6IGF1dG87IH0NCgkJCS5jZWxsLmxhdGVzdCBiciB7IGRpc3BsYXk6IGlubGluZTsgbWFyZ2luOiAwIC4zM2V4IDAgMDsgcGFkZGluZzogMDsgY29udGVudDogJyAnOyB9DQoJCX0NCgl9DQp9</file>
    		</files>
    	</scriptedContentFragment>
    </scriptedContentFragments>

  • Oh sweet. I'll enable this sometime soon and have a happy user. Thank you!