open password protected pdf using c# : Add text to pdf file application SDK utility azure .net wpf visual studio abs-guide85-part1875

Write a script for a multi-user system that checks users' disk usage. If a user surpasses a preset limit
(500 MB, for example) in her /home/username directory, then the script automatically sends her a
"pigout" warning e-mail.
The script will use the du and mail commands. As an option, it will allow setting and enforcing quotas
using the quota and setquota commands.
Logged in User Information
For all logged in users, show their real names and the time and date of their last login.
Hint: use who, lastlog, and parse /etc/passwd.
Safe Delete
Implement, as a script, a "safe" delete command, sdel.sh. Filenames passed as command-line
arguments to this script are not deleted, but instead gzipped if not already compressed (use file to
check), then moved to a ~/TRASH directory. Upon invocation, the script checks the ~/TRASH
directory for files older than 48 hours and permanently deletes them. (An better alternative might be
to have a second script handle this, periodically invoked by the cron daemon.)
Extra credit: Write the script so it can handle files and directories recursively. This would give it the
capability of "safely deleting" entire directory structures.
Making Change
What is the most efficient way to make change for $1.68, using only coins in common circulations
(up to 25c)? It's 6 quarters, 1 dime, a nickel, and three cents.
Given any arbitrary command-line input in dollars and cents ($*.??), calculate the change, using the
minimum number of coins. If your home country is not the United States, you may use your local
currency units instead. The script will need to parse the command-line input, then change it to
multiples of the smallest monetary unit (cents or whatever). Hint: look at Example 24-8.
Quadratic Equations
Solve a quadratic equation of the form Ax^2 + Bx + C = 0. Have a script take as arguments the
coefficients, A, B, and C, and return the solutions to five decimal places.
Hint: pipe the coefficients to bc, using the well-known formula, x = ( -B +/- sqrt( B^2 -
4AC ) ) / 2A.
Table of Logarithms
Using the bc and printf commands, print out a nicely-formatted table of eight-place natural logarithms
in the interval between 0.00 and 100.00, in steps of .01.
Hint: bc requires the -l option to load the math library.
Unicode Table
Using Example T-1 as a template, write a script that prints to a file a complete Unicode table.
Hint: Use the -e option to echo: echo -e '\uXXXX', where XXXX is the Unicode numerical character
designation. This requires version 4.2 or later of Bash.
Sum of Matching Numbers
Find the sum of all five-digit numbers (in the range 10000 - 99999) containing exactly two out of the
following set of digits: { 4, 5, 6 }. These may repeat within the same number, and if so, they count
once for each occurrence.
Some examples of matching numbers are 42057, 74638, and 89515.
Lucky Numbers
Advanced Bash-Scripting Guide
Appendix O. Exercises
845
Add text to pdf file - insert text into PDF content in C#.net, ASP.NET, MVC, Ajax, WinForms, WPF
XDoc.PDF for .NET, providing C# demo code for inserting text to PDF file
how to add text fields to a pdf document; how to add text to pdf
Add text to pdf file - VB.NET PDF insert text library: insert text into PDF content in vb.net, ASP.NET, MVC, Ajax, WinForms, WPF
Providing Demo Code for Adding and Inserting Text to PDF File Page in VB.NET Program
add text boxes to a pdf; add text block to pdf
A lucky number is one whose individual digits add up to 7, in successive additions. For example,
62431 is a lucky number (6 + 2 + 4 + 3 + 1 = 16, 1 + 6 = 7). Find all the lucky numbers between 1000
and 10000.
Craps
Borrowing the ASCII graphics from Example A-40, write a script that plays the well-known gambling
game of craps. The script will accept bets from one or more players, roll the dice, and keep track of
wins and losses, as well as of each player's bankroll.
Tic-tac-toe
Write a script that plays the child's game of tic-tac-toe against a human player. The script will let the
human choose whether to take the first move. The script will follow an optimal strategy, and therefore
never lose. To simplify matters, you may use ASCII graphics:
o | x |
----------
| x |
----------
| o |
Your move, human (row, column)?
Alphabetizing a String
Alphabetize (in ASCII order) an arbitrary string read from the command-line.
Parsing
Parse /etc/passwd, and output its contents in nice, easy-to-read tabular form.
Logging Logins
Parse /var/log/messages to produce a nicely formatted file of user logins and login times. The
script may need to run as root. (Hint: Search for the string "LOGIN.")
Pretty-Printing a Data File
Certain database and spreadsheet packages use save-files with the fields separated by commas,
commonly referred to as comma-separated values or CSVs. Other applications often need to parse
these files.
Given a data file with comma-separated fields, of the form:
Jones,Bill,235 S. Williams St.,Denver,CO,80221,(303) 244-7989
Smith,Tom,404 Polk Ave.,Los Angeles,CA,90003,(213) 879-5612
...
Reformat the data and print it out to stdout in labeled, evenly-spaced columns.
Justification
Given ASCII text input either from stdin or a file, adjust the word spacing to right-justify each line
to a user-specified line-width, then send the output to stdout.
Mailing List
Using the mail command, write a script that manages a simple mailing list. The script automatically
e-mails the monthly company newsletter, read from a specified text file, and sends it to all the
addresses on the mailing list, which the script reads from another specified file.
Generating Passwords
Generate pseudorandom 8-character passwords, using characters in the ranges [0-9], [A-Z], [a-z].
Each password must contain at least two digits.
Monitoring a User
You suspect that one particular user on the network has been abusing her privileges and possibly
attempting to hack the system. Write a script to automatically monitor and log her activities when
she's signed on. The log file will save entries for the previous week, and delete those entries more
than seven days old.
Advanced Bash-Scripting Guide
Appendix O. Exercises
846
VB.NET PDF Password Library: add, remove, edit PDF file password
This VB.NET example shows how to add PDF file password with access permission setting. passwordSetting.IsAssemble = True ' Add password to PDF file.
adding text pdf file; how to add text to pdf file with reader
C# PDF Password Library: add, remove, edit PDF file password in C#
This example shows how to add PDF file password with access permission setting. passwordSetting.IsAssemble = true; // Add password to PDF file.
how to add text box to pdf; add text box to pdf
You may use last, lastlog, and lastcomm to aid your surveillance of the suspected fiend.
Checking for Broken Links
Using lynx with the -traversal option, write a script that checks a Web site for broken links.
DIFFICULT
Testing Passwords
Write a script to check and validate passwords. The object is to flag "weak" or easily guessed
password candidates.
A trial password will be input to the script as a command-line parameter. To be considered
acceptable, a password must meet the following minimum qualifications:
Minimum length of 8 characters
à 
Must contain at least one numeric character
à 
Must contain at least one of the following non-alphabetic characters: @, #, $, %, &, *, +, -, =
à 
Optional:
Do a dictionary check on every sequence of at least four consecutive alphabetic characters in
the password under test. This will eliminate passwords containing embedded "words" found
in a standard dictionary.
à 
Enable the script to check all the passwords on your system. These do not reside in
/etc/passwd.
à 
This exercise tests mastery of Regular Expressions.
Cross Reference
Write a script that generates a cross-reference (concordance) on a target file. The output will be a
listing of all word occurrences in the target file, along with the line numbers in which each word
occurs. Traditionally, linked list constructs would be used in such applications. Therefore, you should
investigate arrays in the course of this exercise. Example 16-12 is probably not a good place to start.
Square Root
Write a script to calculate square roots of numbers using Newton's Method.
The algorithm for this, expressed as a snippet of Bash pseudo-code is:
 (Isaac) Newton's Method for speedy extraction
#+ of square roots.
guess = $argument
 $argument is the number to find the square root of.
 $guess is each successive calculated "guess" -- or trial solution --
#+ of the square root.
 Our first "guess" at a square root is the argument itself.
oldguess = 0
# $oldguess is the previous $guess.
tolerance = .000001
# To how close a tolerance we wish to calculate.
loopcnt = 0
# Let's keep track of how many times through the loop.
# Some arguments will require more loop iterations than others.
Advanced Bash-Scripting Guide
Appendix O. Exercises
847
C# PDF File & Page Process Library SDK for C#.net, ASP.NET, MVC
Read: PDF Text Extract; C# Read: PDF Image Extract; C# Write: Insert text into PDF; C# Write: Add Image to PDF; C# Protect: Add Password
adding text field to pdf; add text to pdf in preview
VB.NET PDF Text Extract Library: extract text content from PDF
this advanced PDF Add-On, developers are able to extract target text content from source PDF document and save extracted text to other file formats through VB
how to add a text box to a pdf; acrobat add text to pdf
while [ ABS( $guess $oldguess ) -gt $tolerance ]
      ^^^^^^^^^^^^^^^^^^^^^^^ Fix up syntax, of course.
     "ABS" is a (floating point) function to find the absolute value
#+      of the difference between the two terms.
            So, as long as difference between current and previous
#+            trial solution (guess) exceeds the tolerance, keep looping.
do
oldguess = $guess  # Update $oldguess to previous $guess.
 =======================================================
guess = ( $oldguess + ( $argument / $oldguess ) ) / 2.0
       = 1/2 ( ($oldguess **2 + $argument) / $oldguess )
 equivalent to:
       = 1/2 ( $oldguess + $argument / $oldguess )
 that is, "averaging out" the trial solution and
#+ the proportion of argument deviation
#+ (in effect, splitting the error in half).
 This converges on an accurate solution
#+ with surprisingly few loop iterations . . .
#+ for arguments > $tolerance, of course.
 =======================================================
(( loopcnt++ ))     # Update loop counter.
done
It's a simple enough recipe, and seems at first glance easy enough to convert into a working Bash
script. The problem, though, is that Bash has no native support for floating point numbers. So, the
script writer needs to use bc or possibly awk to convert the numbers and do the calculations. It could
get rather messy . . .
Logging File Accesses
Log all accesses to the files in /etc during the course of a single day. This information should
include the filename, user name, and access time. If any alterations to the files take place, that will be
flagged. Write this data as tabular (tab-separated) formatted records in a logfile.
Monitoring Processes
Write a script to continually monitor all running processes and to keep track of how many child
processes each parent spawns. If a process spawns more than five children, then the script sends an
e-mail to the system administrator (or root) with all relevant information, including the time, PID of
the parent, PIDs of the children, etc. The script appends a report to a log file every ten minutes.
Strip Comments
Strip all comments from a shell script whose name is specified on the command-line. Note that the
initial #! line must not be stripped out.
Strip HTML Tags
Strip all the HTML tags from a specified HTML file, then reformat it into lines between 60 and 75
characters in length. Reset paragraph and block spacing, as appropriate, and convert HTML tables to
their approximate text equivalent.
XML Conversion
Convert an XML file to both HTML and text format.
Optional: A script that converts Docbook/SGML to XML.
Chasing Spammers
Write a script that analyzes a spam e-mail by doing DNS lookups on the IP addresses in the headers to
identify the relay hosts as well as the originating ISP. The script will forward the unaltered spam
message to the responsible ISPs. Of course, it will be necessary to filter out your own ISP's IP
address, so you don't end up complaining about yourself.
Advanced Bash-Scripting Guide
Appendix O. Exercises
848
C# PDF Text Extract Library: extract text content from PDF file in
How to C#: Extract Text Content from PDF File. Add necessary references: RasterEdge.Imaging.Basic.dll. RasterEdge.Imaging.Basic.Codec.dll.
add text field pdf; how to add text to a pdf file in reader
C# PDF insert image Library: insert images into PDF in C#.net, ASP
using RasterEdge.Imaging.Basic; using RasterEdge.XDoc.PDF; Have a try with this sample C#.NET code to add an image to the first page of PDF file.
add text to pdf acrobat; add text to pdf file reader
As necessary, use the appropriate network analysis commands.
For some ideas, see Example 16-41 and Example A-28.
Optional: Write a script that searches through a list of e-mail messages and deletes the spam
according to specified filters.
Creating man pages
Write a script that automates the process of creating man pages.
Given a text file which contains information to be formatted into a man page, the script will read the
file, then invoke the appropriate groff commands to output the corresponding man page to stdout.
The text file contains blocks of information under the standard man page headings, i.e., NAME,
SYNOPSIS, DESCRIPTION, etc.
Example A-39 is an instructive first step.
Hex Dump
Do a hex(adecimal) dump on a binary file specified as an argument to the script. The output should be
in neat tabular fields, with the first field showing the address, each of the next 8 fields a 4-byte hex
number, and the final field the ASCII equivalent of the previous 8 fields.
The obvious followup to this is to extend the hex dump script into a disassembler. Using a lookup
table, or some other clever gimmick, convert the hex values into 80x86 op codes.
Emulating a Shift Register
Using Example 27-15 as an inspiration, write a script that emulates a 64-bit shift register as an array.
Implement functions to load the register, shift left, shift right, and rotate it. Finally, write a function
that interprets the register contents as eight 8-bit ASCII characters.
Calculating Determinants
Write a script that calculates determinants [153] by recursively expanding the minors. Use a 4 x 4
determinant as a test case.
Hidden Words
Write a "word-find" puzzle generator, a script that hides 10 input words in a 10 x 10 array of random
letters. The words may be hidden across, down, or diagonally.
Optional: Write a script that solves word-find puzzles. To keep this from becoming too difficult, the
solution script will find only horizontal and vertical words. (Hint: Treat each row and column as a
string, and search for substrings.)
Anagramming
Anagram 4-letter input. For example, the anagrams of word are: do or rod row word. You may use
/usr/share/dict/linux.words as the reference list.
Word Ladders
A "word ladder" is a sequence of words, with each successive word in the sequence differing from the
previous one by a single letter.
For example, to "ladder" from mark to vase:
mark --> park --> part --> past --> vast --> vase
^           ^       ^      ^           ^
Write a script that solves word ladder puzzles. Given a starting and an ending word, the script will list
all intermediate steps in the "ladder." Note that all words in the sequence must be legitimate
dictionary words.
Fog Index
Advanced Bash-Scripting Guide
Appendix O. Exercises
849
VB.NET PDF File Compress Library: Compress reduce PDF size in vb.
Also able to uncompress PDF file in VB.NET programs. Offer flexible and royalty-free developing library license for VB.NET programmers to compress PDF file.
how to input text in a pdf; add text pdf file acrobat
VB.NET PDF insert image library: insert images into PDF in vb.net
try with this sample VB.NET code to add an image As String = Program.RootPath + "\\" 1.pdf" Dim doc New PDFDocument(inputFilePath) ' Get a text manager from
add text pdf acrobat professional; how to add text box to pdf document
The "fog index" of a passage of text estimates its reading difficulty, as a number corresponding
roughly to a school grade level. For example, a passage with a fog index of 12 should be
comprehensible to anyone with 12 years of schooling.
The Gunning version of the fog index uses the following algorithm.
Choose a section of the text at least 100 words in length.
1. 
Count the number of sentences (a portion of a sentence truncated by the boundary of the text
section counts as one).
2. 
Find the average number of words per sentence.
AVE_WDS_SEN = TOTAL_WORDS / SENTENCES
3. 
Count the number of "difficult" words in the segment -- those containing at least 3 syllables.
Divide this quantity by total words to get the proportion of difficult words.
PRO_DIFF_WORDS = LONG_WORDS / TOTAL_WORDS
4. 
The Gunning fog index is the sum of the above two quantities, multiplied by 0.4, then
rounded to the nearest integer.
G_FOG_INDEX = int ( 0.4 * ( AVE_WDS_SEN + PRO_DIFF_WORDS ) )
5. 
Step 4 is by far the most difficult portion of the exercise. There exist various algorithms for estimating
the syllable count of a word. A rule-of-thumb formula might consider the number of letters in a word
and the vowel-consonant mix.
A strict interpretation of the Gunning fog index does not count compound words and proper nouns as
"difficult" words, but this would enormously complicate the script.
Calculating PI using Buffon's Needle
The Eighteenth Century French mathematician de Buffon came up with a novel experiment.
Repeatedly drop a needle of length n onto a wooden floor composed of long and narrow parallel
boards. The cracks separating the equal-width floorboards are a fixed distance d apart. Keep track of
the total drops and the number of times the needle intersects a crack on the floor. The ratio of these
two quantities turns out to be a fractional multiple of PI.
In the spirit of Example 16-50, write a script that runs a Monte Carlo simulation of Buffon's Needle.
To simplify matters, set the needle length equal to the distance between the cracks, n = d.
Hint: there are actually two critical variables: the distance from the center of the needle to the nearest
crack, and the inclination angle of the needle to that crack. You may use bc to handle the calculations.
Playfair Cipher
Implement the Playfair (Wheatstone) Cipher in a script.
The Playfair Cipher encrypts text by substitution of digrams (2-letter groupings). It is traditional to
use a 5 x 5 letter scrambled-alphabet key square for the encryption and decryption.
C O D E S
A B F G H
I K L M N
P Q R T U
V W X Y Z
Each letter of the alphabet appears once, except "I" also represents
"J". The arbitrarily chosen key word, "CODES" comes first, then all
Advanced Bash-Scripting Guide
Appendix O. Exercises
850
C# PDF File Split Library: Split, seperate PDF into multiple files
page of your defined page number which starts from 0. For example, your original PDF file contains 4 pages. C# DLLs: Split PDF Document. Add necessary references
how to add text to a pdf in acrobat; how to insert text box in pdf file
VB.NET PDF File Merge Library: Merge, append PDF files in vb.net
by directly tagging the second PDF file to the target one, this PDF file merge function VB.NET Project: DLLs for Merging PDF Documents. Add necessary references
adding text to a pdf in reader; how to insert text into a pdf with acrobat
the rest of the alphabet, in order from left to right, skipping letters
already used.
To encrypt, separate the plaintext message into digrams (2-letter
groups). If a group has two identical letters, delete the second, and
form a new group. If there is a single letter left over at the end,
insert a "null" character, typically an "X."
THIS IS A TOP SECRET MESSAGE
TH IS IS AT OP SE CR ET ME SA GE
For each digram, there are three possibilities.
-----------------------------------------------
1) Both letters will be on the same row of the key square:
For each letter, substitute the one immediately to the right, in that
row. If necessary, wrap around left to the beginning of the row.
or
2) Both letters will be in the same column of the key square:
For each letter, substitute the one immediately below it, in that
row. If necessary, wrap around to the top of the column.
or
3) Both letters will form the corners of a rectangle within the key square:
For each letter, substitute the one on the other corner the rectangle
which lies on the same row.
The "TH" digram falls under case #3.
G H
M N
T U           (Rectangle with "T" and "H" at corners)
T --> U
H --> G
The "SE" digram falls under case #1.
C O D E S     (Row containing "S" and "E")
S --> C  (wraps around left to beginning of row)
E --> S
=========================================================================
To decrypt encrypted text, reverse the above procedure under cases #1
and #2 (move in opposite direction for substitution). Under case #3,
just take the remaining two corners of the rectangle.
Helen Fouche Gaines' classic work, ELEMENTARY CRYPTANALYSIS (1939), gives a
fairly detailed description of the Playfair Cipher and its solution methods.
This script will have three main sections
Generating the key square, based on a user-input keyword.
I. 
Advanced Bash-Scripting Guide
Appendix O. Exercises
851
Encrypting a plaintext message.
II. 
Decrypting encrypted text.
III. 
The script will make extensive use of arrays and functions. You may use Example A-56 as an
inspiration.
--
Please do not send the author your solutions to these exercises. There are more appropriate ways to impress
him with your cleverness, such as submitting bugfixes and suggestions for improving the book.
Advanced Bash-Scripting Guide
Appendix O. Exercises
852
Appendix P. Revision History
This document first appeared as a 60-page HOWTO in the late spring
of 2000. Since then, it has gone through quite a number of updates
and revisions. This book could not have been written without the
assistance of the Linux community, and especially of the volunteers
of the Linux Documentation Project.
Here is the e-mail to the LDP requesting permission to submit version 0.1.
From thegrendel@theriver.com Sat Jun 10 09:05:33 2000 -0700
Date: Sat, 10 Jun 2000 09:05:28 -0700 (MST)
From: "M. Leo Cooper" <thegrendel@theriver.com>
X-Sender: thegrendel@localhost
To: ldp-discuss@lists.linuxdoc.org
Subject: Permission to submit HOWTO
Dear HOWTO Coordinator,
I am working on and would like to submit to the LDP a HOWTO on the subject
of "Bash Scripting" (shell scripting, using 'bash'). As it happens,
I have been writing this document, off and on, for about the last eight
months or so, and I could produce a first draft in ASCII text format in
a matter of just a few more days.
I began writing this out of frustration at being unable to find a
decent book on shell scripting. I managed to locate some pretty good
articles on various aspects of scripting, but nothing like a complete,
beginning-to-end tutorial.  Well, in keeping with my philosophy, if all
else fails, do it yourself.
As it stands, this proposed "Bash-Scripting HOWTO" would serve as a
combination tutorial and reference, with the heavier emphasis on the
tutorial. It assumes Linux experience, but only a very basic level
of programming skills. Interspersed with the text are 79 illustrative
example scripts of varying complexity, all liberally commented. There
are even exercises for the reader.
At this stage, I'm up to 18,000+ words (124k), and that's over 50 pages of
text (whew!).
I haven't mentioned that I've previously authored an LDP HOWTO, the
"Software-Building HOWTO", which I wrote in Linuxdoc/SGML. I don't know
if I could handle Docbook/SGML, and I'm glad you have volunteers to do
the conversion. You people seem to have gotten on a more organized basis
these last few months. Working with Greg Hankins and Tim Bynum was nice,
but a professional team is even nicer.
Anyhow, please advise.
Mendel Cooper
thegrendel@theriver.com
Table P-1. Revision History
Release Date
Comments
Appendix P. Revision History
853
0.1
14 Jun 2000 Initial release.
0.2
30 Oct 2000 Bugs fixed, plus much additional material and more example scripts.
0.3
12 Feb 2001 Major update.
0.4
08 Jul 2001 Complete revision and expansion of the book.
0.5
03 Sep 2001 Major update: Bugfixes, material added, sections reorganized.
1.0
14 Oct 2001 Stable release: Bugfixes, reorganization, material added.
1.1
06 Jan 2002 Bugfixes, material and scripts added.
1.2
31 Mar 2002 Bugfixes, material and scripts added.
1.3
02 Jun 2002 TANGERINE release: A few bugfixes, much more material and scripts added.
1.4
16 Jun 2002 MANGO release: A number of typos fixed, more material and scripts.
1.5
13 Jul 2002 PAPAYA release: A few bugfixes, much more material and scripts added.
1.6
29 Sep 2002 POMEGRANATE release: Bugfixes, more material, one more script.
1.7
05 Jan 2003 COCONUT release: A couple of bugfixes, more material, one more script.
1.8
10 May 2003 BREADFRUIT release: A number of bugfixes, more scripts and material.
1.9
21 Jun 2003 PERSIMMON release: Bugfixes, and more material.
2.0
24 Aug 2003 GOOSEBERRY release: Major update.
2.1
14 Sep 2003 HUCKLEBERRY release: Bugfixes, and more material.
2.2
31 Oct 2003 CRANBERRY release: Major update.
2.3
03 Jan 2004 STRAWBERRY release: Bugfixes and more material.
2.4
25 Jan 2004 MUSKMELON release: Bugfixes.
2.5
15 Feb 2004 STARFRUIT release: Bugfixes and more material.
2.6
15 Mar 2004 SALAL release: Minor update.
2.7
18 Apr 2004 MULBERRY release: Minor update.
2.8
11 Jul 2004 ELDERBERRY release: Minor update.
3.0
03 Oct 2004 LOGANBERRY release: Major update.
3.1
14 Nov 2004 BAYBERRY release: Bugfix update.
3.2
06 Feb 2005 BLUEBERRY release: Minor update.
3.3
20 Mar 2005 RASPBERRY release: Bugfixes, much material added.
3.4
08 May 2005 TEABERRY release: Bugfixes, stylistic revisions.
3.5
05 Jun 2005 BOXBERRY release: Bugfixes, some material added.
3.6
28 Aug 2005 POKEBERRY release: Bugfixes, some material added.
3.7
23 Oct 2005 WHORTLEBERRY release: Bugfixes, some material added.
3.8
26 Feb 2006 BLAEBERRY release: Bugfixes, some material added.
3.9
15 May 2006 SPICEBERRY release: Bugfixes, some material added.
4.0
18 Jun 2006 WINTERBERRY release: Major reorganization.
4.1
08 Oct 2006 WAXBERRY release: Minor update.
4.2
10 Dec 2006 SPARKLEBERRY release: Important update.
4.3
29 Apr 2007 INKBERRY release: Bugfixes, material added.
5.0
24 Jun 2007 SERVICEBERRY release: Major update.
5.1
10 Nov 2007 LINGONBERRY release: Minor update.
5.2
16 Mar 2008 SILVERBERRY release: Important update.
5.3
11 May 2008 GOLDENBERRY release: Minor update.
Advanced Bash-Scripting Guide
Appendix P. Revision History
854
Documents you may be interested
Documents you may be interested