FORUMS
Remove All Ads from XDA

[RECOVERY][IME][20.05.2019][OFFICIAL] TWRP 3.3.1-0 for HTC U12+ aka Imagine

3,951 posts
Thanks Meter: 10,008
 
By Freak07, Senior Member on 21st July 2018, 12:26 PM
Post Reply Email Thread
Announcement from Freak07: TWRP is now official for the U12+! Get the official download from twrp.me!
Code:
*** Disclaimer ***

All flashing is done at your own risk!
While nothing from this thread should break your device,
don't come back here blaming anyone if it does!

Hello Guys and Girls,

the title is obvious: Here is a twrp build for the HTC U12+. I spent quite a bit of time together with the dear @Captain_Throwback to get everything working.
At this place a huge thanks to @Captain_Throwback for helping me, even though not having the device at his hands!

Instructions:

With A/B devices the command
Code:
fastboot flash recovery recovery.img
is not possible, because these devices generally don´t have a recovery partition any longer. The recovery sits now in the ramdisk of the boot.img.

So how do we get TWRP on it?

The first option is to just boot TWRP temporarily with the command
Code:
fastboot boot twrp.img
. This will just boot up TWRP, not actually flash it onto your device. After rebooting the phone, TWRP will be gone. This is a great option for those, who just like to flash their phone one time, don´t want to modify the boot.img and don´t need a permanently installed TWRP.

The second option is to use the twrp flashable installer zip to install TWRP permanently to your ramdisk from the booted TWRP or magisk manager! Installing from Magisk Manager was made possible by @osm0sis!

So you see there are generally 2 steps needed on A/B devices now.
First booting TWRP. Second flashing the installer zip.

But and now comes HTC into play. When permanently flashing TWRP zip touchscreen gets disabled, because HTC added a nasty little check into the touchscreen driver. If it detects that the phone is in recovery mode it disables the touchscreen.

Luckily we found 2 ways around that!
First way is to have a custom kernel, that has this check patched out!

Second option is to use a zip we provide here, that also patches your kernel, to avoid tripping this check. The downside of flashing this zip is that all commands like
HTML Code:
adb reboot recovery
, hitting reboot to recovery in magisk manager and finally reboot to recovery in TWRP are not working and only boot to the OS!




How to temporary boot TWRP:

1. You need a working fastboot and adb environment! Your device´s bootloader must be unlocked!
2. Download the twrp.img provided in this thread and copy it to your fastboot folder (pay attention that firmware version matches)
3. Open a command prompt in your fastboot folder!
3.a While your phone is booted to the OS and USB debugging is enabled, type:
Code:
adb reboot bootloader
4. You need to fastboot boot twrp currently
Code:
 fastboot boot <filename of the twrp.img>
example:
Code:
fastboot boot twrp-3.2.3-2-ime.img
5. Wait for twrp to be booted
6. You´re now in TWRP
7. Please note that you need to fastboot boot the TWRP every single time you need it. After a reboot it will be gone!
8. Important:
Please note that
Code:
fastboot boot twrp.img
(like done in step 4) will also break OTA functionality. More about this in the FAQ.


How to permanently flash TWRP via the .zip installer

1. Make sure you have a working fastboot and adb environment! Your device´s bootloader must be unlocked!

2. Download the flashable TWRP installer zip provided in this thread!
2a. If you´re on a stock kernel that has no touchscreen fix for recovery included please also download the touchscreen_hexpatcher.zip

3. Flash the TWRP-Installer.Zip from the booted TWRP or Magisk Manager on your phone (hit the + while in modules section)
3a. Important: Directly afterwards flash the magisk zip from TWRP or Magisk Manager
If you don´t flash it you will only be able to reboot to TWRP, regardless of the option you choose

4.Only needed when on stock kernel without touchscreen fix:
also flash the touchscreen_hexpatcher.zip from TWRP or Magisk Manager
Be aware that flashing touchscreen_hexpatcher.zip will make touch work when using stock kernel but render all recovery related commands unusable.
This includes
Code:
adb reboot recovery
, reboot to recovery from magisk manager and reboot to recovery from inside TWRP.
To get into TWRP you first have to reboot to bootloader and from there on to TWRP/Recovery!


5. Reboot
6. Congratulations: you can now reboot into your permanently flashed TWRP

How to permanently flash TWRP via the TWRP.img file inside TWRP

1. Make sure you have a working fastboot and adb environment! Your device´s bootloader must be unlocked!

2. Download the twrp.img file from the offical twrp site
2a. If you´re on a stock kernel that has no touchscreen fix for recovery included please also download the touchscreen_hexpatcher.zip

3. Boot to TWRP. Navigate to Advanced -> Install Recovery Ramdisk -> Choose the twrp.img downloaded earlier. Wait for the flash to be completed successfully and do either 3a or 3b.

3a. If you want to be rooted flash the magisk.zip
3b. If you don´t want to be rooted navigate to Advanced -> Fix Recovery Bootloop to be able to boot into system

4.Only needed when on stock kernel without touchscreen fix:
also flash the touchscreen_hexpatcher.zip from TWRP or Magisk Manager
Be aware that flashing touchscreen_hexpatcher.zip will make touch work when using stock kernel but render all recovery related commands unusable.
This includes
Code:
adb reboot recovery
, reboot to recovery from magisk manager and reboot to recovery from inside TWRP.
To get into TWRP you first have to reboot to bootloader and from there on to TWRP/Recovery!


5. Reboot
6. Congratulations: you can now reboot into your permanently flashed TWRP



Few tips and tricks:

1. You need to mount ext_sd card before you can access it in the file manager
2. Go to mount and click on mount usb storage to access the ext sdcard when connected via USB
3. Don´t forget you can connect an usb device via usb-otg to backup/flash stuff from/to an usb storage device

Official Changelog: twrp.me


20.05.2019 3.3.1-0
  • Decryption on devices running firmware 1.68.xxx.y with security patch state of 1st April 2019 when fastboot booting the twrp.img
NOTE: The official TWRP image 3.3.1-0 will only decrypt devices on the 1st April 2019 security patch state when fastboot booted. The official TWRP image 3.3.0-0 will only decrypt devices on the 1st February 2019 security patch state when fastboot booted. The official TWRP image 3.2.3-5 will only decrypt devices on the 1st January 2019 security patch state when fastboot booted. The official TWRP image 3.2.3-3 will only decrypt devices on the 1st December 2018 security patch state when fastboot booted! The TWRP 3.2.3-2 image will only decrypt devices on the 1st Sepember 2018 security patch if fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-3 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.


17.04.2019 3.3.0-0
  • Decryption on devices running firmware 1.62.xxx.y with security patch state of 1st February 2019 when fastboot booting the twrp.img
  • Future TWRP.img files can be flashed via the "Install Recovery Ramdisk" option inside TWRP´s advanced settings (for now the twrp.zip is also still available)
  • If you don´t flash magisk there is also option to "Fix Recovery Bootloop" inside TWRP´s advanced settings to be able to boot to system
  • you are able to take screenshots via power + home button
  • busybox is included instead of toybox
NOTE: The official TWRP image 3.3.0-0 will only decrypt devices on the 1st February 2019 security patch state when fastboot booted. The official TWRP image 3.2.3-5 will only decrypt devices on the 1st January 2019 security patch state when fastboot booted. The official TWRP image 3.2.3-3 will only decrypt devices on the 1st December 2018 security patch state when fastboot booted! The TWRP 3.2.3-2 image will only decrypt devices on the 1st Sepember 2018 security patch if fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-3 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.


01.01.2019 3.2.3-5
  • Add support for successfully decryption devices on firmware 1.57.xxx.y with security patch state of 1st December 2018
NOTE: The official TWRP image 3.2.3-5 will only decrypt devices on the 1st January 2019 security patch state when fastboot booted. The official TWRP image 3.2.3-3 will only decrypt devices on the 1st December 2018 security patch state when fastboot booted! The TWRP 3.2.3-2 image will only decrypt devices on the 1st Sepember 2018 security patch if fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-3 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.


01.01.2019 3.2.3-4
  • System is no longer being mounted R/W when booting TWRP
NOTE: The official TWRP image 3.2.3-3 will only decrypt devices on the 1st December 2018 security patch state when fastboot booted! The TWRP 3.2.3-2 image will only decrypt devices on the 1st Sepember 2018 security patch if fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-3 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.


01.01.2019 3.2.3-3
  • Add support for successfully decryption devices on firmware 1.53.xxx.y with security patch state of 1st December 2018
NOTE: The official TWRP image 3.2.3-3 will only decrypt devices on the 1st December 2018 security patch state when fastboot booted! The TWRP 3.2.3-2 image will only decrypt devices on the 1st Sepember 2018 security patch if fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-3 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.


Older versions:

05.10.2018 3.2.3-2
  • [Fix] TWRP Image 3.2.3-2 successfully decrypts devices on 1st September Security patch state! Also see the information below.
  • [Tweak] resetprop included statically, remove dependencies for it thanks @Captain_Throwback, @topjohnwu and @nkk71
NOTE: The official TWRP image 3.2.3-2 will only decrypt devices on the 1st Sepember 2018 security patch state when fastboot booted! The TWRP 3.2.3-1 image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer (also from the 3.2.3-2 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.


07.09.2018 3.2.3-1
  • [Fix] MTP now enabled/working! (@Captain_Throwback)
  • [Fix] Vibration feedback now enabled/working (@notsyncing)
  • [Fix] Maximum brightness fixed - you need to manually adjust brightness in Settings using the slider to update (@Captain_Throwback)
  • [Tweak] Zip now automatically unroots the device when flashing to allow device to reboot to system normally if root isn't immediately flashed afterwards (@osm0sis)
  • [Tweak] /data/cache contents now mounted to /cache on flashed version (@Captain_Throwback)
NOTE: The official TWRP image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer, however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.


07.08.2018 3.2.3-0
  • Official TWRP release
NOTE: The official TWRP image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer, however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.


Unofficial Changelog:
21.07.2018 3.2.2-0
  • Initial Release

28.07.2018 3.2.2-1
  • Decryption is now working

02.08.2018 3.2.3-0
  • fix system not getting mounted by magisk installer!
  • fix no OS message upon reboot
  • flashable installer for permanently installing TWRP!

05.08.2018 3.2.3-1
  • fix system not being mountable as R/W in twrp
  • display a message asking you to reflash magisk after flashing twrp installer zip


Download:
Official
twrp.me

NOTE: The official TWRP image will only decrypt devices on the 1 June 2018 security patch if fastboot booted. If you are on the 1 March 2018 security patch, you will need to fastboot boot one of the unofficial 1.15 TWRP images. The zip installer, however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

Unofficial
XDA | AFH


Additional Downloads
Touchscreen hexpatcher | Mirror (AFH) - SEE IMPORTANT NOTES BELOW:
  • Only needed when on stock kernel without touchscreen fix
  • Flashing touchscreen_hexpatcher.zip will make touch work when using stock kernel but render all recovery related commands unusable.
    • This includes "adb reboot recovery", reboot to recovery from Magisk Manager and reboot to recovery from inside TWRP. To get into TWRP you first have to reboot to bootloader and from there on to TWRP/Recovery!

Known Issues:
  • MTP is disabled in official TWRP. This is currently an issue on several A/B devices. - Enabled since 3.2.3-1
    NOTE: The unofficial TWRP image has MTP enabled for fastboot booting ONLY.
  • fastboot booting TWRP mounts the system RW and breaks ability to take an OTA.
    Please take a look at FAQ, found in the 2nd post here. It contains more information

Bug Reporting:
If you have an issue, the first step is to post a recovery log so we can determine the cause of the issue. This is done in recovery using Advanced -> Copy Log, or adb pull /tmp/recovery.log. Once a log is uploaded we can determine how best to proceed. NOTE: Posts that are reporting bugs or issues without an accompanying recovery log will be ignored! Additionally, providing details about your device setup, including variant, firmware version, and exact steps to reproduce your issue will also be helpful in diagnosing the problem.

We need your help!
Join the TWRP Testing group on Slack to help us test TWRP prior to official releases!

Tips on how to build TWRP for the U12+ yourself:

To build TWRP you need to use this branch as your device tree:
https://github.com/freak07/android_device_htc_ime

Additionally you these commits from gerrit to your twrp tree!
https://gerrit.omnirom.org/#/c/andro...overy/+/31760/
https://gerrit.omnirom.org/#/c/andro...overy/+/31207/
https://gerrit.omnirom.org/#/c/andro...overy/+/31021/

Depending on the base you're building for, you may need to comment/uncomment the PLATFORM_SECURITY_PATCH flag for your respective build if you want to fastboot boot the twrp.img. If the patch level of the image doesn't match the patch level of the current system, decryption will not function when fastboot booting the image. If installed via zip, the patch level doesn't matter, as it is automatically updated from system using @topjohnwu & @nkk71's resetprop.



XDA:DevDB Information
TWRP for HTC U12+ aka Imagine, Tool/Utility for the HTC U12+

Contributors
Freak07, Captain_Throwback, nkk71, topjohnwu, Dees_Troy, bigbiff, _that
Source Code: https://github.com/freak07/android_device_htc_ime


Version Information
Status: Stable
Current Stable Version: 3.2.3-2
Stable Release Date: 2018-10-05

Created 2018-07-21
Last Updated 2019-06-22
The Following 38 Users Say Thank You to Freak07 For This Useful Post: [ View ] Gift Freak07 Ad-Free
 
 
21st July 2018, 12:28 PM |#2  
Freak07's Avatar
OP Senior Member
Thanks Meter: 10,008
 
More
F.A.Q.:


Q: Which TWRP.img to choose for my current Security Patch State
A: For the old base 1.15 use on of the unoffical 1.15 release found in the OP.
TWRP Image 3.2.3-1.img decrypts devices, which run firmware on the 1st June Security patch State.
TWRP Image 3.2.3-2.img decrypts devices, which run firmware on the 1st September Security patch State.
The zip installer (also from the 3.2.3-2 release), however, will work on any patch level, but if you're on stock kernel, you will still need to flash the hex patcher or a custom kernel to have working touch when rebooting into recovery mode.

Q: I´m not able to fastboot boot the recovery, because the command won´t execute properly.
A: Update your adb and fastboot binaries to the latest one found here:
https://www.xda-developers.com/googl...ary-downloads/
Make sure you´re using the original cable.
Make sure you are in bootloader mode.
Try different USB ports on your machine.
On windows make sure you have the latest usb/mtp driver installed properly when the phone is connected in bootloader mode.


Q: I flashed the permanent twrp installer zip and now my touchscreen is not working.

A: This happens when you´re on stock kernel and did not flash the hexpatch-touchscreen zip found in the OP.


Q: I flashed the permanent twrp installer zip and the hexpatch-touchscreen zip found in the OP. Now commands/actions like
Code:
adb reboot recovery
reboot to recovery button in magisk manager
reboot to recovery button in TWRP
are only booting me straight to the OS.
A: As mentioned in the OP flashing the hexpatch-touchscreen zip will break the reboot to recovery command and associated actions.
To get to twrp reboot to bootloader and from there choose reboot to recovery with volume buttons and confirm with the power button.


Q: I flashed the permanent twrp installer zip, booted to the OS and lost root

A: Directly after flashing the twrp installer zip flash the magisk zip to keep root!

Q: I only fastboot booted TWRP but now my OTA functionality is broken.
A: Fastboot booting the twrp image trips a check, this check isn´t able to determine if system has been modified (because it receives no output) and subsequently assumes it has been modified.
this breaks verity on system and probably vendor. Resulting in non existing OTA functionality.

If you are interested in a more detailed explanation please follow this link:
https://github.com/TeamWin/Team-Win-...ct/issues/1301

to check if system has been modified check the following path:
"/sys/fs/" + Current_File_System + "/" + block + "/lifetime_write_kbytes"
Current_File_System is ext4 on the U12+
block is related to your boot_slot. so check the partition table here:
https://forum.xda-developers.com/u12...ricks-t3802583
if you´re on slot A: system_a is sda18
if you´re on slot B: system_b is sda19
Example:
I was on slot B so the file I needed to check was: `/sys/fs/ext4/sda19/lifetime_write_kbytes`
if this file shows 0 system was not modified. Any other value means it was modified and you will not be able to take an OTA!

Same check applied for vendor! you just have to adjust the path.
Slot A vendor: sde19
Slot B vendor: sde40
Example to check if vendor_b has been modified: /sys/fs/ext4/sde40/lifetime_write_kbytes



To restore OTA functionality follow this post:
https://forum.xda-developers.com/sho...13&postcount=3

or alternatively:

1. after updating your device via RUU or OTA, patch the boot.img with magisk (look at my guide thread)
2. run the following command on either a terminal shell on the phone or via adb shell on your pc(don´t forget to grant su permissions) to obtain an untouched system.img:
dd if=/dev/block/bootdevice/by-name/system$(getprop ro.boot.slot_suffix) of=/sdcard/system.img
3. store this system.img somewhere safe

Additional info:
you can also backup vendor this way!
dd if=/dev/block/bootdevice/by-name/vendor$(getprop ro.boot.slot_suffix) of=/sdcard/vendor.img
Information: Please note that only perm s-off devices are able to flash the vendor.img in fastboot!

Q: Is there a way to restore OTA functionality and keep using TWRP?
A: Yes there is. Please read below! thanks to @osm0sis who came up with the idea!

Temporary Workaround for TWRP mounting /system as RW
the issue linked here: https://github.com/TeamWin/Team-Win-...ct/issues/1301, which is causing TWRP not being able to mount system as read-only, results in a non pristine system partition after booting TWRP once.
The following file will allow TWRP to mount system as read-only (and therefore keeping OTA functionality)
That means after the following procedure, you can restore an untouched system.img, keep TWRP flashed on your device and simultaneously be able to take OTAs!

Instructions:
1. Download the following file https://www.androidfilehost.com/?fid...78262904004337 and extract it! (also as attachement to this post)
2. Copy/Replace the .twrps files to
/persist (make sure to grant the correct permissions afterwards! 0664 | rw-rw-r-- )
/storage/emulated/0/TWRP
with the one you just downloaded
3. When now booting/flashing TWRP system will get mounted as read only.
4. You can now restore a pristine system.img to your device! TWRP shouldn´t mount it as RW now!
5. Check if everything worked by following the guide above (check file lifetime_kbyte_writes for your active system partition)

A huge thanks to @MassStash for testing all this!
Attached Files
File Type: zip twrps.zip - [Click for QR Code] (680 Bytes, 242 views)
The Following 12 Users Say Thank You to Freak07 For This Useful Post: [ View ] Gift Freak07 Ad-Free
21st July 2018, 12:28 PM |#3  
Freak07's Avatar
OP Senior Member
Thanks Meter: 10,008
 
More
also mine
The Following User Says Thank You to Freak07 For This Useful Post: [ View ] Gift Freak07 Ad-Free
21st July 2018, 02:54 PM |#4  
wiQbold's Avatar
Senior Member
Thanks Meter: 68
 
More
nice.

noob question: can I format data partition and install magisk without force encryption flag like HTC 10? or is that impossible without decrypt the partition?
21st July 2018, 02:58 PM |#5  
Freak07's Avatar
OP Senior Member
Thanks Meter: 10,008
 
More
Quote:
Originally Posted by wiQbold

nice.

noob question: can I format data partition and install magisk without force encryption flag like HTC 10?

I didn’t try it.

If you could try it and report back to confirm that would be great
21st July 2018, 08:41 PM |#6  
5m4r7ph0n36uru's Avatar
Senior Member
Flag MD5: 91497e1b11f2262d0d8ff0aa7a164f3b
Thanks Meter: 3,280
 
Donate to Me
More
Nice work guys. Thanks @Freak07, @Captain_Throwback and all others who are still with as, as well as those who had to leave to soon - you'll be remembered.

Sent from my HTC U12+ using XDA Labs
The Following User Says Thank You to 5m4r7ph0n36uru For This Useful Post: [ View ] Gift 5m4r7ph0n36uru Ad-Free
21st July 2018, 10:38 PM |#7  
Senior Member
Flag NYC
Thanks Meter: 19
 
More
@Freak07

Followed your instructions, but hangs at downloading 'boot.img' after second step: "fastboot boot TWRP_3.2.2.0_Imagine.img"

I'm Unlocked and Rooted with Magisk.
22nd July 2018, 12:20 AM |#8  
schmeggy929's Avatar
Recognized Themer
Flag New Jersey
Thanks Meter: 1,886
 
Donate to Me
More
same here
fastboot boot TWRP.img
downloading...
FAILED: unknown command
22nd July 2018, 01:24 AM |#9  
Member
Thanks Meter: 3
 
More
Quote:
Originally Posted by schmeggy929

same here
fastboot boot TWRP.img
downloading...
FAILED: unknown command

Might be a stupid question but did you try booting in fastboot? AFAIK it only works in fastboot
22nd July 2018, 01:32 AM |#10  
schmeggy929's Avatar
Recognized Themer
Flag New Jersey
Thanks Meter: 1,886
 
Donate to Me
More
Quote:
Originally Posted by umaranjum

Might be a stupid question but did you try booting in fastboot? AFAIK it only works in fastboot

Yes that too, just hangs at booting... It is the same procedure at the U11. You boot TWRP in Bootloader and flash from Download Mode. Fastboot is the command for both.
22nd July 2018, 01:35 AM |#11  
Senior Member
Flag NYC
Thanks Meter: 19
 
More
Quote:
Originally Posted by umaranjum

Might be a stupid question but did you try booting in fastboot? AFAIK it only works in fastboot

Not the person you replied to, but since I have the same problem, I followed the steps in OP, and since it's only 2 steps, I'm sure the other person performed the "adb reboot bootloader" step.
Post Reply Subscribe to Thread

Guest Quick Reply (no urls or BBcode)
Message:
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes