PageSourceSearch

https://www.fanverse.org/whats-new/ubs-blog-entries/

html fanverse.org collected 2026-10-02 05:59:44 UTC 60,570 bytes, 2,125 lines download raw bytes

1<!DOCTYPE html>
2<html id="XF" lang="en-US" dir="LTR"
3	data-xf="2.3"
4	data-app="public"
5	
6	
7	data-template="xa_ubs_whats_new_blog_entries"
8	data-container-key=""
9	data-content-key=""
10	data-logged-in="false"
11	data-cookie-prefix="xf_"
12	data-csrf="1790920782,5f14a530f0aa465bc865ad086b2b8e66"
13	class="has-no-js template-xa_ubs_whats_new_blog_entries"
14	>
15<head>
16	
17	
18	
19
20	<meta charset="utf-8" />
21	<title>New blog entries | FanVerse</title>
22	<link rel="manifest" href="/webmanifest.php">
23	<link href="/opensans.css" rel="stylesheet">
24
25	<meta http-equiv="X-UA-Compatible" content="IE=Edge" />
26	<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover">
27
28	
29		<meta name="theme-color" content="#272727" />
30	
31
32	<meta name="apple-mobile-web-app-title" content="FanVerse">
33	
34		<link rel="apple-touch-icon" href="/styles/pwa/192x192.png">
35		
36
37	
38		<meta name="robots" content="noindex" />
39	
40
41	
42		
43	
44	
45	<meta property="og:site_name" content="FanVerse" />
46
47
48	
49	
50		
51	
52	
53	<meta property="og:type" content="website" />
54
55
56	
57	
58		
59	
60	
61	
62		<meta property="og:title" content="New blog entries" />
63		<meta property="twitter:title" content="New blog entries" />
64	
65
66
67	
68	
69	
70		
71	
72	
73	<meta property="og:url" content="https://www.fanverse.org/whats-new/ubs-blog-entries/" />
74
75
76	
77	
78
79	
80	
81	
82	
83
84	<link rel="stylesheet" href="/css.php?css=public%3Anormalize.css%2Cpublic%3Afa.css%2Cpublic%3Acore.less%2Cpublic%3Aapp.less&amp;s=1&amp;l=1&amp;d=1790890032&amp;k=05e89bcae4b310806a6922d715a2f467ba0a9b23" />
85
86	
87
88<link rel="stylesheet" href="/css.php?css=public%3Aozzmodz_badges.less%2Cpublic%3Aextra.less&amp;s=1&amp;l=1&amp;d=1790890032&amp;
88k=c8529761a65af7b6cbc17677631daf900ba87eb1" />
89
90
91
92
93	
94		
94<script src="/js/xf/preamble.min.js?_v=461a0a82"></script>
94
95	
96
97	
98	
98<script src="/js/vendor/vendor-compiled.js?_v=461a0a82" defer></script>
98
99	
99<script src="/js/xf/core-compiled.js?_v=461a0a82" defer></script>
99
100
101	
101<script>
102		XF.ready(() =>
103		{
104			XF.extendObject(true, XF.config, {
105				// 
106				userId: 0,
107				enablePush: true,
108				pushAppServerKey: 'BKu70K7hacapzW5rsw_slABl7z2dBFBfmsmsFakmex_lzRnhKEoa-vJYHoNdA8D0Ox5EGXSlduBnGDenMAprrT8',
109				url: {
110					fullBase: 'https://www.fanverse.org/',
111					basePath: '/',
112					css: '/css.php?css=__SENTINEL__&s=1&l=1&d=1790890032',
113					js: '/js/__SENTINEL__?_v=461a0a82',
114					icon: '/data/local/icons/__VARIANT__.svg?v=1790889936#__NAME__',
115					iconInline: '/styles/fa/__VARIANT__/__NAME__.svg?v=5.15.3',
116					keepAlive: '/login/keep-alive'
117				},
118				cookie: {
119					path: '/',
120					domain: '',
121					prefix: 'xf_',
122					secure: true,
123					consentMode: 'disabled',
124					consented: ["optional","_third_party"]
125				},
126				cacheKey: 'f3ed7234243583f554e27d349fe769c5',
127				csrf: '1790920782,5f14a530f0aa465bc865ad086b2b8e66',
128				js: {},
129				fullJs: false,
130				css: {"public:ozzmodz_badges.less":true,"public:extra.less":true},
131				time: {
132					now: 1790920782,
133					today: 1790913600,
134					todayDow: 5,
135					tomorrow: 1791000000,
136					yesterday: 1790827200,
137					week: 1790395200,
138					month: 1790827200,
139					year: 1767243600
140				},
141				style: {
142					light: '',
143					dark: '',
144					defaultColorScheme: 'light'
145				},
146				borderSizeFeature: '3px',
147				fontAwesomeWeight: 'r',
148				enableRtnProtect: true,
149				
150				enableFormSubmitSticky: true,
151				imageOptimization: 'optimize',
152				imageOptimizationQuality: 0.9,
153				uploadMaxFilesize: 67108864,
154				uploadMaxWidth: 0,
155				uploadMaxHeight: 0,
156				allowedVideoExtensions: ["m4v","mov","mp4","mp4v","mpeg","mpg","ogv","webm"],
157				allowedAudioExtensions: ["mp3","opus","ogg","wav"],
158				shortcodeToEmoji: true,
159				visitorCounts: {
160					conversations_unread: '0',
161					alerts_unviewed: '0',
162					total_unread: '0',
163					title_count: true,
164					icon_indicator: true
165				},
166				jsMt: {"xf\/action.js":"828c762d","xf\/embed.js":"828c762d","xf\/form.js":"828c762d","xf\/structure.js":"828c762d","xf\/tooltip.js":"828c762d"},
167				jsState: {},
168				publicMetadataLogoUrl: '',
169				publicPushBadgeUrl: 'https://www.fanverse.org/styles/default/xenforo/bell.png'
170			})
171
172			XF.extendObject(XF.phrases, {
173				// 
174"svStandardLib_time.day": "{count} day",
175"svStandardLib_time.days": "{count} days",
176"svStandardLib_time.hour": "{count} hour",
177"svStandardLib_time.hours": "{count} hours",
178"svStandardLib_time.minute": "{count} minutes",
179"svStandardLib_time.minutes": "{count} minutes",
180"svStandardLib_time.month": "{count} month",
181"svStandardLib_time.months": "{count} months",
182"svStandardLib_time.second": "{count} second",
183"svStandardLib_time.seconds": "{count} seconds",
184"svStandardLib_time.week": "time.week",
185"svStandardLib_time.weeks": "{count} weeks",
186"svStandardLib_time.year": "{count} year",
187"svStandardLib_time.years": "{count} years",
188
189fv_transcription_button: "Transcribe audio",
190fv_transcription_file_info: "{name} ({size})",
191fv_transcription_record_start: "Record audio",
192fv_transcription_record_stop: "Stop recording",
193fv_transcription_recording: "Recording… {time}",
194fv_transcription_record_denied: "Microphone access was denied.",
195fv_transcription_record_unsupported: "Audio recording is not supported in this browser.",
196fv_transcription_record_error: "The recording could not be started.",
197fv_transcription_preload: "Load model",
198fv_transcription_preloading: "Loading model… {progress}%",
199fv_transcription_preloaded: "Model loaded.",
200fv_transcription_preload_failed: "The model could not be loaded.",
201fv_transcription_status_preparing: "Preparing audio…",
202fv_transcription_status_retrying: "Network problem. Retrying in {seconds}s…",
203fv_transcription_status_loading: "Loading {file}…",
204fv_transcription_status_loading_mb: "Loading {file} — {loaded} of {total}",
205fv_transcription_status_downloading: "Downloading model files — {loaded} of {total}",
206fv_transcription_status_loading_model: "Loading model…",
207fv_transcription_status_ready: "Model ready.",
208fv_transcription_status_detecting: "Detecting language…",
209fv_transcription_status_cancelled: "Cancelled.",
210fv_transcription_status_transcribing: "Transcribing…",
211fv_transcription_status_window: "Window {current} of ~{total} · {remaining} remaining · {skipped} silent skipped",
212fv_transcription_status_window_unknown: "Window {current} of ~{total} · {skipped} silent skipped",
213fv_transcription_status_window_no_skip: "Window {current} of ~{total} · {remaining} remaining",
214fv_transcription_status_window_unknown_no_skip: "Window {current} of ~{total}",
215fv_transcription_status_cached: "Loaded from browser cache.",
216fv_transcription_status_done: "Transcription complete.",
217fv_transcription_status_done_engine: "Transcription complete ({device}, {dtype}).",
218fv_transcription_error_unsupported: "Unsupported audio format. Use MP3, MP4, WAV, M4A, WebM, or OGG.",
219fv_transcription_error_too_large: "The audio file exceeds the maximum size of {maxSize} MB.",
220fv_transcription_error_too_long: "The audio file exceeds the maximum duration of {maxDuration} minutes.",
221fv_transcription_error_decode: "The audio file could not be decoded.",
222fv_transcription_error_worker: "The transcription worker could not be started.",
223fv_transcription_error_worker_timeout: "The transcription worker stopped responding.",
224fv_transcription_error_cache: "The browser transcript cache could not be read.",
225fv_transcription_error_failed: "Transcription failed.",
226fv_transcription_error_webgpu: "WebGPU is not available in this browser.",
227fv_transcription_error_timestamps_missing: "Timestamps are not available for this transcription.",
228fv_transcription_clear_cache: "Clear cached models and transcripts",
229fv_transcription_clear_cache_confirm: "Delete cached Whisper models and transcripts from this browser?",
230fv_transcription_clear_cache_done: "Cached models and transcripts deleted.",
231fv_transcription_clear_cache_failed: "The browser cache could not be cleared.",
232fv_transcription_preferences_save_failed: "The browser-specific transcription settings could not be saved.",
233fv_transcription_storage_loading: "Calculating storage usage…",
234fv_transcription_storage_empty: "No cached transcription data.",
235fv_transcription_storage_transcripts: "{count} transcript(s) ({size})",
236fv_transcription_storage_transcripts_no_size: "{count} transcript(s)",
237fv_transcription_storage_models_no_size: "{count} model file(s)",
238fv_transcription_storage_origin: "Browser storage: {used} of {quota}",
239fv_transcription_storage_persistent: "Persistent storage granted.",
240fv_transcription_storage_not_persistent: "Persistent storage not granted.",
241fv_transcription_storage_failed: "Storage usage could not be determined.",
242
243				date_x_at_time_y:     "{date} at {time}",
244				day_x_at_time_y:      "{day} at {time}",
245				yesterday_at_x:       "Yesterday at {time}",
246				x_minutes_ago:        "{minutes} minutes ago",
247				one_minute_ago:       "1 minute ago",
248				a_moment_ago:         "A moment ago",
249				today_at_x:           "Today at {time}",
250				in_a_moment:          "In a moment",
251				in_a_minute:          "In a minute",
252				in_x_minutes:         "In {minutes} minutes",
253				later_today_at_x:     "Later today at {time}",
254				tomorrow_at_x:        "Tomorrow at {time}",
255				short_date_x_minutes: "{minutes}m",
256				short_date_x_hours:   "{hours}h",
257				short_date_x_days:    "{days}d",
258
259				day0: "Sunday",
260				day1: "Monday",
261				day2: "Tuesday",
262				day3: "Wednesday",
263				day4: "Thursday",
264				day5: "Friday",
265				day6: "Saturday",
266
267				dayShort0: "Sun",
268				dayShort1: "Mon",
269				dayShort2: "Tue",
270				dayShort3: "Wed",
271				dayShort4: "Thu",
272				dayShort5: "Fri",
273				dayShort6: "Sat",
274
275				month0: "January",
276				month1: "February",
277				month2: "March",
278				month3: "April",
279				month4: "May",
280				month5: "June",
281				month6: "July",
282				month7: "August",
283				month8: "September",
284				month9: "October",
285				month10: "November",
286				month11: "December",
287
288				active_user_changed_reload_page: "The active user has changed. Reload the page for the latest version.",
289				server_did_not_respond_in_time_try_again: "The server did not respond in time. Please try again.",
290				oops_we_ran_into_some_problems: "Oops! We ran into some problems.",
291				oops_we_ran_into_some_problems_more_details_console: "Oops! We ran into some problems. Please try again later. More error details may be in the browser console.",
292				file_too_large_to_upload: "The file is too large to be uploaded.",
293				uploaded_file_is_too_large_for_server_to_process: "The uploaded file is too large for the server to process.",
294				files_being_uploaded_are_you_sure: "Files are still being uploaded. Are you sure you want to submit this form?",
295				attach: "Attach files",
296				rich_text_box: "Rich text box",
297				close: "Close",
298				link_copied_to_clipboard: "Link copied to clipboard.",
299				text_copied_to_clipboard: "Text copied to clipboard.",
300				loading: "Loading…",
301				you_have_exceeded_maximum_number_of_selectable_items: "You have exceeded the maximum number of selectable items.",
302
303				processing: "Processing",
304				'processing...': "Processing…",
305
306				showing_x_of_y_items: "Showing {count} of {total} items",
307				showing_all_items: "Showing all items",
308				no_items_to_display: "No items to display",
309
310				number_button_up: "Increase",
311				number_button_down: "Decrease",
312
313				push_enable_notification_title: "Push notifications enabled successfully at FanVerse",
314				push_enable_notification_body: "Thank you for enabling push notifications!",
315
316				pull_down_to_refresh: "Pull down to refresh",
317				release_to_refresh: "Release to refresh",
318				refreshing: "Refreshing…"
319			})
320		})
321	</script>
321
322
323	
323<script>
324XF.ready(() =>
325{
326
327var SV = window.SV || {};
328SV.extendObject = SV.extendObject || XF.extendObject || jQuery.extend;
329SV.extendObject(XF.config, {
330	contentrating : {
331		tooltipDelay: 400,
332		menuDelay: 100,
333	}
334});
335
336})
337</script>
vendor: 1 bytes, line 337
337
338<script>
339XF.ready(() =>
340{
341
342
343
344
345
346(function () {
347 function activate(event) {
348  var label = event.target.closest && event.target.closest('.fvNavDrawer-label[role="button"]');
349  if (!label) { return; }
350  if (event.type === 'keydown' && event.key !== 'Enter' && event.key !== ' ') { return; }
351  var item = label.parentElement;
352  var menu = item.querySelector('.fvNavDrawer-submenu');
353  var toggle = document.getElementById('fvSidebarToggle');
354  if (!menu || !toggle) { return; }
355  event.preventDefault();
356  var expanded = window.innerWidth >= 1280 ? toggle.checked : !toggle.checked;
357  if (!expanded) {
358   toggle.checked = window.innerWidth >= 1280;
359   toggle.dispatchEvent(new Event('change', {bubbles: true}));
360   menu.open = true;
361  } else {
362   menu.open = !menu.open;
363  }
364  label.setAttribute('aria-expanded', menu.open ? 'true' : 'false');
365 }
366 document.addEventListener('click', activate);
367 document.addEventListener('keydown', activate);
368 document.addEventListener('toggle', function (event) {
369  if (!event.target.matches || !event.target.matches('.fvNavDrawer-submenu')) { return; }
370  var label = event.target.parentElement.querySelector('.fvNavDrawer-label[role="button"]');
371  if (label) { label.setAttribute('aria-expanded', event.target.open ? 'true' : 'false'); }
372 }, true);
373})();
374
375(function () {
376	document.addEventListener('submit', function (event) {
377		var form = event.target;
378		if (!form.matches || !form.matches('form.fvHeaderSearch')) { return; }
379		var keywords = form.querySelector('[name="keywords"]');
380		var member = form.querySelector('[name="c[users]"]');
381		if (keywords && !keywords.value.trim() && (!member || !member.value.trim())) {
382			event.preventDefault();
383			window.location.assign(form.getAttribute('data-search-url'));
384		}
385	});
386})();
387
388
389(function () {
390 var tip, active;
391 function hide() {
392  if (active) {
393   if (active.previousDescription === null) { active.node.removeAttribute('aria-describedby'); }
394   else { active.node.setAttribute('aria-describedby', active.previousDescription); }
395  }
396  active = null;
397  if (tip) { tip.hidden = true; }
398 }
399 function show(event) {
400  var node = event.target.closest && event.target.closest('.fvNavDrawer-link, .fvNavDrawer-label');
401  var toggle = document.getElementById('fvSidebarToggle');
402  var width = window.innerWidth;
403  var collapsed = toggle && width > 700 && (width >= 1280 ? !toggle.checked : toggle.checked);
404  if (!node || !collapsed) { return; }
405  if (active && active.node === node) { return; }
406  var rect = node.getBoundingClientRect();
407  hide();
408  var text = node.getAttribute('aria-label');
409  if (!text) { return; }
410  if (!tip) {
411   tip = document.createElement('div');
412   tip.id = 'fvDrawerTooltip';
413   tip.className = 'fvDrawerTooltip';
414   tip.setAttribute('role', 'tooltip');
415   document.body.appendChild(tip);
416  }
417  tip.textContent = text;
418  tip.hidden = false;
419  var tipWidth = tip.offsetWidth;
420  var tipHeight = tip.offsetHeight;
421  var left = Math.max(8, Math.min(rect.right + 10, width - tipWidth - 8));
422  var top = Math.max(8, Math.min(rect.top + (rect.height - tipHeight) / 2, window.innerHeight - tipHeight - 8));
423  tip.style.left = left + 'px';
424  tip.style.top = top + 'px';
425  var previous = node.getAttribute('aria-describedby');
426  active = {node: node, previousDescription: previous};
427  node.setAttribute('aria-describedby', (previous ? previous + ' ' : '') + tip.id);
428 }
429 document.addEventListener('mouseover', show);
430 document.addEventListener('focusin', show);
431 function leave(event) {
432  if (active && active.node.contains(event.target) && !active.node.contains(event.relatedTarget)) { hide(); }
433 }
434 document.addEventListener('mouseout', leave);
435 document.addEventListener('focusout', leave);
436 document.addEventListener('keydown', function (event) { if (event.key === 'Escape') { hide(); } });
437 document.addEventListener('change', function (event) { if (event.target.id === 'fvSidebarToggle') { hide(); } });
438 document.addEventListener('click', hide);
439 window.addEventListener('resize', hide);
440 document.addEventListener('scroll', hide, true);
441})();
442				
443})
444</script>
444
445
446
447
448
449	
450		<link rel="icon" href="/styles/pwa/32x32.png" />
451	
452
453	
454</head>
455<body data-template="xa_ubs_whats_new_blog_entries">
456
457
458<div class="p-pageWrapper" id="top">
459	<input type="checkbox" id="fvSidebarToggle" class="fvSidebarToggle u-srOnly" checked="checked"
460		aria-label="Navigation" />
461	
461<script>
462(function () {
463	var storageKey = 'fanverse-sidebar-state-v1';
464	var toggle = document.getElementById('fvSidebarToggle');
465	if (!toggle) { return; }
466
467	function isWideDesktop() {
468		return window.matchMedia('(min-width: 1280px)').matches;
469	}
470
471	function readState() {
472		try {
473			var state = window.localStorage.getItem(storageKey);
474			return state === 'expanded' || state === 'collapsed' ? state : null;
475		} catch (error) {
476			return null;
477		}
478	}
479
480	function writeState() {
481		var expanded = isWideDesktop() ? toggle.checked : !toggle.checked;
482		try {
483			window.localStorage.setItem(storageKey, expanded ? 'expanded' : 'collapsed');
484		} catch (error) {
485			// A blocked storage area should not prevent the drawer from toggling.
486		}
487	}
488
489	function applyState() {
490		var state = readState() || 'collapsed';
491		var expanded = state === 'expanded';
492		toggle.checked = isWideDesktop() ? expanded : !expanded;
493	}
494
495	applyState();
496	toggle.addEventListener('change', writeState);
497
498	// Register during parsing: closing does not wait for deferred XenForo JS.
499	document.addEventListener('click', function (event) {
500		var button = event.target.closest && event.target.closest('button.fvSidebar-close');
501		if (!button) { return; }
502		event.preventDefault();
503		toggle.checked = !isWideDesktop();
504		toggle.dispatchEvent(new Event('change', { bubbles: true }));
505	});
506
507	var previousDesktopMode = isWideDesktop();
508	window.addEventListener('resize', function () {
509		var currentDesktopMode = isWideDesktop();
510		if (currentDesktopMode !== previousDesktopMode) {
511			previousDesktopMode = currentDesktopMode;
512			applyState();
513		}
514	});
515})();
516	</script>
516
517
518
519	
520	<header class="p-header header-1" id="header">
521	
522		<div class="p-header-inner">
523			<div class="p-header-content">
524				<div class="p-header-logo p-header-logo--image">
525					<a href="/">
526						
527
528	
529
530	
531		
532		
533
534		
535	
536
537	
538
539	<picture data-variations="{&quot;default&quot;:{&quot;1&quot;:&quot;\/styles\/icon.svg&quot;,&quot;2&quot;:null}}">
540		
541		
542		
543
544		
545
546		<img src="/styles/icon.svg"  width="34" height="34" alt="FanVerse"  />
547	</picture>
548
549
550					</a>
551				</div>
552
553				
554			</div>
555		</div>
556	</header>
557
558	
559
560
561	
562		<div class="p-navSticky p-navSticky--primary" data-xf-init="sticky-header">
563			
564		<nav class="p-nav">
565			<div class="p-nav-inner">
566				<label for="fvSidebarToggle" class="fvSidebarTrigger" aria-label="Menu">
567					<span class="fvSidebarTriggerIcon" aria-hidden="true"><i class="fa--xf far fa-bars "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#bars"></use></svg></i></span>
568					<span class="u-srOnly">Menu</span>
569				</label>
570
571				<div class="p-nav-smallLogo">
572					<a href="/">
573						
574
575	
576
577	
578		
579		
580
581		
582	
583
584	
585
586	<picture data-variations="{&quot;default&quot;:{&quot;1&quot;:&quot;\/styles\/icon.svg&quot;,&quot;2&quot;:null}}">
587		
588		
589		
590
591		
592
593		<img src="/styles/icon.svg"  width="34" height="34" alt="FanVerse"  />
594	</picture>
595
596
597					</a>
598				</div>
599
600				<div class="fvHeader-context">
601					<span class="fvHeader-contextTitle">Blogs</span>
602				</div>
603
604				
605				<div class="fvHeaderSearch-slot">
606					
607						<form class="fvHeaderSearch" data-filter-state-key="fanverse-search-filters-v1-0" data-xf-init="quick-search" data-search-url="/search/" action="/search/search" method="post" role="search">
608							<input type="text" class="input fvHeaderSearch-input" name="keywords" placeholder="Search…" aria-label="Search" />
609							
610                            <span class="fvHeaderSearch-chips" hidden>
611                                <button type="button" class="fvHeaderSearch-chip fvHeaderSearch-chip--title" hidden title="Search titles only" aria-label="Remove: Search titles only">
612                                    <span>Title</span><i class="fa--xf far fa-times "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#times"></use></svg></i>
613                                </button>
614                                <button type="button" class="fvHeaderSearch-chip fvHeaderSearch-chip--member" hidden data-remove-label="Remove">
615                                    <i class="fa--xf far fa-user "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#user"></use></svg></i><span class="fvHeaderSearch-memberName"></span><i class="fa--xf far fa-times "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#times"></use></svg></i>
616                                </button>
617                            </span>
618                            <details class="fvHeaderSearch-filters">
619                                <summary class="fvHeaderSearch-advanced" aria-label="Filters" title="Filters">
620                                    <i class="fa--xf far fa-sliders-h "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#sliders-h"></use></svg></i><span class="fvHeaderSearch-filterCount" hidden></span>
621                                </summary>
622                                <div class="fvHeaderSearch-filterPanel" role="group" aria-label="Filters">
623                                    <div class="fvHeaderSearch-filterRow fvHeaderSearch-titleRow">
624                                        <label class="iconic"><input type="checkbox"  name="c[title_only]" value="1" /><i aria-hidden="true"></i><span class="iconic-label">Search titles only</span></label>
625
626                                        
627                                            <button type="button" class="fvHeaderSearch-titleHelp" data-xf-init="tooltip" data-trigger="hover focus click" title="Tags will also be searched in content where tags are supported" aria-label="Note">
628                                                <i class="fa--xf far fa-question-circle "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#question-circle"></use></svg></i>
629                                            </button>
630                                        
631                                    </div>
632                                    <label class="fvHeaderSearch-filterRow fvHeaderSearch-memberLabel">
633                                        <span>Member</span>
634                                        <input type="text" class="input fvHeaderSearch-memberInput" data-xf-init="auto-complete" data-single="true" data-selection-error="The requested user could not be found." placeholder="Member" autocomplete="off" />
635                                    </label>
636                                    <input type="hidden" name="c[users]" value="" />
637                                    <div class="fvHeaderSearch-filterActions">
638                                    <div class="fvHeaderSearch-filterFooter">
639                                        <button type="button" class="button fvHeaderSearch-filterReset"><span class="button-text"><i class="fa--xf far fa-undo "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#undo"></use></svg></i> Reset</span></button>
640                                        <button type="button" class="button button--primary fvHeaderSearch-filterApply"><span class="button-text"><i class="fa--xf far fa-check "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#check"></use></svg></i> Confirm</span></button>
641                                    </div>
642                                    <a class="fvHeaderSearch-filterAdvanced" href="/search/">Advanced search…</a>
643                                    </div>
644                                </div>
645                            </details>
646                            <button class="fvHeaderSearch-submit" type="submit" aria-label="Search"><i class="fa--xf far fa-search "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#search"></use></svg></i></button>
647							<input type="hidden" name="_xfToken" value="1790920782,5f14a530f0aa465bc865ad086b2b8e66" />
648						</form>
649<script>
650(function () {
651 function formOf(node) {
652  return node && node.closest && node.closest('form.fvHeaderSearch');
653 }
654 var restoredForms = new WeakSet();
655 var storedStates = new WeakMap();
656 function stateKey(form) { return form.getAttribute('data-filter-state-key'); }
657 function restoreState(form, force) {
658  if (!force && restoredForms.has(form)) { return; }
659  restoredForms.add(form);
660  var key = stateKey(form);
661  if (!key) { return; }
662  try {
663   var state = JSON.parse(window.sessionStorage.getItem(key) || 'null');
664   if (state && typeof state.title === 'boolean' && typeof state.member === 'string') {
665    form.querySelector('[name="c[title_only]"]').checked = state.title;
666    form.querySelector('[name="c[users]"]').value = state.member;
667    form.querySelector('.fvHeaderSearch-memberInput').value = state.member;
668   } else if (force) {
669    form.querySelector('[name="c[title_only]"]').checked = false;
670    form.querySelector('[name="c[users]"]').value = '';
671    form.querySelector('.fvHeaderSearch-memberInput').value = '';
672   }
673  } catch (error) { /* A blocked storage area must not disable the search. */ }
674 }
675 function persistState(form) {
676  var key = stateKey(form);
677  if (!key) { return; }
678  var state = {
679   title: form.querySelector('[name="c[title_only]"]').checked,
680   member: form.querySelector('[name="c[users]"]').value.trim()
681  };
682  var json = JSON.stringify(state);
683  if (storedStates.get(form) === json) { return; }
684  try {
685   if (state.title || state.member) { window.sessionStorage.setItem(key, json); }
686   else { window.sessionStorage.removeItem(key); }
687   storedStates.set(form, json);
688  } catch (error) { /* Keep the current form functional without storage. */ }
689 }
690 function sync(form) {
691  if (!form) { return; }
692  var title = form.querySelector('[name="c[title_only]"]');
693  var member = form.querySelector('[name="c[users]"]');
694  var chips = form.querySelector('.fvHeaderSearch-chips');
695  if (!title || !member || !chips) { return; }
696  var input = form.querySelector('.fvHeaderSearch-memberInput');
697  var value = member.value.trim();
698  var pending = input.value.trim() !== value;
699  input.setCustomValidity(pending ? input.getAttribute('data-selection-error') : '');
700  form.querySelector('.fvHeaderSearch-filterApply').disabled = pending;
701  var titleChip = chips.querySelector('.fvHeaderSearch-chip--title');
702  var memberChip = chips.querySelector('.fvHeaderSearch-chip--member');
703  titleChip.hidden = !title.checked;
704  memberChip.hidden = !value;
705  var name = memberChip.querySelector('.fvHeaderSearch-memberName');
706  if (name.textContent !== value) { name.textContent = value; }
707  memberChip.title = value;
708  memberChip.setAttribute('aria-label', memberChip.getAttribute('data-remove-label') + ': ' + value);
709  var count = (title.checked ? 1 : 0) + (value ? 1 : 0);
710  chips.hidden = count === 0;
711  var badge = form.querySelector('.fvHeaderSearch-filterCount');
712  if (badge.textContent !== String(count)) { badge.textContent = String(count); }
713  badge.hidden = count === 0;
714  persistState(form);
715 }
716 function hideSuggestions(form) {
717  var input = form.querySelector('.fvHeaderSearch-memberInput');
718  if (!input || !window.XF || !XF.Element || !XF.Element.getHandler) { return; }
719  var handler = XF.Element.getHandler(input, 'auto-complete');
720  if (!handler) { return; }
721  if (handler.loadTimer) { clearTimeout(handler.loadTimer); handler.loadTimer = null; }
722  if (handler.abortController) { handler.abortController.abort(); handler.abortController = null; }
723  handler.hideResults();
724  handler.loadVal = ''; // Permit the same prefix to be requested again after closing/resetting.
725 }
726 function close(form, restoreFocus) {
727  var menu = form.querySelector('.fvHeaderSearch-filters');
728  if (!menu) { return; }
729  hideSuggestions(form);
730  menu.open = false;
731  if (restoreFocus) { menu.querySelector('summary').focus(); }
732 }
733 var boundMembers = new WeakSet();
734 function syncAll() {
735  document.querySelectorAll('form.fvHeaderSearch').forEach(function (form) {
736   restoreState(form, false);
737   var input = form.querySelector('.fvHeaderSearch-memberInput');
738   if (input && !boundMembers.has(input) && window.XF && XF.on) {
739    // Register with XF's event registry: XF.trigger does not dispatch unregistered custom events.
740    XF.on(input, 'auto-complete:insert', memberSelected);
741    boundMembers.add(input);
742   }
743   sync(form);
744  });
745 }
746 function memberSelected(event) {
747  var input = event.target;
748  var form = formOf(input);
749  if (!form || !input.matches('.fvHeaderSearch-memberInput')) { return; }
750  // XF emits this event only after inserting a server-supplied suggestion.
751  var inserted = event.inserted || (event.detail && event.detail.inserted);
752  if (!inserted) { return; }
753  input.value = String(inserted).trim();
754  form.querySelector('[name="c[users]"]').value = input.value;
755  sync(form);
756 }
757 document.addEventListener('input', function (event) {
758  var form = formOf(event.target);
759  if (form && event.target.matches('.fvHeaderSearch-memberInput') && !event.target.value.trim()) {
760   form.querySelector('[name="c[users]"]').value = '';
761  }
762  sync(form);
763 });
764 document.addEventListener('change', function (event) { sync(formOf(event.target)); });
765 document.addEventListener('focusout', function (event) {
766  var form = formOf(event.target);
767  if (form) { window.requestAnimationFrame(function () { sync(form); }); }
768 });
769 document.addEventListener('click', function (event) {
770  var form = formOf(event.target);
771  var button = event.target.closest && event.target.closest('.fvHeaderSearch-chip, .fvHeaderSearch-filterReset, .fvHeaderSearch-filterApply');
772  if (form && button) {
773   if (button.matches('.fvHeaderSearch-chip--title, .fvHeaderSearch-filterReset')) {
774    var title = form.querySelector('[name="c[title_only]"]');
775    title.checked = false;
776    title.dispatchEvent(new Event('change', {bubbles: true}));
777   }
778   if (button.matches('.fvHeaderSearch-chip--member, .fvHeaderSearch-filterReset')) {
779    var member = form.querySelector('[name="c[users]"]');
780    hideSuggestions(form);
781    member.value = '';
782    form.querySelector('.fvHeaderSearch-memberInput').value = '';
783    member.dispatchEvent(new Event('input', {bubbles: true}));
784    member.dispatchEvent(new Event('change', {bubbles: true}));
785   }
786   sync(form);
787   if (button.matches('.fvHeaderSearch-filterApply')) { close(form, true); }
788   else if (button.matches('.fvHeaderSearch-chip')) { form.querySelector('[name="keywords"]').focus(); }
789  }
790  // XF may render autocomplete suggestions outside the details element.
791  var suggestion = event.target.closest && event.target.closest('.autoCompleteList, .autoCompleteListItem');
792  document.querySelectorAll('form.fvHeaderSearch').forEach(function (searchForm) {
793   var menu = searchForm.querySelector('.fvHeaderSearch-filters');
794   if (menu && menu.open && !searchForm.contains(event.target) && !suggestion) { close(searchForm, false); }
795  });
796  // Read the final input value after XF's autocomplete selection handlers.
797  if (form || suggestion) { window.requestAnimationFrame(syncAll); }
798 });
799 document.addEventListener('toggle', function (event) {
800  if (event.target.matches && event.target.matches('.fvHeaderSearch-filters') && !event.target.open) {
801   var form = formOf(event.target);
802   if (form) { hideSuggestions(form); }
803  }
804 }, true);
805 document.addEventListener('keydown', function (event) {
806  var form = formOf(event.target);
807  if (form && event.key === 'Escape' && !event.defaultPrevented) {
808   var menu = form.querySelector('.fvHeaderSearch-filters');
809   if (menu && menu.open) { event.preventDefault(); close(form, true); }
810  }
811 });
812 document.addEventListener('submit', function (event) {
813  var form = formOf(event.target);
814  if (!form) { return; }
815  sync(form);
816  var input = form.querySelector('.fvHeaderSearch-memberInput');
817  if (!input.checkValidity()) {
818   event.preventDefault(); event.stopImmediatePropagation();
819   form.querySelector('.fvHeaderSearch-filters').open = true;
820   input.reportValidity(); input.focus(); return;
821  }
822  close(form, false);
823 }, true);
824 document.addEventListener('invalid', function (event) {
825  var form = formOf(event.target);
826  if (form && event.target.matches('.fvHeaderSearch-memberInput')) {
827   form.querySelector('.fvHeaderSearch-filters').open = true;
828  }
829 }, true);
830 document.addEventListener('reset', function (event) {
831  if (formOf(event.target)) { window.requestAnimationFrame(syncAll); }
832 });
833 document.addEventListener('DOMContentLoaded', syncAll);
834 window.addEventListener('pageshow', function (event) {
835  if (event.persisted) {
836   document.querySelectorAll('form.fvHeaderSearch').forEach(function (form) { restoreState(form, true); });
837  }
838  syncAll();
839 });
840 // This script follows the rendered form, so restore chips before subsequent content paints.
841 syncAll();
842})();
843</script>
843
844					
845
846				</div>
847				<div class="p-nav-opposite">
848					<div class="p-navgroup p-account p-navgroup--guest">
849						
850							<a href="/login/" class="p-navgroup-link p-navgroup-link--textual p-navgroup-link--logIn"
851								data-xf-click="overlay" data-follow-redirects="on">
852								<span class="p-navgroup-linkText">Log in</span>
853							</a>
854							
855								<a href="/login/register" class="p-navgroup-link p-navgroup-link--textual p-navgroup-link--register"
856									data-xf-click="overlay" data-follow-redirects="on">
857									<span class="p-navgroup-linkText">Register</span>
858								</a>
859							
860						
861					</div>
862
863					<div class="p-navgroup p-discovery">
864
865						
866							<a href="/search/"
867								class="p-navgroup-link p-navgroup-link--iconic p-navgroup-link--search"
868								data-xf-click="menu"
869								data-xf-key="/"
870								aria-label="Search"
871								aria-expanded="false"
872								aria-haspopup="true"
873								title="Search">
874								<i aria-hidden="true"></i>
875								<span class="p-navgroup-linkText">Search</span>
876							</a>
877							<div class="menu menu--structural menu--wide" data-menu="menu" aria-hidden="true">
878								<form action="/search/search" method="post"
879									class="menu-content"
880									data-xf-init="quick-search">
881
882									<h3 class="menu-header">Search</h3>
883									
884									<div class="menu-row">
885										
886											<input type="text" class="input" name="keywords" data-acurl="/search/auto-complete" placeholder="Search…" aria-label="Search" data-menu-autofocus="true" />
887										
888									</div>
889
890									
891									<div class="menu-row">
892										<label class="iconic"><input type="checkbox"  name="c[title_only]" value="1" /><i aria-hidden="true"></i><span class="iconic-label">Search titles only
893
894													
895													<span tabindex="0" role="button"
896														data-xf-init="tooltip" data-trigger="hover focus click" title="Tags will also be searched in content where tags are supported">
897
898														<i class="fa--xf far fa-question-circle  u-muted u-smaller"><svg xmlns="http://www.w3.org/2000/svg" role="img" ><title>Note</title><use href="/data/local/icons/regular.svg?v=1790889936#question-circle"></use></svg></i>
899													</span></span></label>
900
901									</div>
902									
903									<div class="menu-row">
904										<div class="inputGroup">
905											<span class="inputGroup-text" id="ctrl_search_menu_by_member">By:</span>
906											<input type="text" class="input" name="c[users]" data-xf-init="auto-complete" placeholder="Member" aria-labelledby="ctrl_search_menu_by_member" />
907										</div>
908									</div>
909									<div class="menu-footer">
910									<span class="menu-footer-controls">
911										<button type="submit" class="button button--icon button--icon--search button--primary"><i class="fa--xf far fa-search "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#search"></use></svg></i><span class="button-text">Search</span></button>
912										<button type="submit" class="button " name="from_search_menu"><span class="button-text">Advanced search…</span></button>
913									</span>
914									</div>
915
916									<input type="hidden" name="_xfToken" value="1790920782,5f14a530f0aa465bc865ad086b2b8e66" />
917								</form>
918							</div>
919						
920
921					</div>
922				</div>
923			</div>
924		</nav>
925	
926		</div>
927		
928
929	<aside data-visitor-id="0" class="fvSidebar" aria-label="Navigation">
930<script>
931(function () {
932 var drawer = document.currentScript.parentElement;
933 var staff = drawer.parentElement.querySelector('.p-staffBar.header-2');
934 var pending = false;
935 var previous = -1;
936 function update() {
937  pending = false;
938  var rect = staff && staff.getBoundingClientRect();
939  var offset = rect && rect.height > 0 && rect.top < window.innerHeight
940   ? Math.max(0, Math.min(window.innerHeight, rect.bottom)) : 0;
941  if (offset !== previous) {
942   drawer.style.setProperty('--fv-drawer-top', offset + 'px');
943   previous = offset;
944  }
945 }
946 function schedule() {
947  if (!pending) { pending = true; window.requestAnimationFrame(update); }
948 }
949 update();
950 if (staff && window.ResizeObserver) { new ResizeObserver(schedule).observe(staff); }
951 window.addEventListener('resize', schedule, { passive: true });
952 window.addEventListener('scroll', schedule, { passive: true });
953 window.addEventListener('pageshow', schedule);
954 if (window.visualViewport) {
955  window.visualViewport.addEventListener('resize', schedule, { passive: true });
956  window.visualViewport.addEventListener('scroll', schedule, { passive: true });
957 }
958})();
959</script>
vendor: 1 bytes, line 959
959
960<script>document.currentScript.parentElement.style.visibility = 'hidden';</script>
960
961		<div class="fvNavDrawer-header">
962			<a class="fvNavDrawer-brand" href="/" aria-label="FanVerse">
963				<span class="fvNavDrawer-mark">
964					<span class="fvNavDrawer-markCrop">
965						
966
967	
968
969	
970		
971		
972
973		
974	
975
976	
977
978	<picture data-variations="{&quot;default&quot;:{&quot;1&quot;:&quot;\/styles\/icon.svg&quot;,&quot;2&quot;:null}}">
979		
980		
981		
982
983		
984
985		<img src="/styles/icon.svg"  width="34" height="34" alt="FanVerse"  />
986	</picture>
987
988
989					</span>
990				</span>
991				<span class="fvNavDrawer-wordmark">FanVerse</span>
991<script>
992(function () {
993 var el = document.currentScript.previousElementSibling;
994 var title = el.textContent;
995 if (title === 'FanVerse') {
996  el.textContent = '';
997  var first = document.createElement('span');
998  first.textContent = title.slice(0, 3);
999  var accent = document.createElement('span');
1000  accent.className = 'fvNavDrawer-wordmarkAccent';
1001  accent.textContent = title.slice(3);
1002  el.appendChild(first); el.appendChild(accent);
1003 }
1004})();
1005</script>
1005
1006			</a>
1007			<button type="button" class="fvSidebar-close" aria-label="Close">
1008				<span class="fvSidebar-closeIcon" aria-hidden="true"><i class="fa--xf far fa-chevron-left "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#chevron-left"></use></svg></i></span>
1009				<span class="u-srOnly">Close</span>
1010			</button>
1011		</div>
1012		<nav class="fvNavDrawer-body">
1013			
1014			
1015			
1016				
1017			
1018				
1019			
1020				
1021					
1022					
1023				
1024			
1025				
1026			
1027				
1028			
1029				
1030			
1031			
1032                
1033            
1034                
1035                    
1036 
1037  
1038   <div class="fvNavDrawer-item fvNavDrawer-forumLinks ">
1039    <div class="fvNavDrawer-submenuContent">
1040     
1041      
1042       
1043 
1044 
1045  
1046 
1047  
1048   
1049  
1050 
1051  
1052 
1053  
1054 
1055  
1056 
1057  
1058 
1059  
1060 
1061  
1062 
1063  
1064 
1065 
1066  
1067 
1068
1069      
1070       
1071 
1072 
1073  
1074 
1075  
1076 
1077  
1078 
1079  
1080 
1081  
1082 
1083  
1084 
1085  
1086 
1087  
1088 
1089  
1090 
1091 
1092  
1093  
1094	
1095	<a href="/search/?type=post"
1096	class="menu-linkRow "
1097	
1098	
1099	data-nav-id="searchForums">Search forums</a>
1100
1101  
1102 
1103
1104      
1105     
1106    </div>
1107   </div>
1108  
1109 
1110
1111                
1112            
1113                
1114                    
1115 
1116	<div class="fvNavDrawer-item fvNavDrawer-item--hasChildren ">
1117		
1118			<a href="/whats-new/"
1119				class="fvNavDrawer-link "
1120				
1121				data-nav-id="whatsNew"
1122				aria-label="What&#039;s new">
1123				<span class="fvNavDrawer-icon" aria-hidden="true">
1124					
1125						<i class="fa--xf far fa-bolt "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#bolt"></use></svg></i>
1126					
1127				</span>
1128				<span class="fvNavDrawer-text">What's new</span>
1129				
1130			</a>
1131		
1132		
1133			<details class="fvNavDrawer-submenu" >
1134				<summary aria-label="What&#039;s new"><i class="fa--xf far fa-chevron-down "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#chevron-down"></use></svg></i></summary>
1135				<div class="fvNavDrawer-submenuContent">
1136					
1137						
1138 
1139 
1140 
1141  
1142  
1143	
1144	<a href="/featured/"
1145	class="menu-linkRow "
1146	
1147	
1148	data-nav-id="featured">Featured content</a>
1149
1150  
1151 
1152
1153					
1154						
1155 
1156 
1157 
1158  
1159  
1160	
1161	<a href="/whats-new/posts/"
1162	class="menu-linkRow "
1163	 rel="nofollow"
1164	
1165	data-nav-id="whatsNewPosts">New posts</a>
1166
1167  
1168 
1169
1170					
1171						
1172 
1173 
1174 
1175  
1176  
1177	
1178	<a href="/whats-new/media/"
1179	class="menu-linkRow "
1180	 rel="nofollow"
1181	
1182	data-nav-id="xfmgWhatsNewNewMedia">New media</a>
1183
1184  
1185 
1186
1187					
1188						
1189 
1190 
1191 
1192  
1193  
1194	
1195	<a href="/whats-new/media-comments/"
1196	class="menu-linkRow "
1197	 rel="nofollow"
1198	
1199	data-nav-id="xfmgWhatsNewMediaComments">New media comments</a>
1200
1201  
1202 
1203
1204					
1205						
1206 
1207 
1208 
1209  
1210  
1211	
1212	<a href="/whats-new/ubs-blog-entries/"
1213	class="menu-linkRow "
1214	 rel="nofollow"
1215	
1216	data-nav-id="xaUbsWhatsNewNewBlogEntries">New blog entries</a>
1217
1218  
1219 
1220
1221					
1222						
1223 
1224 
1225 
1226  
1227  
1228	
1229	<a href="/whats-new/profile-posts/"
1230	class="menu-linkRow "
1231	 rel="nofollow"
1232	
1233	data-nav-id="whatsNewProfilePosts">New profile posts</a>
1234
1235  
1236 
1237
1238					
1239						
1240 
1241 
1242 
1243  
1244  
1245	
1246	<a href="/whats-new/ubs-comments/"
1247	class="menu-linkRow "
1248	 rel="nofollow"
1249	
1250	data-nav-id="xaUbsWhatsNewBlogEntryComments">New blog entry comments</a>
1251
1252  
1253 
1254
1255					
1256						
1257 
1258 
1259 
1260  
1261  
1262	
1263	<a href="/whats-new/threadmarks/"
1264	class="menu-linkRow "
1265	 rel="nofollow"
1266	
1267	data-nav-id="whatsNewThreadmarks">New threadmarks</a>
1268
1269  
1270 
1271
1272					
1273						
1274 
1275 
1276 
1277  
1278  
1279	
1280	<a href="/whats-new/latest-activity"
1281	class="menu-linkRow "
1282	 rel="nofollow"
1283	
1284	data-nav-id="latestActivity">Latest activity</a>
1285
1286  
1287 
1288
1289					
1290				</div>
1291			</details>
1292		
1293	</div>
1294 
1295
1296                
1297            
1298                
1299                    
1300 
1301	<div class="fvNavDrawer-item fvNavDrawer-item--hasChildren ">
1302		
1303			<a href="/tickets/"
1304				class="fvNavDrawer-link "
1305				
1306				data-nav-id="fvTickets"
1307				aria-label="Support">
1308				<span class="fvNavDrawer-icon" aria-hidden="true">
1309					
1310                        <i class="fa--xf far fa-life-ring "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#life-ring"></use></svg></i>
1311                    
1312				</span>
1313				<span class="fvNavDrawer-text">Support</span>
1314				
1315			</a>
1316		
1317		
1318			<details class="fvNavDrawer-submenu" >
1319				<summary aria-label="Support"><i class="fa--xf far fa-chevron-down "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#chevron-down"></use></svg></i></summary>
1320				<div class="fvNavDrawer-submenuContent">
1321					
1322						
1323 
1324 
1325  
1326 
1327  
1328 
1329  
1330 
1331  
1332 
1333  
1334 
1335  
1336 
1337  
1338 
1339  
1340 
1341  
1342 
1343 
1344  
1345  
1346	
1347	<a href="/tickets/create"
1348	class="menu-linkRow "
1349	 data-xf-click="overlay"
1350	
1351	data-nav-id="fvTicketsOpenNewTicket">Open new ticket</a>
1352
1353  
1354 
1355
1356					
1357				</div>
1358			</details>
1359		
1360	</div>
1361 
1362
1363                
1364            
1365                
1366                    
1367 
1368	<div class="fvNavDrawer-item  ">
1369		
1370			<a href="/media/"
1371				class="fvNavDrawer-link "
1372				
1373				data-nav-id="xfmg"
1374				aria-label="Media">
1375				<span class="fvNavDrawer-icon" aria-hidden="true">
1376					
1377						<i class="fa--xf far fa-images "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#images"></use></svg></i>
1378					
1379				</span>
1380				<span class="fvNavDrawer-text">Media</span>
1381				
1382			</a>
1383		
1384		
1385	</div>
1386 
1387
1388                
1389            
1390                
1391                    
1392 
1393	<div class="fvNavDrawer-item fvNavDrawer-item--hasChildren is-selected">
1394		
1395			<a href="/blogs/"
1396				class="fvNavDrawer-link "
1397				
1398				data-nav-id="xa_ubs"
1399				aria-label="Blogs">
1400				<span class="fvNavDrawer-icon" aria-hidden="true">
1401					
1402                        <i class="fa--xf far fa-newspaper "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#newspaper"></use></svg></i>
1403                    
1404				</span>
1405				<span class="fvNavDrawer-text">Blogs</span>
1406				
1407			</a>
1408		
1409		
1410			<details class="fvNavDrawer-submenu" open>
1411				<summary aria-label="Blogs"><i class="fa--xf far fa-chevron-down "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#chevron-down"></use></svg></i></summary>
1412				<div class="fvNavDrawer-submenuContent">
1413					
1414						
1415 
1416 
1417  
1418 
1419  
1420 
1421  
1422 
1423  
1424 
1425  
1426   
1427  
1428 
1429  
1430 
1431  
1432 
1433  
1434 
1435  
1436 
1437 
1438  
1439 
1440
1441					
1442						
1443 
1444 
1445  
1446 
1447  
1448 
1449  
1450 
1451  
1452 
1453  
1454 
1455  
1456 
1457  
1458   
1459  
1460 
1461  
1462 
1463  
1464 
1465 
1466  
1467 
1468
1469					
1470						
1471 
1472 
1473  
1474 
1475  
1476 
1477  
1478 
1479  
1480 
1481  
1482 
1483  
1484 
1485  
1486 
1487  
1488 
1489  
1490 
1491 
1492  
1493  
1494	
1495	<a href="/blogs/latest-reviews"
1496	class="menu-linkRow "
1497	
1498	
1499	data-nav-id="xa_ubsLatestReviews">Latest reviews</a>
1500
1501  
1502 
1503
1504					
1505						
1506 
1507 
1508  
1509 
1510  
1511 
1512  
1513 
1514  
1515 
1516  
1517 
1518  
1519 
1520  
1521 
1522  
1523 
1524  
1525 
1526 
1527  
1528  
1529	
1530	<a href="/blogs/blog/"
1531	class="menu-linkRow "
1532	
1533	
1534	data-nav-id="xa_ubsBlogList">Blog list</a>
1535
1536  
1537 
1538
1539					
1540						
1541 
1542 
1543  
1544 
1545  
1546 
1547  
1548 
1549  
1550 
1551  
1552 
1553  
1554 
1555  
1556 
1557  
1558 
1559  
1560 
1561 
1562  
1563  
1564	
1565	<a href="/blogs/authors/"
1566	class="menu-linkRow "
1567	
1568	
1569	data-nav-id="xa_ubsAuthorList">Author list</a>
1570
1571  
1572 
1573
1574					
1575						
1576 
1577 
1578  
1579 
1580  
1581 
1582  
1583 
1584  
1585 
1586  
1587 
1588  
1589 
1590  
1591 
1592  
1593 
1594  
1595 
1596 
1597  
1598  
1599	
1600	<a href="/blogs/series/"
1601	class="menu-linkRow "
1602	
1603	
1604	data-nav-id="xa_ubsSeries">Series list</a>
1605
1606  
1607 
1608
1609					
1610						
1611 
1612 
1613  
1614 
1615  
1616 
1617  
1618 
1619  
1620 
1621  
1622 
1623  
1624 
1625  
1626 
1627  
1628 
1629  
1630 
1631 
1632  
1633  
1634	
1635	<a href="/search/?type=ubs_blog_entry"
1636	class="menu-linkRow "
1637	
1638	
1639	data-nav-id="xa_ubsSearchBlogs">Search blogs</a>
1640
1641  
1642 
1643
1644					
1645				</div>
1646			</details>
1647		
1648	</div>
1649 
1650
1651                
1652            
1653
1654		</nav>
1655<script>
1656(function () {
1657 function normaliseUrl(href) {
1658  var url;
1659  try { url = new URL(href, document.baseURI); } catch (e) { return null; }
1660  url.hash = '';
1661  url.searchParams.delete('page');
1662  url.pathname = url.pathname.replace(/\/page-\d+\/?$/, '').replace(/\/+$/, '') || '/';
1663  url.searchParams.sort();
1664  return url;
1665 }
1666 function sameUrl(linkUrl, currentUrl) {
1667  if (!linkUrl || !currentUrl || linkUrl.origin !== currentUrl.origin) { return false; }
1668  return linkUrl.pathname === currentUrl.pathname && linkUrl.search === currentUrl.search;
1669 }
1670 function hasRequiredQuery(linkUrl, currentUrl) {
1671  return Array.from(linkUrl.searchParams.entries()).every(function (entry) {
1672   return currentUrl.searchParams.getAll(entry[0]).indexOf(entry[1]) !== -1;
1673  });
1674 }
1675 function isRoutePrefix(linkUrl, currentUrl) {
1676  if (!linkUrl || !currentUrl || linkUrl.origin !== currentUrl.origin) { return false; }
1677  if (!hasRequiredQuery(linkUrl, currentUrl)) { return false; }
1678  if (linkUrl.pathname === '/') { return false; }
1679  return currentUrl.pathname === linkUrl.pathname ||
1680   currentUrl.pathname.indexOf(linkUrl.pathname + '/') === 0;
1681 }
1682 function specificity(candidate) {
1683  return candidate.url.pathname.length * 1000 + Array.from(candidate.url.searchParams.entries()).length;
1684 }
1685 function openAncestors(link) {
1686  var parent = link.parentElement;
1687  while (parent && !parent.classList.contains('fvNavDrawer-body')) {
1688   if (parent.tagName === 'DETAILS') {
1689    parent.open = true;
1690    var summary = parent.querySelector('summary');
1691    if (summary) { summary.setAttribute('aria-expanded', 'true'); }
1692   }
1693   parent = parent.parentElement;
1694  }
1695 }
1696 function markCurrent() {
1697  var current = normaliseUrl(window.location.href);
1698  // The yours route redirects to the signed-in member's ticket listing.
1699  var visitorId = document.querySelector('.fvSidebar').getAttribute('data-visitor-id');
1700  var memberRoute = current && current.pathname.match(/^(.*\/tickets)\/members\/(?:[^/]*\.)?(\d+)$/);
1701  if (memberRoute && visitorId !== '0' && memberRoute[2] === visitorId) {
1702   current.pathname = memberRoute[1] + '/yours';
1703  }
1704  var selectedArea = document.querySelector('.fvNavDrawer-item.is-selected');
1705  var activityNode = document.querySelector('.fvNavDrawer-item > [data-nav-id="whatsNew"], .fvNavDrawer-item > [data-nav-id="whats-new"]');
1706  var activityLink = activityNode && activityNode.matches('a[href]') ? activityNode : Array.from(document.querySelectorAll('.fvNavDrawer-item > a.fvNavDrawer-link[href]')).find(function (link) {
1707   var url = normaliseUrl(link.href);
1708   return url && /\/whats-new$/.test(url.pathname);
1709  });
1710  var activityArea = (activityNode && activityNode.closest('.fvNavDrawer-item')) || (activityLink && activityLink.closest('.fvNavDrawer-item'));
1711  var activityBase = activityLink && normaliseUrl(activityLink.href);
1712  var activityPath = activityBase ? activityBase.pathname : '/whats-new';
1713  var isActivityRoute = current && activityPath && (!activityBase || hasRequiredQuery(activityBase, current)) && (current.pathname === activityPath || current.pathname.indexOf(activityPath + '/') === 0);
1714
1715  // Keep activity shortcuts in one canonical group. Remove duplicate
1716  // New posts/profile/blog/media links from Forums, Members and other groups.
1717  if (activityArea) {
1718   var canonical = [];
1719   activityArea.querySelectorAll('a.menu-linkRow[href]').forEach(function (link) {
1720    var url = normaliseUrl(link.href);
1721    if (url) { canonical.push(url); }
1722   });
1723   document.querySelectorAll('.fvNavDrawer-item').forEach(function (area) {
1724    if (area === activityArea) { return; }
1725    area.querySelectorAll('a.menu-linkRow[href]').forEach(function (link) {
1726     var url = normaliseUrl(link.href);
1727     if (url && canonical.some(function (candidate) { return sameUrl(candidate, url); })) {
1728      link.remove();
1729     }
1730    });
1731   });
1732  }
1733
1734  // A generated Overview must not compete with a named child at the same URL.
1735  document.querySelectorAll('.fvNavDrawer-overview[href]').forEach(function (overview) {
1736   var branch = overview.closest('.fvNavDrawer-branch');
1737   if (branch && Array.from(branch.querySelectorAll('a.menu-linkRow[href]')).some(function (link) {
1738    return link !== overview && !link.classList.contains('fvNavDrawer-overview') && sameUrl(normaliseUrl(link.href), normaliseUrl(overview.href));
1739   })) { overview.remove(); }
1740  });
1741
1742  // Resolve ownership from the actual destinations when pageSection is wrong.
1743  var destinations = Array.from(document.querySelectorAll('.fvNavDrawer-submenuContent a.menu-linkRow[href]')).map(function (link) {
1744   return {link: link, url: normaliseUrl(link.href)};
1745  });
1746  var exactOwners = destinations.filter(function (candidate) { return sameUrl(candidate.url, current); });
1747  var owners = exactOwners.length ? exactOwners : destinations.filter(function (candidate) { return isRoutePrefix(candidate.url, current); });
1748  owners.sort(function (a, b) {
1749   return specificity(b) - specificity(a) || Number(b.link.closest('.fvNavDrawer-item') === selectedArea) - Number(a.link.closest('.fvNavDrawer-item') === selectedArea);
1750  });
1751  var resolvedArea = isActivityRoute && activityArea ? activityArea : owners.length ? owners[0].link.closest('.fvNavDrawer-item') : selectedArea;
1752  if (resolvedArea) {
1753   document.querySelectorAll('.fvNavDrawer-item.is-selected').forEach(function (item) {
1754    if (item !== resolvedArea) {
1755     item.classList.remove('is-selected');
1756     var oldMenu = item.querySelector('.fvNavDrawer-submenu');
1757     if (oldMenu) { oldMenu.open = false; }
1758     var oldLabel = item.querySelector('.fvNavDrawer-label[aria-expanded]');
1759     if (oldLabel) { oldLabel.setAttribute('aria-expanded', 'false'); }
1760    }
1761   });
1762   selectedArea = resolvedArea;
1763   selectedArea.classList.add('is-selected');
1764   var activityMenu = selectedArea.querySelector('.fvNavDrawer-submenu');
1765   if (activityMenu) { activityMenu.open = true; }
1766   var activityLabel = selectedArea.querySelector('.fvNavDrawer-label[aria-expanded]');
1767   if (activityLabel) { activityLabel.setAttribute('aria-expanded', 'true'); }
1768  }
1769
1770  document.querySelectorAll('.fvNavDrawer-item.has-active-child').forEach(function (item) {
1771   item.classList.remove('has-active-child');
1772  });
1773  document.querySelectorAll('.fvNavDrawer-submenuContent a.menu-linkRow[href]').forEach(function (link) {
1774   link.classList.remove('is-current');
1775   link.removeAttribute('aria-current');
1776  });
1777
1778  if (!current || !selectedArea) { return; }
1779
1780  var candidates = Array.from(selectedArea.querySelectorAll('.fvNavDrawer-submenuContent a.menu-linkRow[href]'))
1781   .map(function (link) { return { link: link, url: normaliseUrl(link.href) }; })
1782   .filter(function (candidate) { return candidate.url && candidate.url.origin === current.origin; });
1783
1784  var exact = candidates.filter(function (candidate) { return sameUrl(candidate.url, current); });
1785  var eligible = exact.length ? exact : candidates.filter(function (candidate) {
1786   return isRoutePrefix(candidate.url, current);
1787  });
1788
1789  eligible.sort(function (a, b) { return specificity(b) - specificity(a); });
1790  var winner = eligible[0];
1791  if (!winner) { return; }
1792
1793  winner.link.classList.add('is-current');
1794  winner.link.setAttribute('aria-current', 'page');
1795  openAncestors(winner.link);
1796  var selectedLabel = selectedArea.querySelector('.fvNavDrawer-label[aria-expanded]');
1797  if (selectedLabel) { selectedLabel.setAttribute('aria-expanded', 'true'); }
1798  selectedArea.classList.add('has-active-child');
1799 }
1800 try { markCurrent(); } finally {
1801  document.querySelector('.fvSidebar').style.visibility = '';
1802 }
1803 window.addEventListener('popstate', markCurrent);
1804})();
1805</script>
1805
1806	</aside>
1807
1808	<div class="p-body">
1809		<div class="p-body-inner">
1810			<!--XF:EXTRA_OUTPUT-->
1811
1812			
1813
1814			
1815
1816			
1817			
1818	
1819		<ul class="p-breadcrumbs "
1820			itemscope itemtype="https://schema.org/BreadcrumbList">
1821			
1822				
1823
1824				
1825				
1826
1827				
1828
1829				
1830					
1831					
1832	<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
1833		<a href="/blogs/" itemprop="item">
1834			<span itemprop="name">Blogs</span>
1835		</a>
1836		<meta itemprop="position" content="1" />
1837	</li>
1838
1839				
1840				
1841			
1842		</ul>
1843	
1844
1845			
1846
1847			
1848	<noscript class="js-jsWarning"><div class="blockMessage blockMessage--important blockMessage--iconic u-noJsOnly">JavaScript is disabled. For a better experience, please enable JavaScript in your browser before proceeding.</div></noscript>
1849
1850			
1851	<div class="blockMessage blockMessage--important blockMessage--iconic js-browserWarning" style="display: none">You are using an out of date browser. It  may not display this or other websites correctly.<br />You should upgrade or use an <a href="https://www.google.com/chrome/" target="_blank" rel="noopener">alternative browser</a>.</div>
1852
1853
1854			
1855				
1856	<div class="p-body-header">
1857
1858					
1859						
1860							<div class="p-title ">
1861								
1862									
1863										<h1 class="p-title-value">New blog entries</h1>
1864									
1865									
1866								
1867							</div>
1868						
1869
1870						
1871					
1872				</div>
1873			
1874
1875			<div class="p-body-main  ">
1876				
1877				<div class="p-body-contentCol"></div>
1878				
1879
1880				
1881
1882				<div class="p-body-content">
1883					
1884					
1885<div class="p-body-pageContent">
1886	
1887
1888
1889
1890	<div class="tabs tabs--standalone">
1891		<div class="hScroller" data-xf-init="h-scroller">
1892			<span class="hScroller-scroll">
1893				
1894	<a class="tabs-tab " href="/whats-new/">What's new</a>
1895	
1896	<a class="tabs-tab " href="/featured/">Featured content</a>
1897	
1898	<a class="tabs-tab " href="/whats-new/posts/" rel="nofollow">New posts</a>
1899	
1900	<a class="tabs-tab " href="/whats-new/media/" rel="nofollow">New media</a>
1901	<a class="tabs-tab " href="/whats-new/media-comments/" rel="nofollow">New media comments</a>
1902
1903
1904	<a class="tabs-tab is-active" href="/whats-new/ubs-blog-entries/" rel="nofollow">New blog entries</a>
1905		
1906		<a class="tabs-tab " href="/whats-new/ubs-comments/" rel="nofollow">New blog entry comments</a>
1907		
1908
1909<a class="tabs-tab " href="/whats-new/threadmarks/" rel="nofollow">New threadmarks</a>
1910
1911	
1912		<a class="tabs-tab " href="/whats-new/profile-posts/" rel="nofollow">New profile posts</a>
1913	
1914	
1915	
1916		
1917
1918		<a class="tabs-tab " href="/whats-new/latest-activity" rel="nofollow">Latest activity</a>
1919	
1920	
1921
1922			</span>
1923		</div>
1924	</div>
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935<div class="block" data-xf-init="" data-type="ubs_blog_entry" data-href="/inline-mod/">
1936	
1937
1938	<div class="block-container">
1939		
1940
1941	
1942
1943
1944		
1945	
1946	
1947		<div class="block-row">
1948			
1949				No results found.
1950			
1951		</div>
1952	
1953
1954	</div>
1955
1956	
1957</div>
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967</div>
1968
1969					
1970				</div>
1971
1972				
1973			</div>
1974
1975			
1976			
1977	
1978		<ul class="p-breadcrumbs p-breadcrumbs--bottom"
1979			itemscope itemtype="https://schema.org/BreadcrumbList">
1980			
1981				
1982
1983				
1984				
1985
1986				
1987
1988				
1989					
1990					
1991	<li itemprop="itemListElement" itemscope itemtype="https://schema.org/ListItem">
1992		<a href="/blogs/" itemprop="item">
1993			<span itemprop="name">Blogs</span>
1994		</a>
1995		<meta itemprop="position" content="1" />
1996	</li>
1997
1998				
1999				
2000			
2001		</ul>
2002	
2003
2004			
2005		</div>
2006	</div>
2007
2008	<footer class="p-footer" id="footer">
2009		<div class="p-footer-inner">
2010
2011			<div class="p-footer-row">
2012				
2013					<div class="p-footer-row-main">
2014						<ul class="p-footer-linkList">
2015							
2016
2017								
2018								
2019									<li>
2020										
2021											
2022												<a href="/misc/style" data-xf-click="overlay"
2023													data-xf-init="tooltip" title="Style chooser" rel="nofollow">
2024													<i class="fa--xf far fa-paint-brush "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#paint-brush"></use></svg></i> Light Fan Style
2025												</a>
2026											
2027											
2028										
2029									</li>
2030								
2031								
2032									<li><a href="/misc/language" data-xf-click="overlay"
2033										data-xf-init="tooltip" title="Language chooser" rel="nofollow">
2034										<i class="fa--xf far fa-globe "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#globe"></use></svg></i> English (US)</a></li>
2035								
2036							
2037						</ul>
2038					</div>
2039				
2040				<div class="p-footer-row-opposite">
2041					<ul class="p-footer-linkList">
2042						
2043							
2044								<li><a href="/misc/contact" data-xf-click="overlay">Contact us</a></li>
2045							
2046						
2047
2048						
2049							<li><a href="/help/terms/">Terms and rules</a></li>
2050						
2051
2052						
2053							<li><a href="/help/privacy-policy/">Privacy policy</a></li>
2054						
2055
2056						
2057							<li><a href="/help/">Help</a></li>
2058						
2059
2060						
2061
2062						<li><a href="/forums/-/index.rss" target="_blank" rel="noopener" class="p-footer-rssLink" title="RSS"><span aria-hidden="true"><i class="fa--xf far fa-rss "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" >
2062<use href="/data/local/icons/regular.svg?v=1790889936#rss"></use></svg></i><span class="u-srOnly">RSS</span></span></a></li>
2063					</ul>
2064				</div>
2065			</div>
2066
2067			
2068				<div class="p-footer-copyright">
2069					
2070						<a href="https://xenforo.com" class="u-concealed" dir="ltr" target="_blank" rel="sponsored noopener">Community platform by XenForo<sup>&reg;</sup> <span class="copyright">&copy; 2010-2025 XenForo Ltd.</span></a>
2071						
2072					
2073				</div>
2074			
2075
2076			
2077		</div>
2078	</footer>
2079</div> <!-- closing p-pageWrapper -->
2080
2081<div class="u-bottomFixer js-bottomFixTarget">
2082	
2083	
2084</div>
2085
2086<div class="u-navButtons js-navButtons">
2087	<a href="javascript:" class="button button--scroll"><span class="button-text"><i class="fa--xf far fa-arrow-left "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#arrow-left"></use></svg></i><span class="u-srOnly">Back</span></span></a>
2088</div>
2089
2090
2091	<div class="u-scrollButtons js-scrollButtons" data-trigger-type="both">
2092		<a href="#top" class="button button--scroll" data-xf-click="scroll-to"><span class="button-text"><i class="fa--xf far fa-arrow-up "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#arrow-up"></use></svg></i><span class="u-srOnly">Top</span></span></a>
2093		
2094			<a href="#footer" class="button button--scroll" data-xf-click="scroll-to"><span class="button-text"><i class="fa--xf far fa-arrow-down "><svg xmlns="http://www.w3.org/2000/svg" role="img" aria-hidden="true" ><use href="/data/local/icons/regular.svg?v=1790889936#arrow-down"></use></svg></i><span class="u-srOnly">Bottom</span></span></a>
2095		
2096	</div>
2097
2098
2099
2100	<form style="display:none" hidden="hidden">
2101		<input type="text" name="_xfClientLoadTime" value="" id="_xfClientLoadTime" title="_xfClientLoadTime" tabindex="-1" />
2102	</form>
2103
2104	
2105
2106
2107
2108
2109
2110
2111</body>
2112</html>
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.